fix yet more do_justify() breakage


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3146 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
diff --git a/src/text.c b/src/text.c
index 97e1ee2..d52e155 100644
--- a/src/text.c
+++ b/src/text.c
@@ -974,9 +974,9 @@
     }
 #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 @@
     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 @@
 	    }
 	}
 
+	/* 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 @@
 	    /* 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. */