]> git.wh0rd.org Git - nano.git/commitdiff
DB's justify fixes
authorChris Allegretta <chrisa@asty.org>
Wed, 12 Feb 2003 03:21:45 +0000 (03:21 +0000)
committerChris Allegretta <chrisa@asty.org>
Wed, 12 Feb 2003 03:21:45 +0000 (03:21 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1450 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
nano.c

index 2de88eeec31be0a455a5d42c349357085484a926..4a35252014fdea05b78e47a83ab19f6d136948b4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,15 +20,21 @@ CVS code
        - Fix assumption that matches is null terminated (David 
          Benbennick).
 - nano.c:
-  main()
-       - Fix nano not compiling with ENABLE_RCFILE and DISABLE_TABCOMP
-         (David Benbennick).
-  help_init()
-       - Fix crashing in do_help when COLS < 23 (David Benbennick).
+  breakable()
+       - Fix incorrect return value on short lines (David Benbennick).
   do_help()
        - Fix line lengths not being computed properly, causes display
          glitches most noticeable with < 20 rows.  New function
          nano.c:line_len(). (David Benbennick).
+  do_justify()
+       - Add regfree() to quote regex (David Benbennick).
+       - Only copy previous indent if AUTOINDENT is set (David 
+         Benbennick).
+  help_init()
+       - Fix crashing in do_help when COLS < 23 (David Benbennick).
+  main()
+       - Fix nano not compiling with ENABLE_RCFILE and DISABLE_TABCOMP
+         (David Benbennick).
 - rcfile.c:
   colortoint()
        - Don't bomb after invalid color and print bad color name
diff --git a/nano.c b/nano.c
index e6ce86e53a10be90372e14fae63e04658e1dd74c..05b515393b8a6b63a668c8ec67fdb9733f7826c6 100644 (file)
--- a/nano.c
+++ b/nano.c
@@ -2225,7 +2225,9 @@ int breakable(const char *line, int goal)
        else
            goal -= 1;
     }
-    return FALSE;
+    /* If goal is not negative, the whole line (one word) was short
+     * enough. */
+    return goal >= 0;
 }
 
 /* We are trying to break a chunk off line.  We find the last space such
@@ -2400,10 +2402,10 @@ int do_justify(void)
            /* There is no next paragraph, so nothing to justify. */
            if (current->next == NULL) {
                placewewant = 0;
-               if (current_y > editwinrows - 1)
-                   edit_update(current, CENTER);
-               else
-                   edit_refresh();
+               edit_refresh();
+#ifdef HAVE_REGEX_H
+               regfree(&qreg);
+#endif
                return 0;
            }
            current = current->next;
@@ -2486,6 +2488,13 @@ int do_justify(void)
                 * line and copy text after break_pos into it. */
                splice_node(current, make_new_node(current),
                                current->next);
+               /* In a non-quoted paragraph, we copy the indent only if
+                  AUTOINDENT is turned on. */
+               if (quote_len == 0)
+#ifndef NANO_SMALL
+                   if (!ISSET(AUTOINDENT))
+#endif
+                       indent_len = 0;
                current->next->data = charalloc(indent_len + line_len -
                                                break_pos);
                strncpy(current->next->data, current->data,