1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-01-14 08:01:11 +01:00
slackware-current/source/ap/vim/patches/7.2.051
Patrick J Volkerding 5a12e7c134 Slackware 13.0
Wed Aug 26 10:00:38 CDT 2009
Slackware 13.0 x86_64 is released as stable!  Thanks to everyone who
helped make this release possible -- see the RELEASE_NOTES for the
credits.  The ISOs are off to the replicator.  This time it will be a
6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD.
We're taking pre-orders now at store.slackware.com.  Please consider
picking up a copy to help support the project.  Once again, thanks to
the entire Slackware community for all the help testing and fixing
things and offering suggestions during this development cycle.
As always, have fun and enjoy!  -P.
2018-05-31 22:41:17 +02:00

411 lines
15 KiB
Text

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 ///