changeset 448:dd9db57ee7ce v7.0118

updated for version 7.0118
author vimboss
date Thu, 28 Jul 2005 22:36:45 +0000
parents 8347d456f7e5
children 3709cf52b9b5
files runtime/doc/eval.txt runtime/doc/options.txt runtime/doc/syntax.txt runtime/doc/tags runtime/doc/todo.txt runtime/doc/version7.txt runtime/spell/de/main.aap runtime/spell/en/main.aap runtime/spell/he/main.aap runtime/spell/nl/main.aap runtime/spell/pl/main.aap src/eval.c src/main.c src/misc2.c src/option.c src/po/Makefile src/proto/eval.pro src/proto/message.pro src/syntax.c src/version.h
diffstat 20 files changed, 144 insertions(+), 59 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 25
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2416,29 +2416,24 @@ get({dict}, {key} [, {default}])
 
 							*getbufline()*
 getbufline({expr}, {lnum} [, {end}])
-		Return the lines starting from {lnum} to {end} in the buffer
-		{expr} as a List. If {end} is omitted, only the line {lnum}
-		is returned.
+		Return a List with the lines starting from {lnum} to {end}
+		(inclusive) in the buffer {expr}.  If {end} is omitted, a List
+		with only the line {lnum} is returned.
 
 		For the use of {expr}, see |bufname()| above.
 
-		When {lnum} is a String that doesn't start with a
-		digit, line() is called to translate the String into a Number.
-
-		{end} is used in the same way as {lnum}.
+		For {lnum} and {end} "$" can be used for the last line of the
+		buffer.  Otherwise a number must be used.
 
 		When {lnum} is smaller than 1 or bigger than the number of
 		lines in the buffer, an empty List is returned.
 
 		When {end} is greater than the number of lines in the buffer,
 		it is treated as {end} is set to the number of lines in the
-		buffer.
-
-		When non-existing line ranges are specified, an empty List is
-		returned.  When {end} is before {lnum} an empty List is
+		buffer.  When {end} is before {lnum} an empty List is
 		returned.
 
-		This function works only for loaded buffers. For unloaded and
+		This function works only for loaded buffers.  For unloaded and
 		non-existing buffers, an empty List is returned.
 
 		Example: >
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 26
+*options.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2282,9 +2282,11 @@ A jump table for the options with a shor
 	|viminfo-file|.  And Vim expects the terminal to use utf-8 too.  Thus
 	setting 'encoding' to one of these values instead of utf-8 only has
 	effect for encoding used for files when 'fileencoding' is empty.
-
-	 When 'encoding' is set to a Unicode encoding, and 'fileencodings' was
-	 not set yet, the default for 'fileencodings' is changed.
+	"utf-16" is NOT supported (and probably never will be, since it's such
+	an ugly encoding). *utf-16*
+
+	When 'encoding' is set to a Unicode encoding, and 'fileencodings' was
+	not set yet, the default for 'fileencodings' is changed.
 
 			*'endofline'* *'eol'* *'noendofline'* *'noeol'*
 'endofline' 'eol'	boolean	(default on)
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 18
+*syntax.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3641,6 +3641,15 @@ specified field is used, and settings ar
 result is like this single command has been used: >
    :hi Comment	term=bold ctermfg=Cyan guifg=#80a0ff gui=bold
 <
