]> granicus.if.org Git - vim/commitdiff
updated for version 7.2-051 v7.2.051
authorBram Moolenaar <Bram@vim.org>
Fri, 28 Nov 2008 10:01:10 +0000 (10:01 +0000)
committerBram Moolenaar <Bram@vim.org>
Fri, 28 Nov 2008 10:01:10 +0000 (10:01 +0000)
runtime/doc/eval.txt
runtime/doc/options.txt
src/eval.c
src/ex_getln.c
src/proto/ex_getln.pro
src/version.c

index 81afadcaa80dd929655585b52464ba891cc130cd..3ea7d7f4d3f1bac280dcfa95407210f1139929bd 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*     For Vim version 7.2.  Last change: 2008 Nov 02
+*eval.txt*     For Vim version 7.2.  Last change: 2008 Nov 27
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1706,7 +1706,7 @@ executable( {expr})               Number  1 if executable {expr} exists
 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}
+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,8 +1758,9 @@ gettabwinvar( {tabnr}, {winnr}, {name})
 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}
+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,14 +3287,16 @@ getwinvar({winnr}, {varname})                           *getwinvar()*
                        :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
+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.
-               The 'wildignore' option applies: Names matching one of the
-               patterns in 'wildignore' will be skipped.
+               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,20 +3310,22 @@ glob({expr})    Expand the file wildcards in {expr}.  See |wildcards| for the
                See |expand()| for expanding special Vim variables.  See
                |system()| for getting the raw output of an external command.
 
-globpath({path}, {expr})                               *globpath()*
+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.
+               |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.
+               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
index 10a5bcd1a7309a2535bc6bfd989cb6f0424e3447..786e83c72cda452723be455b2e338cfdad7567a1 100644 (file)
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 7.2.  Last change: 2008 Aug 06
+*options.txt*  For Vim version 7.2.  Last change: 2008 Nov 25
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -7472,7 +7472,9 @@ A jump table for the options with a short description can be found at |Q_op|.
                        {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.
+       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: >
index 00190b09efe712cfb5f0a6e832949fed7ae036e0..e118f042eb59924b13f73f7563eb7318005e0842 100644 (file)
@@ -7564,8 +7564,8 @@ static struct fst
     {"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},
+    {"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,7 +9557,7 @@ f_expand(argvars, rettv)
     else
     {
        /* When the optional second argument is non-zero, don't remove matches
-        * for 'suffixes' and 'wildignore' */
+        * 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,13 +11323,25 @@ f_glob(argvars, rettv)
     typval_T   *argvars;
     typval_T   *rettv;
 {
+    int                flags = WILD_SILENT|WILD_USE_NL;
     expand_T   xpc;
+    int                error = FALSE;
 
-    ExpandInit(&xpc);
-    xpc.xp_context = EXPAND_FILES;
+    /* 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;
-    rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
-                                    NULL, WILD_USE_NL|WILD_SILENT, WILD_ALL);
+    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,14 +11352,22 @@ f_globpath(argvars, rettv)
     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)
+    if (file == NULL || error)
        rettv->vval.v_string = NULL;
     else
-       rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file);
+       rettv->vval.v_string = globpath(get_tv_string(&argvars[0]), file,
+                                                                      flags);
 }
 
 /*
index ac801eb8b3fa3edc9dd907e1bbdc28e98f73013a..e324e7eab3e6222a68820870f9057bbb921dcaf7 100644 (file)
@@ -2524,7 +2524,7 @@ realloc_cmdbuff(len)
            && ccline.xpc->xp_context != EXPAND_NOTHING
            && ccline.xpc->xp_context != EXPAND_UNSUCCESSFUL)
     {
-       int i = ccline.xpc->xp_pattern - p;
+       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,7 +4897,7 @@ ExpandRTDir(pat, num_file, file, dirname)
     if (s == NULL)
        return FAIL;
     sprintf((char *)s, "%s/%s*.vim", dirname, pat);
-    all = globpath(p_rtp, s);
+    all = globpath(p_rtp, s, 0);
     vim_free(s);
     if (all == NULL)
        return FAIL;
@@ -4938,9 +4938,10 @@ ExpandRTDir(pat, num_file, file, dirname)
  * newlines.  Returns NULL for an error or no matches.
  */
     char_u *
-globpath(path, file)
+globpath(path, file, expand_options)
     char_u     *path;
     char_u     *file;
+    int                expand_options;
 {
     expand_T   xpc;
     char_u     *buf;
@@ -4969,10 +4970,10 @@ globpath(path, file)
        {
            add_pathsep(buf);
            STRCAT(buf, file);
-           if (ExpandFromContext(&xpc, buf, &num_p, &p, WILD_SILENT) != FAIL
-                                                                && num_p > 0)
+           if (ExpandFromContext(&xpc, buf, &num_p, &p,
+                            WILD_SILENT|expand_options) != FAIL && num_p > 0)
            {
-               ExpandEscape(&xpc, buf, num_p, p, WILD_SILENT);
+               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;
 
index b4a501814376b89ea25015b8940f4a3c34ccf5ea..afbf664699c3ff719b7c83c3f052fea8ff5cdecc 100644 (file)
@@ -31,7 +31,7 @@ char_u *addstar __ARGS((char_u *fname, int len, int context));
 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));
+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));
index e2e492accba95f194883637dfb1802ef2cdec840..e45bd1203f8cae2f35647ce5fbd7547ad6be53c1 100644 (file)
@@ -676,6 +676,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    51,
 /**/
     50,
 /**/