changeset 282:33d9c918b8ab

updated for version 7.0075
author vimboss
date Sun, 22 May 2005 22:07:59 +0000
parents cd05cd5cea91
children a2ff714de3db
files runtime/doc/change.txt runtime/doc/eval.txt runtime/doc/tags src/Makefile src/auto/configure src/configure.in src/quickfix.c src/testdir/test55.ok src/version.h
diffstat 9 files changed, 109 insertions(+), 95 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.0aa.  Last change: 2005 Apr 26
+*change.txt*    For Vim version 7.0aa.  Last change: 2005 May 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -19,6 +19,7 @@ 4. Complex changes		|complex-change|
    4.4 Changing tabs		   |change-tabs|
 5. Copying and moving text	|copy-move|
 6. Formatting text		|formatting|
+7. Sorting text			|sorting|
 
 For inserting text see |insert.txt|.
 
@@ -1479,5 +1480,34 @@ And a few warnings:
 
 - Formatting a long paragraph and/or with complicated indenting may be slow.
 
+==============================================================================
+7. Sorting text						*sorting*
+
+Vim has a sorting function and a sorting command.  The sorting function can be
+found here: |sort()|.
+
+							*:sor* *:sort*
+:[range]sor[t][!] [i] [u] [/{pattern}/]
+			Sort lines in [range].
+
+			With [!] the order is reversed.
+
+			With [i] case is ignored.
+
+			With [u] only keep the first of a sequence of
+			identical lines (ignoring case when [i] is used).
+
+			When /{pattern}/ is specified the text matched with
+			{pattern} is skipped, so that you sort on what comes
+			after the match.  For lines without a match sorting
+			starts in the first column (e.g., for empty lines).
+			Instead of the slash any non-letter can be used.
+			For example, to sort on the second comma-separated
+			field: >
+				:sort /[^,]*,/
+<			To sort on the text at virtual column 10 (thus
+			ignoring the difference between tabs and spaces): >
+				:sort /.*\%10v/
+<
 
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 May 18
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 May 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1497,7 +1497,7 @@ getftype( {fname})		String	description o
 getline( {lnum})		String	line {lnum} of current buffer
 getline( {lnum}, {end})		List	lines {lnum} to {end} of current buffer
 getqflist()			List	list of quickfix items
-getreg( [{regname}])		String	contents of register
+getreg( [{regname} [, 1]])	String	contents of register
 getregtype( [{regname}])	String	type of register
 getwinposx()			Number	X coord in pixels of GUI Vim window
 getwinposy()			Number	Y coord in pixels of GUI Vim window
@@ -1587,7 +1587,8 @@ setreg( {n}, {v}[, {opt}])	Number	set re
 setwinvar( {nr}, {varname}, {val})	set {varname} in window {nr} to {val}
 simplify( {filename})		String	simplify filename as much as possible
 sort( {list} [, {func}])	List	sort {list}, using {func} to compare
-split( {expr} [, {pat}])	List	make List from {pat} separated {expr}
+split( {expr} [, {pat} [, {keepempty}]])
+				List	make List from {pat} separated {expr}
 strftime( {format}[, {time}])	String	time in specified format
 stridx( {haystack}, {needle}[, {start}])
 				Number	index of {needle} in {haystack}
@@ -2558,12 +2559,15 @@ getqflist()						*getqflist()*
 			:endfor
 
 
-getreg([{regname}])					*getreg()*
+getreg([{regname} [, 1]])				*getreg()*
 		The result is a String, which is the contents of register
 		{regname}.  Example: >
 			:let cliptext = getreg('*')
 <		getreg('=') returns the last evaluated value of the expression
 		register.  (For use in maps.)
+		getreg('=', 1) returns the expression itself, so that it can
+		be restored with |setreg()|.  For other registers the extra
+		argument is ignored, thus you can always give it.
 		If {regname} is not specified, |v:register| is used.
 
 