+When listing a highlight group and 'verbose' is non-zero, the listing will
+also tell where it was last set.  Example: >
+	:verbose hi Comment
+<	Comment        xxx term=bold ctermfg=4 guifg=Blue ~
+           Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim ~
+
+For details about when this message is given and when it's valid see
+|:set-verbose|.
+
 					*highlight-args* *E416* *E417* *E423*
 There are three types of terminals for highlighting:
 term	a normal terminal (vt100, xterm)
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4984,6 +4984,7 @@ g:netrw_rmdir_cmd	pi_netrw.txt	/*g:netrw
 g:netrw_rmf_cmd	pi_netrw.txt	/*g:netrw_rmf_cmd*
 g:var	eval.txt	/*g:var*
 g;	motion.txt	/*g;*
+g<	message.txt	/*g<*
 g<Down>	motion.txt	/*g<Down>*
 g<End>	motion.txt	/*g<End>*
 g<Home>	motion.txt	/*g<Home>*
@@ -6746,6 +6747,7 @@ usr_44.txt	usr_44.txt	/*usr_44.txt*
 usr_45.txt	usr_45.txt	/*usr_45.txt*
 usr_90.txt	usr_90.txt	/*usr_90.txt*
 usr_toc.txt	usr_toc.txt	/*usr_toc.txt*
+utf-16	options.txt	/*utf-16*
 utf-8	mbyte.txt	/*utf-8*
 utf-8-char-arg	mbyte.txt	/*utf-8-char-arg*
 utf-8-in-xwindows	mbyte.txt	/*utf-8-in-xwindows*
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 27
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 28
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,6 +30,8 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Is it simple to let ":verbose hi mailSubject" mention where it was last set?
+
 Mac unicode patch (Da Woon Jung):
 - selecting proportional font breaks display
 - UTF-8 text causes display problems.  Font replacement causes this.
@@ -52,8 +54,6 @@ Awaiting response:
 -   Win32: tearoff menu window should have a scrollbar when it's taller than
     the screen.
 -   mblen(NULL, 0) also in Vim 6.3?
--   Win32: Crash when pasting Simplified Chinese in utf-8. (rainux, 2005 June
-    20)
 
 
 PLANNED FOR VERSION 7.0:
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Jul 27
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Jul 28
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -238,6 +238,9 @@ is especially useful for commands such a
 commands and highlighting is kept.  Only works when the 'more' option is set.
 Previously it only partly worked for ":clist".
 
+The |g<| command can be used to see the last page of messages after you have
+hit <Enter> at the |hit-enter-prompt|.  Then you can scroll further back.
+
 
 POSIX compatibility					*new-posix*
 -------------------
@@ -724,6 +727,9 @@ Win32: Balloons can have multiple lines 
 The 's' flag is added to the search() and searchpair() function to set the
 ' mark if the cursor is moved. (Yegappan Lakshmanan)
 
+When 'verbose' is set the output of ":highlight" will show where a highlight
+item was last set.
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 
--- a/runtime/spell/de/main.aap
+++ b/runtime/spell/de/main.aap
@@ -14,11 +14,11 @@ all: $(SPELLDIR)/de.latin1.spl $(SPELLDI
 
 $(SPELLDIR)/de.latin1.spl : $(VIM) $(FILES)
         :sys env LANG=de_DE.ISO8859-1
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
+		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
 
 $(SPELLDIR)/de.utf-8.spl : $(VIM) $(FILES)
         :sys env LANG=de_DE.UTF-8
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
+		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
 
 ../README_de.txt: README_de_DE_comb.txt
         :copy $source $target
--- a/runtime/spell/en/main.aap
+++ b/runtime/spell/en/main.aap
@@ -18,16 +18,16 @@ all: $(SPELLDIR)/en.latin1.spl $(SPELLDI
 
 $(SPELLDIR)/en.latin1.spl : $(VIM) $(FILES)
         :sys env LANG=en_US.ISO8859-1
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB
-			en_NZ" -c q
+		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/en
+                        en_US en_AU en_CA en_GB en_NZ" -c q
 
 $(SPELLDIR)/en.utf-8.spl : $(VIM) $(FILES)
         :sys env LANG=en_US.UTF-8
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB
-			en_NZ" -c q
+		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/en
+                        en_US en_AU en_CA en_GB en_NZ" -c q
 
 $(SPELLDIR)/en.ascii.spl : $(VIM) $(FILES)
-        :sys $(VIM) -e -c "mkspell! -ascii $(SPELLDIR)/en
+        :sys $(VIM) -u NONE -e -c "mkspell! -ascii $(SPELLDIR)/en
                         en_US en_AU en_CA en_GB en_NZ" -c q
  
 ../README_en.txt: README_en_US.txt README_en_AU.txt
--- a/runtime/spell/he/main.aap
+++ b/runtime/spell/he/main.aap
@@ -13,10 +13,10 @@ all: $(SPELLDIR)/he.utf-8.spl $(SPELLDIR
 
 $(SPELLDIR)/he.utf-8.spl : $(VIM) $(FILES)
         :sys env LANG=he_IL.UTF-8
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/he he_IL" -c q
+		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/he he_IL" -c q
 
 $(SPELLDIR)/he.iso-8859-8.spl : $(VIM) $(FILES)
-        :sys $(VIM) -e -c "set enc=iso-8859-8"
+        :sys $(VIM) -u NONE -e -c "set enc=iso-8859-8"
                         -c "mkspell! $(SPELLDIR)/he he_IL" -c q
 
 ../README_he.txt : README_he_IL.txt
--- a/runtime/spell/nl/main.aap
+++ b/runtime/spell/nl/main.aap
@@ -13,11 +13,11 @@ all: $(SPELLDIR)/nl.latin1.spl $(SPELLDI
 
 $(SPELLDIR)/nl.latin1.spl : $(VIM) $(FILES)
         :sys env LANG=nl_NL.ISO8859-1
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
+		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
 
 $(SPELLDIR)/nl.utf-8.spl : $(VIM) $(FILES)
         :sys env LANG=nl_NL.UTF-8
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
+		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
 
 ../README_nl.txt : README_nl_NL.txt
         :copy $source $target
--- a/runtime/spell/pl/main.aap
+++ b/runtime/spell/pl/main.aap
@@ -13,13 +13,13 @@ all: $(SPELLDIR)/pl.iso-8859-2.spl $(SPE
         $(SPELLDIR)/pl.cp1250.spl ../README_pl.txt
 
 $(SPELLDIR)/pl.iso-8859-2.spl : $(VIM) $(FILES)
-        :sys env LANG=pl_PL.ISO8859-2 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
+        :sys env LANG=pl_PL.ISO8859-2 $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
 
 $(SPELLDIR)/pl.utf-8.spl : $(VIM) $(FILES)
-        :sys env LANG=pl_PL.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
+        :sys env LANG=pl_PL.UTF-8 $(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
 
 $(SPELLDIR)/pl.cp1250.spl : $(VIM) $(FILES)
-        :sys $(VIM) -e -c "set enc=cp1250" -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
+        :sys $(VIM) -u NONE -e -c "set enc=cp1250" -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
 
 ../README_pl.txt: README_pl_PL.txt
         :copy $source $target
--- a/src/eval.c
+++ b/src/eval.c
@@ -643,6 +643,7 @@ static void init_tv __ARGS((typval_T *va
 static long get_tv_number __ARGS((typval_T *varp));
 static long get_tv_number_chk __ARGS((typval_T *varp, int *denote));
 static linenr_T get_tv_lnum __ARGS((typval_T *argvars));
+static linenr_T get_tv_lnum_buf __ARGS((typval_T *argvars, buf_T *buf));
 static char_u *get_tv_string __ARGS((typval_T *varp));
 static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf));
 static char_u *get_tv_string_chk __ARGS((typval_T *varp));
@@ -9187,11 +9188,12 @@ f_getbufline(argvars, rettv)
     buf = get_buf_tv(&argvars[0]);
     --emsg_off;
 
-    lnum = get_tv_lnum(&argvars[1]);
+    lnum = get_tv_lnum_buf(&argvars[1], buf);
     if (argvars[2].v_type == VAR_UNKNOWN)
 	end = lnum;
     else
-	end = get_tv_lnum(&argvars[2]);
+	end = get_tv_lnum_buf(&argvars[2], buf);
+
     get_buffer_lines(buf, lnum, end, TRUE, rettv);
 }
 
@@ -15651,7 +15653,8 @@ get_tv_number_chk(varp, denote)
 }
 
 /*
- * Get the lnum from the first argument.  Also accepts ".", "$", etc.
+ * Get the lnum from the first argument.
+ * Also accepts ".", "$", etc., but that only works for the current buffer.
  * Returns -1 on error.
  */
     static linenr_T
