From 658407063c941843440656a84fffdfd6619125bf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Dec 01 2008 14:16:25 +0000 Subject: - patchlevel 051 --- diff --git a/7.2.051 b/7.2.051 new file mode 100644 index 0000000..7c36dfe --- /dev/null +++ b/7.2.051 @@ -0,0 +1,411 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.051 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.051 +Problem: Can't avoid 'wildignore' and 'suffixes' for glob() and globpath(). +Solution: Add an extra argument to these functions. (Ingo Karkat) +Files: src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro, + runtime/doc/eval.txt, runtime/doc/options.txt + + +*** ../vim-7.2.050/src/eval.c Thu Nov 20 16:11:03 2008 +--- src/eval.c Thu Nov 27 22:15:40 2008 +*************** +*** 7564,7571 **** + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 2, f_getwinvar}, +! {"glob", 1, 1, f_glob}, +! {"globpath", 2, 2, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, + {"haslocaldir", 0, 0, f_haslocaldir}, +--- 7564,7571 ---- + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 2, f_getwinvar}, +! {"glob", 1, 2, f_glob}, +! {"globpath", 2, 3, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, + {"haslocaldir", 0, 0, f_haslocaldir}, +*************** +*** 9557,9563 **** + else + { + /* When the optional second argument is non-zero, don't remove matches +! * for 'suffixes' and 'wildignore' */ + if (argvars[1].v_type != VAR_UNKNOWN + && get_tv_number_chk(&argvars[1], &error)) + flags |= WILD_KEEP_ALL; +--- 9557,9563 ---- + else + { + /* When the optional second argument is non-zero, don't remove matches +! * for 'wildignore' and don't put matches for 'suffixes' at the end. */ + if (argvars[1].v_type != VAR_UNKNOWN + && get_tv_number_chk(&argvars[1], &error)) + flags |= WILD_KEEP_ALL; +*************** +*** 11323,11335 **** + typval_T *argvars; + typval_T *rettv; + { + expand_T xpc; + +! ExpandInit(&xpc); +! xpc.xp_context = EXPAND_FILES; +! rettv->v_type = VAR_STRING; +! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), +! NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL); + } + + /* +--- 11323,11347 ---- + typval_T *argvars; + typval_T *rettv; + { ++ int flags = WILD_SILENT|WILD_USE_NL; + expand_T xpc; ++ int error = FALSE; + +! /* When the optional second argument is non-zero, don't remove matches +! * for 'wildignore' and don't put matches for 'suffixes' at the end. */ +! if (argvars[1].v_type != VAR_UNKNOWN +! && get_tv_number_chk(&argvars[1], &error)) +! flags |= WILD_KEEP_ALL; +! rettv->v_type = VAR_STRING; +! if (!error) +! { +! ExpandInit(&xpc); +! xpc.xp_context = EXPAND_FILES; +! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]), +! NULL, flags, WILD_ALL); +! } +! else +! rettv->vval.v_string = NULL; + } + + /* +*************** +*** 11340,11353 **** + typval_T *argvars; + typval_T *rettv; + { + char_u buf1[NUMBUFLEN]; + char_u *file = get_tv_string_buf_chk(&argvars[1], buf1); + + rettv->v_type = VAR_STRING; +! if (file == NULL) + rettv->vval.v_string = NULL; + else +! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file); + } + + /* +--- 11352,11373 ---- + typval_T *argvars; + typval_T *rettv; + { ++ int flags = 0; + char_u buf1[NUMBUFLEN]; + char_u *file = get_tv_string_buf_chk(&argvars[1], buf1); ++ int error = FALSE; + ++ /* When the optional second argument is non-zero, don't remove matches ++ * for 'wildignore' and don't put matches for 'suffixes' at the end. */ ++ if (argvars[2].v_type != VAR_UNKNOWN ++ && get_tv_number_chk(&argvars[2], &error)) ++ flags |= WILD_KEEP_ALL; + rettv->v_type = VAR_STRING; +! if (file == NULL || error) + rettv->vval.v_string = NULL; + else +! rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file, +! flags); + } + + /* +*** ../vim-7.2.050/src/ex_getln.c Sat Nov 15 14:10:23 2008 +--- src/ex_getln.c Thu Nov 20 18:37:20 2008 +*************** +*** 2524,2530 **** + && ccline.xpc->xp_context != EXPAND_NOTHING + && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) + { +! int i = ccline.xpc->xp_pattern - p; + + /* If xp_pattern points inside the old cmdbuff it needs to be adjusted + * to point into the newly allocated memory. */ +--- 2524,2530 ---- + && ccline.xpc->xp_context != EXPAND_NOTHING + && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL) + { +! int i = (int)(ccline.xpc->xp_pattern - p); + + /* If xp_pattern points inside the old cmdbuff it needs to be adjusted + * to point into the newly allocated memory. */ +*************** +*** 4897,4903 **** + if (s == NULL) + return FAIL; + sprintf((char *)s, "%s/%s*.vim", dirname, pat); +! all = globpath(p_rtp, s); + vim_free(s); + if (all == NULL) + return FAIL; +--- 4897,4903 ---- + if (s == NULL) + return FAIL; + sprintf((char *)s, "%s/%s*.vim", dirname, pat); +! all = globpath(p_rtp, s, 0); + vim_free(s); + if (all == NULL) + return FAIL; +*************** +*** 4938,4946 **** + * newlines. Returns NULL for an error or no matches. + */ + char_u * +! globpath(path, file) + char_u *path; + char_u *file; + { + expand_T xpc; + char_u *buf; +--- 4938,4947 ---- + * newlines. Returns NULL for an error or no matches. + */ + char_u * +! globpath(path, file, expand_options) + char_u *path; + char_u *file; ++ int expand_options; + { + expand_T xpc; + char_u *buf; +*************** +*** 4969,4978 **** + { + add_pathsep(buf); + STRCAT(buf, file); +! if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL +! && num_p > 0) + { +! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT); + for (len = 0, i = 0; i < num_p; ++i) + len += (int)STRLEN(p[i]) + 1; + +--- 4970,4979 ---- + { + add_pathsep(buf); + STRCAT(buf, file); +! if (ExpandFromContext(&xpc, buf, &num_p, &p, +! WILD_SILENT|expand_options) != FAIL && num_p > 0) + { +! ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT|expand_options); + for (len = 0, i = 0; i < num_p; ++i) + len += (int)STRLEN(p[i]) + 1; + +*** ../vim-7.2.050/src/proto/ex_getln.pro Wed May 28 16:49:01 2008 +--- src/proto/ex_getln.pro Thu Nov 20 18:27:57 2008 +*************** +*** 31,37 **** + void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); + int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches)); + int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)))); +! char_u *globpath __ARGS((char_u *path, char_u *file)); + void init_history __ARGS((void)); + int get_histtype __ARGS((char_u *name)); + void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep)); +--- 31,37 ---- + void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col)); + int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches)); + int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)))); +! char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options)); + void init_history __ARGS((void)); + int get_histtype __ARGS((char_u *name)); + void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep)); +*** ../vim-7.2.050/runtime/doc/eval.txt Sun Nov 9 13:43:25 2008 +--- runtime/doc/eval.txt Thu Nov 27 22:17:13 2008 +*************** +*** 1,4 **** +! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 02 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 27 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 1706,1712 **** + exists( {expr}) Number TRUE if {expr} exists + extend({expr1}, {expr2} [, {expr3}]) + List/Dict insert items of {expr2} into {expr1} +! expand( {expr}) String expand special keywords in {expr} + feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer + filereadable( {file}) Number TRUE if {file} is a readable file + filewritable( {file}) Number TRUE if {file} is a writable file +--- 1709,1715 ---- + exists( {expr}) Number TRUE if {expr} exists + extend({expr1}, {expr2} [, {expr3}]) + List/Dict insert items of {expr2} into {expr1} +! expand( {expr} [, {flag}]) String expand special keywords in {expr} + feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer + filereadable( {file}) Number TRUE if {file} is a readable file + filewritable( {file}) Number TRUE if {file} is a writable file +*************** +*** 1758,1765 **** + getwinposx() Number X coord in pixels of GUI Vim window + getwinposy() Number Y coord in pixels of GUI Vim window + getwinvar( {nr}, {varname}) any variable {varname} in window {nr} +! glob( {expr}) String expand file wildcards in {expr} +! globpath( {path}, {expr}) String do glob({expr}) for all dirs in {path} + has( {feature}) Number TRUE if feature {feature} supported + has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} + haslocaldir() Number TRUE if current window executed |:lcd| +--- 1761,1769 ---- + getwinposx() Number X coord in pixels of GUI Vim window + getwinposy() Number Y coord in pixels of GUI Vim window + getwinvar( {nr}, {varname}) any variable {varname} in window {nr} +! glob( {expr} [, {flag}]) String expand file wildcards in {expr} +! globpath( {path}, {expr} [, {flag}]) +! String do glob({expr}) for all dirs in {path} + has( {feature}) Number TRUE if feature {feature} supported + has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} + haslocaldir() Number TRUE if current window executed |:lcd| +*************** +*** 3286,3299 **** + :let list_is_on = getwinvar(2, '&list') + :echo "myvar = " . getwinvar(1, 'myvar') + < +! *glob()* +! glob({expr}) Expand the file wildcards in {expr}. See |wildcards| for the + use of special characters. + The result is a String. + When there are several matches, they are separated by + characters. +! The 'wildignore' option applies: Names matching one of the +! patterns in 'wildignore' will be skipped. + If the expansion fails, the result is an empty string. + A name for a non-existing file is not included. + +--- 3290,3305 ---- + :let list_is_on = getwinvar(2, '&list') + :echo "myvar = " . getwinvar(1, 'myvar') + < +! glob({expr} [, {flag}]) *glob()* +! Expand the file wildcards in {expr}. See |wildcards| for the + use of special characters. + The result is a String. + When there are several matches, they are separated by + characters. +! Unless the optional {flag} argument is given and is non-zero, +! the 'suffixes' and 'wildignore' options apply: Names matching +! one of the patterns in 'wildignore' will be skipped and +! 'suffixes' affect the ordering of matches. + If the expansion fails, the result is an empty string. + A name for a non-existing file is not included. + +*************** +*** 3307,3326 **** + See |expand()| for expanding special Vim variables. See + |system()| for getting the raw output of an external command. + +! globpath({path}, {expr}) *globpath()* + Perform glob() on all directories in {path} and concatenate + the results. Example: > + :echo globpath(&rtp, "syntax/c.vim") + < {path} is a comma-separated list of directory names. Each + directory name is prepended to {expr} and expanded like with +! glob(). A path separator is inserted when needed. + To add a comma inside a directory name escape it with a + backslash. Note that on MS-Windows a directory may have a + trailing backslash, remove it if you put a comma after it. + If the expansion fails for one of the directories, there is no + error message. +! The 'wildignore' option applies: Names matching one of the +! patterns in 'wildignore' will be skipped. + + The "**" item can be used to search in a directory tree. + For example, to find all "README.txt" files in the directories +--- 3313,3334 ---- + See |expand()| for expanding special Vim variables. See + |system()| for getting the raw output of an external command. + +! globpath({path}, {expr} [, {flag}]) *globpath()* + Perform glob() on all directories in {path} and concatenate + the results. Example: > + :echo globpath(&rtp, "syntax/c.vim") + < {path} is a comma-separated list of directory names. Each + directory name is prepended to {expr} and expanded like with +! |glob()|. A path separator is inserted when needed. + To add a comma inside a directory name escape it with a + backslash. Note that on MS-Windows a directory may have a + trailing backslash, remove it if you put a comma after it. + If the expansion fails for one of the directories, there is no + error message. +! Unless the optional {flag} argument is given and is non-zero, +! the 'suffixes' and 'wildignore' options apply: Names matching +! one of the patterns in 'wildignore' will be skipped and +! 'suffixes' affect the ordering of matches. + + The "**" item can be used to search in a directory tree. + For example, to find all "README.txt" files in the directories +*** ../vim-7.2.050/runtime/doc/options.txt Sat Aug 9 19:36:49 2008 +--- runtime/doc/options.txt Tue Nov 25 23:43:55 2008 +*************** +*** 1,4 **** +! *options.txt* For Vim version 7.2. Last change: 2008 Aug 06 + + + VIM REFERENCE MANUAL by Bram Moolenaar +--- 1,4 ---- +! *options.txt* For Vim version 7.2. Last change: 2008 Nov 25 + + + VIM REFERENCE MANUAL by Bram Moolenaar +*************** +*** 7472,7478 **** + {not available when compiled without the |+wildignore| + feature} + A list of file patterns. A file that matches with one of these +! patterns is ignored when completing file or directory names. + The pattern is used like with |:autocmd|, see |autocmd-patterns|. + Also see 'suffixes'. + Example: > +--- 7481,7489 ---- + {not available when compiled without the |+wildignore| + feature} + A list of file patterns. A file that matches with one of these +! patterns is ignored when completing file or directory names, and +! influences the result of |expand()|, |glob()| and |globpath()| unless +! a flag is passed to disable this. + The pattern is used like with |:autocmd|, see |autocmd-patterns|. + Also see 'suffixes'. + Example: > +*** ../vim-7.2.050/src/version.c Fri Nov 28 10:08:05 2008 +--- src/version.c Fri Nov 28 10:55:44 2008 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 51, + /**/ + +-- +Not too long ago, unzipping in public was illegal... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///