# HG changeset patch # User vimboss # Date 1135291622 0 # Node ID 7fe13e0f5dce15cd16dd61c898e63899a9aff561 # Parent 0b1b7560c456a32ad921e3985b90008ef1f82a91 updated for version 7.0175 diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim --- 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 diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- 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 diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- 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. diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt --- 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: diff --git a/runtime/spell/fo/main.aap b/runtime/spell/fo/main.aap --- 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 diff --git a/runtime/spell/gd/main.aap b/runtime/spell/gd/main.aap --- 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 diff --git a/runtime/spell/gl/main.aap b/runtime/spell/gl/main.aap --- 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 diff --git a/runtime/spell/tl/main.aap b/runtime/spell/tl/main.aap --- 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 diff --git a/src/configure b/src/configure --- 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 diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -5113,7 +5113,8 @@ stop_insert(end_insert_pos, esc) * otherwise CTRL-O w and then 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; diff --git a/src/eval.c b/src/eval.c --- 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 */ diff --git a/src/fileio.c b/src/fileio.c --- 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; diff --git a/src/gui_w32.c b/src/gui_w32.c --- 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; diff --git a/src/message.c b/src/message.c --- 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); diff --git a/src/proto/fileio.pro b/src/proto/fileio.pro --- 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)); diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak --- 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 diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak --- 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 diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak --- 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 diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms --- 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 diff --git a/src/testdir/Makefile b/src/testdir/Makefile --- 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 diff --git a/src/testdir/test60.in b/src/testdir/test60.in 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 + diff --git a/src/testdir/test60.ok b/src/testdir/test60.ok 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 diff --git a/src/version.c b/src/version.c --- 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 */ diff --git a/src/version.h b/src/version.h --- 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 "