[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Nano-devel] [PATCH 3/3] tweaks: adjust the indentation after the previo
From: |
Benno Schulenberg |
Subject: |
[Nano-devel] [PATCH 3/3] tweaks: adjust the indentation after the previous change |
Date: |
Mon, 14 Aug 2017 12:03:32 +0200 |
Also, trim or improve some comments.
---
src/text.c | 59 ++++++++++++++++++++++++-----------------------------------
1 file changed, 24 insertions(+), 35 deletions(-)
diff --git a/src/text.c b/src/text.c
index ad733d58..805e6b50 100644
--- a/src/text.c
+++ b/src/text.c
@@ -339,27 +339,22 @@ void do_indent(void)
openfile->totsize += line_indent_len;
- /* Keep track of the change in the current line. */
+ /* Compensate for the change in the current line. */
if (openfile->mark_set && f == openfile->mark_begin)
openfile->mark_begin_x += line_indent_len;
-
if (f == openfile->current) {
openfile->current_x += line_indent_len;
openfile->placewewant = xplustabs();
}
}
- /* Clean up. */
free(line_indent);
/* Throw away the undo stack, to prevent making mistakes when
* the user tries to undo something in the indented text. */
discard_until(NULL, openfile);
- /* Mark the file as modified. */
set_modified();
-
- /* Update the screen. */
refresh_needed = TRUE;
}
@@ -421,39 +416,33 @@ void do_unindent(void)
if (white_string(f->data) && indent_len < tabsize)
continue;
- /* If there's at least tabsize
- * columns' worth of indentation at the beginning of the
- * non-whitespace text of this line, remove it. */
- charmove(f->data, &f->data[indent_len], line_len - indent_len + 1);
- null_at(&f->data, line_len - indent_len + 1);
- openfile->totsize -= indent_len;
-
- /* Keep track of the change in the current line. */
- if (openfile->mark_set && f == openfile->mark_begin) {
- if (openfile->mark_begin_x <= indent_len)
- openfile->mark_begin_x = 0;
- else
- openfile->mark_begin_x -= indent_len;
- }
+ /* Remove the first tab's worth of whitespace from this line. */
+ charmove(f->data, &f->data[indent_len], line_len - indent_len + 1);
+ null_at(&f->data, line_len - indent_len + 1);
+ openfile->totsize -= indent_len;
- if (f == openfile->current) {
- if (openfile->current_x <= indent_len)
- openfile->current_x = 0;
- else
- openfile->current_x -= indent_len;
- openfile->placewewant = xplustabs();
- }
+ /* Compensate for the change in the current line. */
+ if (openfile->mark_set && f == openfile->mark_begin) {
+ if (openfile->mark_begin_x <= indent_len)
+ openfile->mark_begin_x = 0;
+ else
+ openfile->mark_begin_x -= indent_len;
+ }
+ if (f == openfile->current) {
+ if (openfile->current_x <= indent_len)
+ openfile->current_x = 0;
+ else
+ openfile->current_x -= indent_len;
+ openfile->placewewant = xplustabs();
+ }
}
- /* Throw away the undo stack, to prevent making mistakes when
- * the user tries to undo something in the unindented text. */
- discard_until(NULL, openfile);
-
- /* Mark the file as modified. */
- set_modified();
+ /* Throw away the undo stack, to prevent making mistakes when
+ * the user tries to undo something in the unindented text. */
+ discard_until(NULL, openfile);
- /* Update the screen. */
- refresh_needed = TRUE;
+ set_modified();
+ refresh_needed = TRUE;
}
#endif /* !NANO_TINY */
--
2.14.1