@@ -2577,7 +2581,6 @@ getregtype([{regname}])					*getregtype(
 		<CTRL-V> is one character with value 0x16.
 		If {regname} is not specified, |v:register| is used.
 
-
 							*getwinposx()*
 getwinposx()	The result is a Number, which is the X coordinate in pixels of
 		the left hand side of the GUI Vim window.  The result will be
@@ -3598,9 +3601,18 @@ setcmdpos({pos})					*setcmdpos()*
 setline({lnum}, {line})					*setline()*
 		Set line {lnum} of the current buffer to {line}.
 		{lnum} is used like with |getline()|.
+		When {lnum} is just below the last line the {line} will be
+		added as a new line.
 		If this succeeds, 0 is returned.  If this fails (most likely
 		because {lnum} is invalid) 1 is returned.  Example: >
 			:call setline(5, strftime("%c"))
+<		When {line} is a List then line {lnum} and following lines
+		will be set to the items in the list.  Example: >
+			:call setline(5, ['aaa', 'bbb', 'ccc'])
+<		This is equivalent to: >
+			:for [n, l] in [[5, 6, 7], ['aaa', 'bbb', 'ccc']]
+			:  call setline(n, l)
+			:endfor
 <		Note: The '[ and '] marks are not set.
 
 
@@ -3669,7 +3681,7 @@ setreg({regname}, {value} [,{options}])
 
 <		This example shows using the functions to save and restore a
 		register. >
-			:let var_a = getreg('a')
+			:let var_a = getreg('a', 1)
 			:let var_amode = getregtype('a')
 			    ....
 			:call setreg('a', var_a, var_amode)
@@ -3712,6 +3724,7 @@ sort({list} [, {func}])					*sort()* *E7
 			:let sortedlist = sort(copy(mylist))
 <		Uses the string representation of each item to sort on.
 		Numbers sort after Strings, Lists after Numbers.
+		For sorting text in the current buffer use |:sort|.
 		When {func} is given and it is one then case is ignored.
 		When {func} is a Funcref or a function name, this function is
 		called to compare items.  The function is invoked with two
@@ -3723,21 +3736,23 @@ sort({list} [, {func}])					*sort()* *E7
 			endfunc
 			let sortedlist = sort(mylist, "MyCompare")
 
-split({expr} [, {pattern}])				*split()*
-		Make a List out of {expr}.  When {pattern} is omitted each
-		white-separated sequence of characters becomes an item.
+split({expr} [, {pattern} [, {keepempty}]])			*split()*
+		Make a List out of {expr}.  When {pattern} is omitted or empty
+		each white-separated sequence of characters becomes an item.
 		Otherwise the string is split where {pattern} matches,
-		removing the matched characters.  Empty strings are omitted.
+		removing the matched characters.
+		When the first or last item is empty it is omitted, unless the
+		{keepempty} argument is given and it's non-zero.
 		Example: >
 			:let words = split(getline('.'), '\W\+')
-<		Since empty strings are not added the "\+" isn't required but
-		it makes the function work a bit faster.
-		To split a string in individual characters: >
+<		To split a string in individual characters: >
 			:for c in split(mystring, '\zs')
 <		If you want to keep the separator you can also use '\zs': >
 			:echo split('abc:def:ghi', ':\zs')
 <			['abc:', 'def:', 'ghi'] ~
