changeset 615:7fe13e0f5dce v7.0175

updated for version 7.0175
author vimboss
date Thu, 22 Dec 2005 22:47:02 +0000
parents 0b1b7560c456
children 59cf24598e9c
files runtime/autoload/netrw.vim runtime/doc/eval.txt runtime/doc/todo.txt runtime/doc/version7.txt runtime/spell/fo/main.aap runtime/spell/gd/main.aap runtime/spell/gl/main.aap runtime/spell/tl/main.aap src/configure src/edit.c src/eval.c src/fileio.c src/gui_w32.c src/message.c src/proto/fileio.pro src/testdir/Make_amiga.mak src/testdir/Make_dos.mak src/testdir/Make_os2.mak src/testdir/Make_vms.mms src/testdir/Makefile src/testdir/test60.in src/testdir/test60.ok src/version.c src/version.h
diffstat 24 files changed, 149 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1777,7 +1777,7 @@ fun! s:NetBrowseX(fname,remote)
 
   " set up redirection
   if &srr =~ "%s"
-   let redir= substitute(&srr,"%s","/dev/null"."")
+   let redir= substitute(&srr,"%s","/dev/null","")
   else
    let redir= &srr . "/dev/null"
   endif
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2206,6 +2206,8 @@ exists({expr})	The result is a Number, w
 			#group#event#pattern
 					autocommand defined for this group, 
 					event and pattern.
+			##event		autocommand for this event is
+					supported.
 		For checking for a supported feature use |has()|.
 
 		Examples: >
@@ -2220,6 +2222,7 @@ exists({expr})	The result is a Number, w
 			exists("#filetypeindent")
 			exists("#filetypeindent#FileType")
 			exists("#filetypeindent#FileType#*")
