commit 428f6203708b36268de3ee4f6caec67192caa245
parent fdcb9e92d64ce004cec8851438c1cdbef0c25064
Author: Chris Allegretta <chrisa@asty.org>
Date: Wed, 12 Feb 2003 03:21:45 +0000
DB's justify fixes
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1450 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git 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
@@ -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,