-		The opposite function is |join()|.
+		Splitting a table where the first element can be empty: >
+			:let items = split(line, ':', 1)
+<		The opposite function is |join()|.
 
 
 strftime({format} [, {time}])				*strftime()*
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2397,6 +2397,8 @@ 90.5	usr_90.txt	/*90.5*
 :sno	change.txt	/*:sno*
 :snomagic	change.txt	/*:snomagic*
 :so	repeat.txt	/*:so*
+:sor	change.txt	/*:sor*
+:sort	change.txt	/*:sort*
 :source	repeat.txt	/*:source*
 :source_crnl	repeat.txt	/*:source_crnl*
 :sp	windows.txt	/*:sp*
@@ -5117,6 +5119,7 @@ hebrew	hebrew.txt	/*hebrew*
 hebrew.txt	hebrew.txt	/*hebrew.txt*
 help	various.txt	/*help*
 help-context	help.txt	/*help-context*
+help-tags	tags	1
 help-translated	various.txt	/*help-translated*
 help-xterm-window	various.txt	/*help-xterm-window*
 help.txt	help.txt	/*help.txt*
@@ -5639,6 +5642,7 @@ mzscheme	if_mzsch.txt	/*mzscheme*
 mzscheme-buffer	if_mzsch.txt	/*mzscheme-buffer*
 mzscheme-commands	if_mzsch.txt	/*mzscheme-commands*
 mzscheme-examples	if_mzsch.txt	/*mzscheme-examples*
+mzscheme-sandbox	if_mzsch.txt	/*mzscheme-sandbox*
 mzscheme-threads	if_mzsch.txt	/*mzscheme-threads*
 mzscheme-vim	if_mzsch.txt	/*mzscheme-vim*
 mzscheme-vimext	if_mzsch.txt	/*mzscheme-vimext*
@@ -6225,6 +6229,7 @@ sniff-commands	if_sniff.txt	/*sniff-comm
 sniff-compiling	if_sniff.txt	/*sniff-compiling*
 sniff-intro	if_sniff.txt	/*sniff-intro*
 sort()	eval.txt	/*sort()*
+sorting	change.txt	/*sorting*
 space	intro.txt	/*space*
 spec-customizing	pi_spec.txt	/*spec-customizing*
 spec-how-to-use-it	pi_spec.txt	/*spec-how-to-use-it*
--- a/src/Makefile
+++ b/src/Makefile
@@ -1701,7 +1701,7 @@ testclean:
 #
 install: $(GUI_INSTALL)
 
-install_normal: installvim installtools install-languages install-icons
+install_normal: installvim installtools $(INSTALL_LANGS) install-icons
 
 installvim: installvimbin installruntime installlinks installmanlinks installmacros installtutor installspell
 
@@ -1827,7 +1827,8 @@ installspell: $(DEST_VIM) $(DEST_RT) $(D
 
 # install helper program xxd
 installtools: $(TOOLS) $(DESTDIR)$(exec_prefix) $(DEST_BIN) \
-		$(TOOLSSOURCE) $(DEST_VIM) $(DEST_RT) $(DEST_TOOLS)
+		$(TOOLSSOURCE) $(DEST_VIM) $(DEST_RT) $(DEST_TOOLS) \
+		$(INSTALL_TOOL_LANGS)
 	if test -f $(DEST_BIN)/xxd$(EXEEXT); then \
 	  mv -f $(DEST_BIN)/xxd$(EXEEXT) $(DEST_BIN)/xxd.rm; \
 	  rm -f $(DEST_BIN)/xxd.rm; \
@@ -1836,14 +1837,7 @@ installtools: $(TOOLS) $(DESTDIR)$(exec_
 	$(STRIP) $(DEST_BIN)/xxd$(EXEEXT)
 	chmod $(BINMOD) $(DEST_BIN)/xxd$(EXEEXT)
 	-$(SHELL) ./installman.sh xxd $(DEST_MAN) "" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
-	-$(SHELL) ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
+
 # install the runtime tools
 	$(INSTALL_DATA_R) $(TOOLSSOURCE)/* $(DEST_TOOLS)
 # When using CVS some CVS directories might have been copied.
@@ -1859,6 +1853,17 @@ installtools: $(TOOLS) $(DESTDIR)$(exec_
 		awkpath=`./which.sh awk` && sed -e "s+/usr/bin/nawk+$$awkpath+" $(TOOLSSOURCE)/mve.awk >$(DEST_TOOLS)/mve.awk; fi; fi
 	-chmod $(SCRIPTMOD) `grep -l "^#!" $(DEST_TOOLS)/*`
 
+# install the language specific files for tools, if they were unpacked
+install-tool-languages:
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
+	-$(SHELL) ./installman.sh xxd $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
+
 # install the language specific files, if they were unpacked
 install-languages: languages $(DEST_LANG) $(DEST_KMAP)
 	-$(SHELL) ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -309,7 +309,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AWK STRIP CPP_MM OS_EXTRA_SRC OS_EXTRA_OBJ VIMNAME EXNAME VIEWNAME line_break dovimdiff dogvimdiff compiledby vi_cv_path_mzscheme MZSCHEME_SRC MZSCHEME_OBJ MZSCHEME_PRO MZSCHEME_LIBS MZSCHEME_CFLAGS vi_cv_path_perl vi_cv_perllib shrpenv PERL_SRC PERL_OBJ PERL_PRO PERL_CFLAGS PERL_LIBS vi_cv_path_python PYTHON_CONFDIR PYTHON_LIBS PYTHON_GETPATH_CFLAGS PYTHON_CFLAGS PYTHON_SRC PYTHON_OBJ vi_cv_path_tcl TCL_SRC TCL_OBJ TCL_PRO TCL_CFLAGS TCL_LIBS vi_cv_path_ruby RUBY_SRC RUBY_OBJ RUBY_PRO RUBY_CFLAGS RUBY_LIBS WORKSHOP_SRC WORKSHOP_OBJ NETBEANS_SRC NETBEANS_OBJ SNIFF_SRC SNIFF_OBJ xmkmfpath X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS X_LIB MOC KDE_CONFIG KDE_LIBS KDE_INCLUDES KDE_PREFIX CXX CXXFLAGS ac_ct_CXX QT_LIBS QT_INCLUDES ROOTQT GTK_CONFIG GTK12_CONFIG PKG_CONFIG GTK_CFLAGS GTK_LIBS GTK_LIBNAME GNOME_LIBS GNOME_LIBDIR GNOME_INCLUDEDIR GNOME_CONFIG MOTIF_LIBNAME NARROW_PROTO GUI_INC_LOC GUI_LIB_LOC GUITYPE GUI_X_LIBS HANGULIN_SRC HANGULIN_OBJ TAGPRG MSGFMT MAKEMO LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP AWK STRIP CPP_MM OS_EXTRA_SRC OS_EXTRA_OBJ VIMNAME EXNAME VIEWNAME line_break dovimdiff dogvimdiff compiledby vi_cv_path_mzscheme MZSCHEME_SRC MZSCHEME_OBJ MZSCHEME_PRO MZSCHEME_LIBS MZSCHEME_CFLAGS vi_cv_path_perl vi_cv_perllib shrpenv PERL_SRC PERL_OBJ PERL_PRO PERL_CFLAGS PERL_LIBS vi_cv_path_python PYTHON_CONFDIR PYTHON_LIBS PYTHON_GETPATH_CFLAGS PYTHON_CFLAGS PYTHON_SRC PYTHON_OBJ vi_cv_path_tcl TCL_SRC TCL_OBJ TCL_PRO TCL_CFLAGS TCL_LIBS vi_cv_path_ruby RUBY_SRC RUBY_OBJ RUBY_PRO RUBY_CFLAGS RUBY_LIBS WORKSHOP_SRC WORKSHOP_OBJ NETBEANS_SRC NETBEANS_OBJ SNIFF_SRC SNIFF_OBJ xmkmfpath X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS X_LIB MOC KDE_CONFIG KDE_LIBS KDE_INCLUDES KDE_PREFIX CXX CXXFLAGS ac_ct_CXX QT_LIBS QT_INCLUDES ROOTQT GTK_CONFIG GTK12_CONFIG PKG_CONFIG GTK_CFLAGS GTK_LIBS GTK_LIBNAME GNOME_LIBS GNOME_LIBDIR GNOME_INCLUDEDIR GNOME_CONFIG MOTIF_LIBNAME NARROW_PROTO GUI_INC_LOC GUI_LIB_LOC GUITYPE GUI_X_LIBS HANGULIN_SRC HANGULIN_OBJ TAGPRG INSTALL_LANGS INSTALL_TOOL_LANGS MSGFMT MAKEMO LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -868,7 +868,7 @@ Optional Features:
   --enable-hangulinput    Include Hangul input support.
   --enable-xim            Include XIM input support.
   --enable-fontset        Include X fontset output support.
-  --enable-gui=OPTS     X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/kde/motif/athena/neXtaw/beos/photon/carbon
+  --enable-gui=OPTS     X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/kde/motif/athena/neXtaw/photon/carbon
   --enable-kde-check      If auto-select GUI, check for KDE default=no
   --enable-gtk-check      If auto-select GUI, check for GTK default=yes
   --enable-gtk2-check     If GTK GUI, check for GTK+ 2 default=yes
@@ -6900,7 +6900,7 @@ rm -f conftest.err conftest.$ac_objext c
   fi
 fi
 
-test "x$with_x" = xno -a "x$BEOS" != "xyes" -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
+test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
 
 echo "$as_me:$LINENO: checking --enable-gui argument" >&5
 echo $ECHO_N "checking --enable-gui argument... $ECHO_C" >&6
@@ -13373,12 +13373,11 @@ fi
 
 
 
-
 for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
 	getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
 	memset nanosleep opendir putenv qsort readlink select setenv \
 	setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
-	sigvec snprintf strcasecmp strerror strftime stricmp strncasecmp \
+	sigvec strcasecmp strerror strftime stricmp strncasecmp \
 	strnicmp strpbrk strtol tgetent towlower towupper iswupper \
 	usleep utime utimes
 do
@@ -14251,67 +14250,6 @@ else
 echo "${ECHO_T}yes" >&6
 fi
 
-echo "$as_me:$LINENO: checking for vsnprintf()" >&5
-echo $ECHO_N "checking for vsnprintf()... $ECHO_C" >&6
-if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: failed to compile test program" >&5
-echo "$as_me: error: failed to compile test program" >&2;}
-   { (exit 1); exit 1; }; }
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stdio.h>
-#include <stdarg.h>
-	/* Check use of vsnprintf() */
-	void warn(char *fmt, ...);
-	void warn(char *fmt, ...)
-	{
-	  va_list ap; char buf[20];
-	  va_start(ap, fmt);
-	  vsnprintf(buf, 20, fmt, ap);
-	  va_end(ap);
-	}
-	main()
-	{
-	warn("testing %s\n", "a very long string that won't fit");
-	exit(0);
-	}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_VSNPRINTF 1
-_ACEOF
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
 echo "$as_me:$LINENO: checking for rename" >&5
 echo $ECHO_N "checking for rename... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
