]> git.wh0rd.org Git - nano.git/commitdiff
fix potential segfault when doing a full justify
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Sat, 4 Dec 2004 17:36:14 +0000 (17:36 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Sat, 4 Dec 2004 17:36:14 +0000 (17:36 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2156 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index 7175cae8ff53cbaaf99ea1142a7a2951d252a8ac..e95baa55807734920a592ec2a6f6774c9a6fdcd7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -62,6 +62,10 @@ CVS code -
   do_justify()
        - For consistency, preserve placewewant if we didn't unjustify
          instead of setting it to 0. (DLR)
+       - When justifying the entire file, properly break out of the
+         loop if there are no more paragraphs after the current one and
+         the paragraph search left us on the magicline, so as to avoid
+         a segfault. (DLR)
 - winio.c:
   unget_kbinput()
        - Remove the wide character handling, as it didn't work properly
index 3408b79bb8f00f6c7dec67cfccf2e59a983941bf..9cdfc71132f61ba461f6750d8ab2004362ebdab4 100644 (file)
@@ -2771,15 +2771,15 @@ void do_justify(bool full_justify)
        /* Find the first line of the paragraph to be justified.  That
         * is the start of this paragraph if we're in one, or the start
         * of the next otherwise.  Save the quote length and paragraph
-        * length (number of lines).  Don't refresh the screen yet
-        * (since we'll do that after we justify).  If the search failed
-        * and we're justifying the whole file, move the last line of
-        * the text we're justifying to just before the magicline, which
-        * is where it'll be anyway if we've searched the entire file,
-        * and break out of the loop; otherwise, refresh the screen and
+        * length (number of lines).  Don't refresh the screen yet,
+        * since we'll do that after we justify.  If the search
+        * failed, we're justifying the whole file, and the search
+        * didn't leave us on the last line of the file, set the last
+        * line of the text to be justified to the last line of the file
+        * and break out of the loop.  Otherwise, refresh the screen and
         * get out. */
        if (do_para_search(&quote_len, &par_len)) {
-           if (full_justify) {
+           if (full_justify && current != filebot) {
                last_par_line = filebot;
                break;
            } else {