@@ -15673,6 +15676,24 @@ get_tv_lnum(argvars)
 }
 
 /*
+ * Get the lnum from the first argument.
+ * Also accepts "$", then "buf" is used.
+ * Returns 0 on error.
+ */
+    static linenr_T
+get_tv_lnum_buf(argvars, buf)
+    typval_T	*argvars;
+    buf_T	*buf;
+{
+    if (argvars[0].v_type == VAR_STRING
+	    && argvars[0].vval.v_string != NULL
+	    && argvars[0].vval.v_string[0] == '$'
+	    && buf != NULL)
+	return buf->b_ml.ml_line_count;
+    return get_tv_number_chk(&argvars[0], NULL);
+}
+
+/*
  * Get the string value of a variable.
  * If it is a Number variable, the number is converted into a string.
  * get_tv_string() uses a single, static buffer.  YOU CAN ONLY USE IT ONCE!
@@ -18678,6 +18699,23 @@ store_session_globals(fd)
 }
 #endif
 
+/*
+ * Display script name where an item was last set.
+ * Should only be invoked when 'verbose' is non-zero.
+ */
+    void
+last_set_msg(scriptID)
+    scid_T scriptID;
+{
+    if (scriptID != 0)
+    {
+	verbose_enter();
+	MSG_PUTS(_("\n\tLast set from "));
+	MSG_PUTS(get_scriptname(scriptID));
+	verbose_leave();
+    }
+}
+
 #endif /* FEAT_EVAL */
 
 #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) || defined(PROTO)
