summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.2.051
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.2.051')
-rw-r--r--source/ap/vim/patches/7.2.051411
1 files changed, 411 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.2.051 b/source/ap/vim/patches/7.2.051
new file mode 100644
index 000000000..7c36dfe93
--- /dev/null
+++ b/source/ap/vim/patches/7.2.051
@@ -0,0 +1,411 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.051
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+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 <NL>
+ 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 <NL>
+ 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 ///