+			exists("##ColorScheme")
 <		There must be no space between the symbol (&/$/*/#) and the
 		name.
 		Note that the argument must be a string, not the name of the
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Dec 19
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Dec 22
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,6 +30,13 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+ln -s b a
+vim a
+[insert some text]
+:w
+:sp b
+[there are now two buffers for the same file and two swapfiles]
+
 ccomplete:
 - When an option is set: In completion mode and the user types (identifier)
   characters, advance to the first match instead of removing the popup menu.
@@ -93,6 +100,9 @@ Also add search???() function that retur
 Win32: Use the free downloadable compiler 7.1.  Figure out how to do debugging
 (with Agide?) and describe it. (George Reilly)
 Try out using the free MS compiler and debugger, using Make_mvc.mak.
+Try using Visual C++ Express 2005. (Ilya Bobir Dec 20)
+    Disadvantage: Annoying warning messages, requires ..._NO_DEPRECATE, this
+    is not a standard compiler.
 
 Win32: Check that installer puts menu items in "all users" dir when possible,
 not administrator dir.
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Dec 19
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Dec 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -916,8 +916,8 @@ then a cursor key.  Now keep the previou
 inserted after the CTRL-O.  Allows using CTRL-O commands to move the cursor
 without losing the last inserted text.
 
-The exists() function now supports checking for autocmd group definition.
-(Yegappan Lakshmanan)
+The exists() function now supports checking for autocmd group definition
+and for supported autocommands. (Yegappan Lakshmanan)
 
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
@@ -1509,4 +1509,7 @@ When recording while a CursorHold autoco
 appear in the register.  Now the CursorHold event is not triggered while
 recording.
 
+Unix: the src/configure script used ${srcdir-.}, not all shells understand
+that.  Use ${srcdir:-.} instead.
+
  vim:tw=78:ts=8:ft=help:norl:
--- a/runtime/spell/fo/main.aap
+++ b/runtime/spell/fo/main.aap
@@ -16,8 +16,7 @@ all: $SPELLDIR/fo.latin1.spl $SPELLDIR/f
 		$VIM -u NONE -e -c "mkspell! $SPELLDIR/fo fo_FO" -c q
 
 $SPELLDIR/fo.utf-8.spl : $FILES
-        :sys env LANG=fo_FO.UTF-8
-		$VIM -u NONE -e -c "mkspell! $SPELLDIR/fo fo_FO" -c q
+        :sys $VIM -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/fo fo_FO" -c q
 
 ../README_fo.txt : README_fo_FO.txt Copyright
         :cat $source >! $target
--- a/runtime/spell/gd/main.aap
+++ b/runtime/spell/gd/main.aap
@@ -16,8 +16,7 @@ all: $SPELLDIR/gd.latin1.spl $SPELLDIR/g
 		$VIM -u NONE -e -c "mkspell! $SPELLDIR/gd gd_GB" -c q
 
 $SPELLDIR/gd.utf-8.spl : $FILES
-        :sys env LANG=gd_GB.UTF-8
-		$VIM -u NONE -e -c "mkspell! $SPELLDIR/gd gd_GB" -c q
+        :sys $VIM -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/gd gd_GB" -c q
 
 ../README_gd.txt : README_gd_GB.txt
         :copy $source $target
--- a/runtime/spell/gl/main.aap
+++ b/runtime/spell/gl/main.aap
@@ -12,11 +12,11 @@ FILES    = gl_ES.aff gl_ES.dic
 all: $SPELLDIR/gl.latin1.spl $SPELLDIR/gl.utf-8.spl ../README_gl.txt
 
 $SPELLDIR/gl.latin1.spl : $FILES
-        :sys env LANG=gl_ES.ISO8859-1
+        :sys env LANG=es_ES.ISO8859-1
 		$VIM -u NONE -e -c "mkspell! $SPELLDIR/gl gl_ES" -c q
 
 $SPELLDIR/gl.utf-8.spl : $FILES
-        :sys env LANG=gl_ES.UTF-8
+        :sys env LANG=es_ES.UTF-8
 		$VIM -u NONE -e -c "mkspell! $SPELLDIR/gl gl_ES" -c q
 
 ../README_gl.txt : README_gl_ES.txt
--- a/runtime/spell/tl/main.aap
+++ b/runtime/spell/tl/main.aap
@@ -16,8 +16,7 @@ all: $SPELLDIR/tl.latin1.spl $SPELLDIR/t
 		$VIM -u NONE -e -c "mkspell! $SPELLDIR/tl tl_PH" -c q
 
 $SPELLDIR/tl.utf-8.spl : $FILES
-        :sys env LANG=tl_PH.UTF-8
-		$VIM -u NONE -e -c "mkspell! $SPELLDIR/tl tl_PH" -c q
+        :sys $VIM -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/tl tl_PH" -c q
 
 ../README_tl.txt : README_tl_PH.txt
         :copy $source $target
--- a/src/configure
+++ b/src/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # run the automatically generated configure script
 CONFIG_STATUS=auto/config.status \
-	auto/configure "$@" --srcdir="${srcdir-.}" --cache-file=auto/config.cache
+	auto/configure "$@" --srcdir="${srcdir:-.}" --cache-file=auto/config.cache
 # Stupid autoconf 2.5x causes this file to be left behind.
 if test -f configure.lineno; then rm -f configure.lineno; fi
--- a/src/edit.c
+++ b/src/edit.c
@@ -5113,7 +5113,8 @@ stop_insert(end_insert_pos, esc)
      * otherwise CTRL-O w and then <Left> will clear "last_insert".
      */
     ptr = get_inserted();
-    if (did_restart_edit == 0 || (ptr != NULL && STRLEN(ptr) > new_insert_skip))
+    if (did_restart_edit == 0 || (ptr != NULL
+				       && (int)STRLEN(ptr) > new_insert_skip))
     {
 	vim_free(last_insert);
 	last_insert = ptr;
--- a/src/eval.c
+++ b/src/eval.c
@@ -8459,7 +8459,10 @@ f_exists(argvars, rettv)
     else if (*p == '#')
     {
 #ifdef FEAT_AUTOCMD
-	n = au_exists(p + 1);
+	if (p[1] == '#')
+	    n = autocmd_supported(p + 2);
+	else
+	    n = au_exists(p + 1);
 #endif
     }
     else				/* internal variable */
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -8827,6 +8827,18 @@ get_event_name(xp, idx)
 #endif	/* FEAT_CMDL_COMPL */
 
 /*
+ * Return TRUE if autocmd is supported.
+ */
+    int
+autocmd_supported(name)
+    char_u	*name;
+{
+    char_u *p;
+
+    return (event_name2nr(name, &p) != NUM_EVENTS);
+}
+
+/*
  * Return TRUE if an autocommand is defined for a group, event and
  * pattern:  The group can be omitted to accept any group. "event" and "pattern"
  * can be NULL to accept any event and pattern. "pattern" can be NULL to accept
@@ -8852,11 +8864,11 @@ au_exists(arg)
     int		group;
     int		retval = FALSE;
 
-    /* Make a copy so that we can change the '#' to a NUL. */
+    /* Make a copy so that we can change the '#' chars to a NUL. */
     arg_save = vim_strsave(arg);
     if (arg_save == NULL)
 	return FALSE;
-    p = vim_strchr(arg, '#');
+    p = vim_strchr(arg_save, '#');
     if (p != NULL)
 	*p++ = NUL;
 
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -2522,8 +2522,7 @@ gui_mch_menu_grey(
 
 #define add_string(s) strcpy((LPSTR)p, s); (LPSTR)p += (strlen((LPSTR)p) + 1)
 #define add_word(x)		*p++ = (x)
-#define add_byte(x)		*((LPSTR)p)++ = (x)
-#define add_long(x)		*((LPDWORD)p)++ = (x)
+#define add_long(x)		dwp = (DWORD *)p; *dwp++ = (x); p = (WORD *)dwp
 
 #if defined(FEAT_GUI_DIALOG) || defined(PROTO)
 /*
@@ -2650,6 +2649,7 @@ gui_mch_dialog(
     char_u	*textfield)
 {
     WORD	*p, *pdlgtemplate, *pnumitems;
+    DWORD	*dwp;
     int		numButtons;
     int		*buttonWidths, *buttonPositions;
     int		buttonYpos;
--- a/src/message.c
+++ b/src/message.c
@@ -722,6 +722,10 @@ msg_may_trunc(force, s)
 	{
 	    int	size = vim_strsize(s);
 
+	    /* There may be room anyway when there are multibyte chars. */
+	    if (size <= room)
+		return s;
+
 	    for (n = 0; size >= room; )
 	    {
 		size -= (*mb_ptr2cells)(s + n);
--- a/src/proto/fileio.pro
+++ b/src/proto/fileio.pro
@@ -41,6 +41,7 @@ int has_autocmd __ARGS((EVENT_T event, c
 char_u *get_augroup_name __ARGS((expand_T *xp, int idx));
 char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd));
 char_u *get_event_name __ARGS((expand_T *xp, int idx));
+int autocmd_supported __ARGS((char_u *name));
 int au_exists __ARGS((char_u *arg));
 int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
 int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -24,7 +24,7 @@ SCRIPTS = test1.out test3.out test4.out 
 		test38.out test39.out test40.out test41.out test42.out \
 		test43.out test44.out test45.out test46.out test47.out \
 		test48.out test51.out test53.out test54.out test55.out \
-		test56.out test57.out test58.out test59.out
+		test56.out test57.out test58.out test59.out test60.out
 
 .SUFFIXES: .in .out
 
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -25,7 +25,7 @@ SCRIPTS =	test3.out test4.out test5.out 
 		test15.out test17.out test18.out test21.out test26.out \
 		test30.out test31.out test32.out test33.out test34.out \
 		test37.out test38.out test39.out test40.out test41.out \
-		test42.out test52.out
+		test42.out test52.out test60.out
 
 SCRIPTS32 =	test50.out
 
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -24,7 +24,7 @@ SCRIPTS = test1.out test3.out test4.out 
 		test38.out test39.out test40.out test41.out test42.out \
 		test43.out test44.out test45.out test46.out test47.out \
 		test48.out test51.out test53.out test54.out test55.out \
-		test56.out test57.out test58.out test59.out
+		test56.out test57.out test58.out test59.out test60.out
 
 .SUFFIXES: .in .out
 
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -58,7 +58,7 @@ SCRIPT = test1.out  test2.out  test3.out
 	 test38.out test39.out test40.out test41.out test42.out \
 	 test43.out test44.out test45.out test46.out \
 	 test48.out test51.out test53.out test54.out test55.out \
-	 test56.out test57.out test58.out test59.out
+	 test56.out test57.out test58.out test59.out test60.out
 
 .IFDEF WANT_GUI
 SCRIPT_GUI = test16.out
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -15,7 +15,7 @@ SCRIPTS = test1.out test2.out test3.out 
 		test43.out test44.out test45.out test46.out test47.out \
 		test48.out test49.out test51.out test52.out test53.out \
 		test54.out test55.out test56.out test57.out test58.out \
-		test59.out
+		test59.out test60.out
 
 SCRIPTS_GUI = test16.out
 
new file mode 100644
--- /dev/null
+++ b/src/testdir/test60.in
@@ -0,0 +1,71 @@
+Tests for the exists() function.  vim: set ft=vim :
+
+STARTTEST
+:so small.vim
+:function! RunTest(str, result)
+    if exists(a:str) == a:result
+	echo "OK"
+    else
+	echo "FAILED: Checking for " . a:str
+    endif
+endfunction
+:function! TestExists()
+    augroup myagroup
+	autocmd! BufEnter *.my echo 'myfile edited'
+    augroup END
+    redir! > test.out
+
+    " valid autocmd group
+    call RunTest('#myagroup', 1)
+
+    " Valid autocmd group and event
+    call RunTest('#myagroup#BufEnter', 1)
+
+    " Valid autocmd group, event and pattern
+    call RunTest('#myagroup#BufEnter#*.my', 1)
+
+    " Valid autocmd event
+    call RunTest('#BufEnter', 1)
+
+    " Valid autocmd event and pattern
+    call RunTest('#BufEnter#*.my', 1)
+
+    " Non-existing autocmd group or event
+    call RunTest('#xyzagroup', 0)
+
+    " Non-existing autocmd group and valid autocmd event
+    call RunTest('#xyzagroup#BufEnter', 0)
+
+    " Valid autocmd group and autocmd event with no matching pattern
+    call RunTest('#myagroup#CmdwinEnter', 0)
+
+    " Valid autocmd group and non-existing autocmd event
+    call RunTest('#myagroup#xyzacmd', 0)
+
+    " Valid autocmd group and event and non-matching pattern
+    call RunTest('#myagroup#BufEnter#xyzpat', 0)
+
+    " Valid autocmd event and non-matching pattern
+    call RunTest('#BufEnter#xyzpat', 0)
+
+    " Empty autocmd group, event and pattern
+    call RunTest('###', 0)
+
+    " Empty autocmd group and event or event and pattern
+    call RunTest('##', 0)
+
+    " Testing support for event name that exists.
+    call RunTest('##SwapExists', 1)
+
+    " Testing support for event name that doesn't exist.
+    call RunTest('##SwapNotExists', 0)
+
+    redir END
+endfunction
+:call TestExists()
+:edit! test.out
+:set ff=unix
+:w
+:qa!
+ENDTEST
+
new file mode 100644
--- /dev/null
+++ b/src/testdir/test60.ok
@@ -0,0 +1,16 @@
+
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
--- a/src/version.c
+++ b/src/version.c
@@ -1082,7 +1082,7 @@ intro_message(colon)
 
     /* Show the sponsor and register message one out of four times, the Uganda
      * message two out of four times. */
-    sponsor = time(NULL);
+    sponsor = (int)time(NULL);
     sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0);
 
     /* start displaying the message lines after half of the blank lines */
--- 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 Dec 19)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 19, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 22)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 22, compiled "