tweaks: do not leak the indentation when all lines are empty

This commit is contained in:
Benno Schulenberg 2017-08-16 17:16:18 +02:00
parent 1b2a091de9
commit 807f5c2e69
1 changed files with 12 additions and 10 deletions

View File

@ -296,6 +296,18 @@ void do_indent(void)
bot = top;
}
/* Go through the lines to see if there's a non-empty one. */
for (f = top; f != bot->next; f = f->next) {
if (f->data[0] != '\0')
break;
}
/* If all lines are empty, there is nothing to do. */
if (f == bot->next) {
free(line_indent);
return;
}
/* Set the indentation to either a bunch of spaces or a single tab. */
if (ISSET(TABS_TO_SPACES)) {
charset(line_indent, ' ', tabsize);
@ -307,16 +319,6 @@ void do_indent(void)
line_indent[line_indent_len] = '\0';
/* Go through the lines to see if there's a non-empty one. */
for (f = top; f != bot->next; f = f->next) {
if (f->data[0] != '\0')
break;
}
/* If all lines are empty, there is nothing to do. */
if (f == bot->next)
return;
/* Go through each of the lines, but skip empty ones. */
for (f = top; f != bot->next; f = f->next) {
size_t line_len = strlen(f->data);