commit b2d1c5f5b252040929ac78a5ccc59439ffc35fb7
parent 036a9d5341cf87b2ec8349cb58605c9534265f4a
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Thu, 10 Nov 2005 06:01:41 +0000
fix yet more do_justify() breakage
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3146 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/text.c b/src/text.c
@@ -974,9 +974,9 @@ filestruct *backup_lines(filestruct *first_line, size_t par_len)
}
#endif
- /* Note: par_len will be one greater than the number of lines
- * between current and filebot if filebot is the last line to be
- * backed up. */
+ /* par_len will be one greater than the number of lines between
+ * current and filebot if filebot is the last line in the
+ * paragraph. */
assert(par_len > 0 && openfile->current->lineno + par_len <=
filebot->lineno + 1);
@@ -1123,6 +1123,9 @@ void do_justify(bool full_justify)
filestruct *last_par_line;
/* Will be the line after the last line of the justified
* paragraph, if any. Also for restoring after unjustify. */
+ bool filebot_inpar;
+ /* Whether the text at filebot is part of the current
+ * paragraph. */
/* We save these variables to be restored if the user
* unjustifies. */
@@ -1199,6 +1202,12 @@ void do_justify(bool full_justify)
}
}
+ /* par_len will be one greater than the number of lines between
+ * current and filebot if filebot is the last line in the
+ * paragraph. Set filebot_inpar to TRUE if this is the case. */
+ filebot_inpar = (openfile->current->lineno + par_len ==
+ openfile->filebot->lineno + 1);
+
/* If we haven't already done it, copy the original paragraph(s)
* to the justify buffer. */
if (first_par_line == NULL)
@@ -1449,8 +1458,8 @@ void do_justify(bool full_justify)
/* Partition the filestruct so that it contains only the
* text of the justified paragraph. */
filepart = partition_filestruct(first_par_line, 0,
- last_par_line, (last_par_line == openfile->filebot) ?
- strlen(last_par_line->data) : 0);
+ last_par_line, (filebot_inpar && last_par_line ==
+ openfile->filebot) ? strlen(last_par_line->data) : 0);
/* Remove the text of the justified paragraph, and
* replace it with the text in the justify buffer. */