commit d8e5799e847695b527016eebad93a1f16ac6a33e
parent 0f4716e16826901870ed4e95cc3e51de1e3295d6
Author: Benno Schulenberg <bensberg@telfort.nl>
Date: Sun, 13 Aug 2017 20:55:39 +0200
tweaks: adjust the indentation after the previous change
Also, trim or improve some comments.
Diffstat:
M | src/text.c | | | 59 | ++++++++++++++++++++++++----------------------------------- |
1 file changed, 24 insertions(+), 35 deletions(-)
diff --git 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 */