commit 109ad0915d0ac3fc56a95082a721d307151b621a
parent ee52f45b01c0d0eeb905a1d40ab072983d5b2033
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Mon, 10 Jul 2017 16:46:11 -0500
text: remove unindent-related code from do_indent()
Diffstat:
M | src/text.c | | | 57 | --------------------------------------------------------- |
1 file changed, 0 insertions(+), 57 deletions(-)
diff --git a/src/text.c b/src/text.c
@@ -284,10 +284,6 @@ void do_tab(void)
* tabsize) tabs and (len % tabsize) spaces. */
void do_indent(ssize_t cols)
{
- bool indent_changed = FALSE;
- /* Whether any indenting or unindenting was done. */
- bool unindent = FALSE;
- /* Whether we're unindenting text. */
char *line_indent = NULL;
/* The text added to each line in order to indent it. */
size_t line_indent_len = 0;
@@ -298,11 +294,6 @@ void do_indent(ssize_t cols)
assert(openfile->current != NULL && openfile->current->data != NULL);
- /* Otherwise, we're indenting, in which case the file will always be
- * modified, so set indent_changed to TRUE. */
- if (!unindent)
- indent_changed = TRUE;
-
/* If the mark is on, use all lines covered by the mark. */
if (openfile->mark_set)
mark_order((const filestruct **)&top, &top_x,
@@ -313,7 +304,6 @@ void do_indent(ssize_t cols)
bot = top;
}
- if (!unindent) {
/* Set up the text we'll be using as indentation. */
line_indent = charalloc(cols + 1);
@@ -334,14 +324,12 @@ void do_indent(ssize_t cols)
}
line_indent[line_indent_len] = '\0';
- }
/* Go through each line of the text. */
for (f = top; f != bot->next; f = f->next) {
size_t line_len = strlen(f->data);
size_t indent_len = indent_length(f->data);
- if (!unindent) {
/* If we're indenting, add the characters in line_indent to
* the beginning of the non-whitespace text of this line. */
f->data = charealloc(f->data, line_len + line_indent_len + 1);
@@ -364,55 +352,11 @@ void do_indent(ssize_t cols)
* magicline, add a new magicline. */
if (!ISSET(NO_NEWLINES) && f == openfile->filebot)
new_magicline();
- } else {
- size_t indent_col = strnlenpt(f->data, indent_len);
- /* The length in columns of the indentation on this line. */
-
- if (cols <= indent_col) {
- size_t indent_new = actual_x(f->data, indent_col - cols);
- /* The length of the indentation remaining on
- * this line after we unindent. */
- size_t indent_shift = indent_len - indent_new;
- /* The change in the indentation on this line
- * after we unindent. */
-
- /* If we're unindenting, and there's at least cols
- * columns' worth of indentation at the beginning of the
- * non-whitespace text of this line, remove it. */
- charmove(&f->data[indent_new], &f->data[indent_len],
- line_len - indent_shift - indent_new + 1);
- null_at(&f->data, line_len - indent_shift + 1);
- openfile->totsize -= indent_shift;
-
- /* Keep track of the change in the current line. */
- if (openfile->mark_set && f == openfile->mark_begin &&
- openfile->mark_begin_x > indent_new) {
- if (openfile->mark_begin_x <= indent_len)
- openfile->mark_begin_x = indent_new;
- else
- openfile->mark_begin_x -= indent_shift;
- }
-
- if (f == openfile->current &&
- openfile->current_x > indent_new) {
- if (openfile->current_x <= indent_len)
- openfile->current_x = indent_new;
- else
- openfile->current_x -= indent_shift;
- openfile->placewewant = xplustabs();
- }
-
- /* We've unindented, so the indentation changed. */
- indent_changed = TRUE;
- }
- }
}
- if (!unindent)
/* Clean up. */
free(line_indent);
- if (indent_changed) {
/* Throw away the undo stack, to prevent making mistakes when
* the user tries to undo something in the reindented text. */
discard_until(NULL, openfile);
@@ -422,7 +366,6 @@ void do_indent(ssize_t cols)
/* Update the screen. */
refresh_needed = TRUE;
- }
}
/* Indent the current line, or all lines covered by the mark if the mark