- Fix erroneous #ifdef so that nano compiles with
--disable-justify again. (DLR; found by Mike Frysinger)
- nano.c:
+ do_justify()
+ - If all the text from the next line has been moved to the
+ current line and the next line has been deleted, continue the
+ justification loop from there and skip the respacing routine
+ in order to avoid running it more than once on the same line
+ (since it assumes that we've moved to the next line, which
+ isn't true in that case). (DLR)
do_exit()
- Tweak for efficiency. (David Benbennick)
- proto.h:
last_par_line = current;
while (TRUE) {
-
/* First, search for the beginning of the current paragraph or,
* if we're at the end of it, the beginning of the next
* paragraph. Save the quote length, paragraph length, and
totlines--;
totsize -= indent_len;
current_y--;
+
+ /* Don't go to the next line, since there isn't one
+ * anymore. Just continue the loop from here. */
+ continue;
} else {
charmove(current->next->data + indent_len,
current->next->data + indent_len + break_pos + 1,
next_line_len - break_pos - indent_len);
null_at(¤t->next->data, next_line_len - break_pos);
+
+ /* Go to the next line. */
current = current->next;
}
} else
/* Go to the next line. */
current = current->next;
- /* If the line we were on before still exists, and it was
- * not the last line of the paragraph, add a space to the
- * end of it to replace the one removed or left out by
- * justify_format(). If it was the last line of the
- * paragraph, and justify_format() left a space on the end
- * of it, remove the space. */
+ /* If we've gone to the next line, the line we were on
+ * before still exists, and it was not the last line of the
+ * paragraph, add a space to the end of it to replace the
+ * one removed or left out by justify_format(). If it was
+ * the last line of the paragraph, and justify_format() left
+ * a space on the end of it, remove the space. */
if (current->prev != NULL) {
size_t prev_line_len = strlen(current->prev->data);