@@ -14963,6 +14901,12 @@ fi;
 if test "$enable_nls" = "yes"; then
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
+
+  INSTALL_LANGS=install-languages
+
+  INSTALL_TOOL_LANGS=install-tool-languages
+
+
   # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
@@ -16814,6 +16758,8 @@ s,@GUI_X_LIBS@,$GUI_X_LIBS,;t t
 s,@HANGULIN_SRC@,$HANGULIN_SRC,;t t
 s,@HANGULIN_OBJ@,$HANGULIN_OBJ,;t t
 s,@TAGPRG@,$TAGPRG,;t t
+s,@INSTALL_LANGS@,$INSTALL_LANGS,;t t
+s,@INSTALL_TOOL_LANGS@,$INSTALL_TOOL_LANGS,;t t
 s,@MSGFMT@,$MSGFMT,;t t
 s,@MAKEMO@,$MAKEMO,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
--- a/src/configure.in
+++ b/src/configure.in
@@ -2406,7 +2406,7 @@ fi
 
 if test "x$olibs" = "x$LIBS"; then
   AC_MSG_CHECKING([for tgetent()])
-  AC_TRY_LINK([], 
+  AC_TRY_LINK([],
       [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
 	AC_MSG_RESULT(yes),
 	AC_MSG_ERROR([NOT FOUND!
@@ -2932,6 +2932,12 @@ AC_ARG_ENABLE(nls,
 
 if test "$enable_nls" = "yes"; then
   AC_MSG_RESULT(no)
+
+  INSTALL_LANGS=install-languages
+  AC_SUBST(INSTALL_LANGS)
+  INSTALL_TOOL_LANGS=install-tool-languages
+  AC_SUBST(INSTALL_TOOL_LANGS)
+
   AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
   AC_MSG_CHECKING([for NLS])
   if test -f po/Makefile; then
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2381,7 +2381,7 @@ ex_vimgrep(eap)
     p = skip_vimgrep_pat(eap->arg, &s, &flags);
     if (p == NULL)
     {
-	EMSG(_("E682: Invalid search pattern or delimiter"));
+	EMSG(_(e_invalpat));
 	goto theend;
     }
     regmatch.regprog = vim_regcomp(s, RE_MAGIC);
--- a/src/testdir/test55.ok
+++ b/src/testdir/test55.ok
@@ -76,3 +76,10 @@ caught a:000[3]
 ['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 2, 4, [0, 1, 2]]
 [[0, 1, 2], 4, 2, 'xaaa', 'x8', 'foo6', 'foo', 'A11', '-0']
 ['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 2, 4, [0, 1, 2]]
+['aa', 'bb']
+['aa', 'bb']
+['', 'aa', 'bb', '']
+['', '', 'aa', '', 'bb', '', '']
+['aa', '', 'bb']
+['', 'aa', '', 'bb', '']
+['aa', '', 'bb', 'cc', '']
--- 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 May 20)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 May 20, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 May 22)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 May 22, compiled "