]> git.wh0rd.org Git - nano.git/commitdiff
fix yet more do_justify() breakage
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Thu, 10 Nov 2005 06:01:41 +0000 (06:01 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Thu, 10 Nov 2005 06:01:41 +0000 (06:01 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3146 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

src/text.c

index 97e1ee28af02a19bcb3cda2c0b9a5ce2cc09f1d9..d52e15555f3960be89232ff55ac15d9f9109fd78 100644 (file)
@@ -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. */