--- a/src/main.c
+++ b/src/main.c
@@ -1034,7 +1034,7 @@ main_loop(cmdwin, noexmode)
 	    emsg_on_display = FALSE;	/* can delete error message now */
 	    did_emsg = FALSE;
 	    msg_didany = FALSE;		/* reset lines_left in msg_start() */
-	    clear_sb_text();		/* clear scroll-back text */
+	    may_clear_sb_text();	/* clear scroll-back text on next msg */
 	    showruler(FALSE);
 
 	    setcursor();
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -870,10 +870,13 @@ lalloc(size, message)
 	if (releasing)
 	    break;
 	releasing = TRUE;
-	try_again = mf_release_all();
+
+	clear_sb_text();	      /* free any scrollback text */
+	try_again = mf_release_all(); /* release as many blocks as possible */
 #ifdef FEAT_EVAL
-	try_again |= garbage_collect();
-#endif
+	try_again |= garbage_collect(); /* cleanup recursive lists/dicts */
+#endif
+
 	releasing = FALSE;
 	if (!try_again)
 	    break;
--- a/src/option.c
+++ b/src/option.c
@@ -3814,15 +3814,7 @@ do_set(arg, opt_flags)
 		    showoneopt(&options[opt_idx], opt_flags);
 #ifdef FEAT_EVAL
 		    if (p_verbose > 0)
-		    {
-			if (options[opt_idx].scriptID != 0)
-			{
-			    verbose_enter();
-			    MSG_PUTS(_("\n\tLast set from "));
-			    MSG_PUTS(get_scriptname(options[opt_idx].scriptID));
-			    verbose_leave();
-			}
-		    }
+			last_set_msg(options[opt_idx].scriptID);
 #endif
 		}
 		else
--- a/src/po/Makefile
+++ b/src/po/Makefile
@@ -27,6 +27,7 @@ LANGUAGES = \
 		zh_CN.UTF-8 \
 		zh_TW \
 		zh_TW.UTF-8 \
+# end marker
 
 MOFILES = \
 		af.mo \
@@ -51,6 +52,7 @@ MOFILES = \
 		zh_CN.mo \
 		zh_TW.UTF-8.mo \
 		zh_TW.mo \
+# end marker
 
 CONVERTED = \
 		cs.cp1250.mo \
@@ -60,6 +62,7 @@ CONVERTED = \
 		sk.cp1250.mo \
 		uk.cp1251.mo \
 		zh_CN.cp936.mo \
+# end marker
 
 CHECKFILES = \
 		af.ck \
@@ -91,6 +94,7 @@ CHECKFILES = \
 		sk.cp1250.ck \
 		uk.cp1251.ck \
 		zh_CN.cp936.ck \
+# end marker
 
 PACKAGE = vim
 SHELL = /bin/sh
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -86,6 +86,7 @@ int func_has_abort __ARGS((void *cookie)
 int read_viminfo_varlist __ARGS((vir_T *virp, int writing));
 void write_viminfo_varlist __ARGS((FILE *fp));
 int store_session_globals __ARGS((FILE *fd));
+void last_set_msg __ARGS((scid_T scriptID));
 int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
 char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
 /* vim: set ft=c : */
--- a/src/proto/message.pro
+++ b/src/proto/message.pro
@@ -39,7 +39,9 @@ void msg_puts_title __ARGS((char_u *s));
 void msg_puts_long_attr __ARGS((char_u *longstr, int attr));
 void msg_puts_long_len_attr __ARGS((char_u *longstr, int len, int attr));
 void msg_puts_attr __ARGS((char_u *s, int attr));
+void may_clear_sb_text __ARGS((void));
 void clear_sb_text __ARGS((void));
+void show_sb_text __ARGS((void));
 int msg_use_printf __ARGS((void));
 void mch_errmsg __ARGS((char *str));
 void mch_msg __ARGS((char *str));
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -51,6 +51,9 @@ struct hl_group
 #endif
     int		sg_link;	/* link to this highlight group ID */
     int		sg_set;		/* combination of SG_* flags */
+#ifdef FEAT_EVAL
+    scid_T	sg_scriptID;	/* script in which the group was last set */
+#endif
 };
 
 #define SG_TERM		1	/* term has been set */
@@ -6352,6 +6355,9 @@ do_highlight(line, forceit, init)
 		if (!init)
 		    HL_TABLE()[from_id - 1].sg_set |= SG_LINK;
 		HL_TABLE()[from_id - 1].sg_link = to_id;
+#ifdef FEAT_EVAL
+		HL_TABLE()[from_id - 1].sg_scriptID = current_SID;
+#endif
 		redraw_all_later(NOT_VALID);
 	    }
 	}
@@ -7101,6 +7107,9 @@ do_highlight(line, forceit, init)
 #endif
 	else
 	    set_hl_attr(idx);
+#ifdef FEAT_EVAL
+	HL_TABLE()[idx].sg_scriptID = current_SID;
+#endif
 	redraw_all_later(NOT_VALID);
     }
     vim_free(key);
@@ -7201,6 +7210,12 @@ highlight_clear(idx)
     HL_TABLE()[idx].sg_font_name = NULL;
     HL_TABLE()[idx].sg_gui_attr = 0;
 #endif
+#ifdef FEAT_EVAL
+    /* Clear the script ID only when there is no link, since that is not
+     * cleared. */
+    if (HL_TABLE()[idx].sg_link == 0)
+	HL_TABLE()[idx].sg_scriptID = 0;
+#endif
 }
 
 #if defined(FEAT_GUI) || defined(PROTO)
@@ -7868,13 +7883,19 @@ highlight_list_one(id)
 				    0, sgp->sg_font_name, "font");
 #endif
 
-    if (sgp->sg_link)
+    if (sgp->sg_link && !got_int)
     {
 	(void)syn_list_header(didh, 9999, id);
+	didh = TRUE;
 	msg_puts_attr((char_u *)"links to", hl_attr(HLF_D));
 	msg_putchar(' ');
 	msg_outtrans(HL_TABLE()[HL_TABLE()[id - 1].sg_link - 1].sg_name);
     }
+
+#ifdef FEAT_EVAL
+    if (didh && p_verbose > 0)
+	last_set_msg(sgp->sg_scriptID);
+#endif
 }
 
     static int
@@ -7890,6 +7911,8 @@ highlight_list_arg(id, didh, type, iarg,
     char_u	*ts;
     int		i;
 
+    if (got_int)
+	return FALSE;
     if (type == LIST_STRING ? (sarg != NULL) : (iarg != 0))
     {
 	ts = buf;
@@ -7915,10 +7938,12 @@ highlight_list_arg(id, didh, type, iarg,
 	(void)syn_list_header(didh,
 			       (int)(vim_strsize(ts) + STRLEN(name) + 1), id);
 	didh = TRUE;
-
-	MSG_PUTS_ATTR(name, hl_attr(HLF_D));
-	MSG_PUTS_ATTR("=", hl_attr(HLF_D));
-	msg_outtrans(ts);
+	if (!got_int)
+	{
+	    MSG_PUTS_ATTR(name, hl_attr(HLF_D));
+	    MSG_PUTS_ATTR("=", hl_attr(HLF_D));
+	    msg_outtrans(ts);
+	}
     }
     return didh;
 }
@@ -8068,11 +8093,17 @@ syn_list_header(did_header, outlen, id)
     if (!did_header)
     {
 	msg_putchar('\n');
+	if (got_int)
+	    return TRUE;
 	msg_outtrans(HL_TABLE()[id - 1].sg_name);
 	endcol = 15;
     }
     else if (msg_col + outlen + 1 >= Columns)
+    {
 	msg_putchar('\n');
+	if (got_int)
+	    return TRUE;
+    }
     else
     {
 	if (msg_col >= endcol)	/* wrap around is like starting a new line */
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 27)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 27, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 28)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 28, compiled "