]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
updated for version 7.3.736 v7.3.736
authorBram Moolenaar <Bram@vim.org>
Wed, 28 Nov 2012 15:49:58 +0000 (16:49 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 28 Nov 2012 15:49:58 +0000 (16:49 +0100)
Problem:    File name completion in input() escapes white space. (Frederic
            Hardy)
Solution:   Do not escape white space. (Christian Brabandt)

src/ex_getln.c
src/version.c

index 249dafb5868ce423e28d6e76405a5da831b0d334..57582e84dfa38534bafd179bbc26d1bda7053984 100644 (file)
@@ -102,7 +102,7 @@ static void cmdline_del __ARGS((int from));
 static void    redrawcmdprompt __ARGS((void));
 static void    cursorcmd __ARGS((void));
 static int     ccheck_abbr __ARGS((int));
-static int     nextwild __ARGS((expand_T *xp, int type, int options));
+static int     nextwild __ARGS((expand_T *xp, int type, int options, int escape));
 static void    escape_fname __ARGS((char_u **pp));
 static int     showmatches __ARGS((expand_T *xp, int wildmenu));
 static void    set_expand_context __ARGS((expand_T *xp));
@@ -810,9 +810,11 @@ getcmdline(firstc, count, indent)
                    did_wild_list = TRUE;
                }
                if (wim_flags[wim_index] & WIM_LONGEST)
-                   res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
+                   res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
+                                                              firstc != '@');
                else if (wim_flags[wim_index] & WIM_FULL)
-                   res = nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP);
+                   res = nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP,
+                                                              firstc != '@');
                else
                    res = OK;       /* don't insert 'wildchar' now */
            }
@@ -823,9 +825,11 @@ getcmdline(firstc, count, indent)
                /* if 'wildmode' first contains "longest", get longest
                 * common part */
                if (wim_flags[0] & WIM_LONGEST)
-                   res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
+                   res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
+                                                              firstc != '@');
                else
-                   res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP);
+                   res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP,
+                                                              firstc != '@');
 
                /* if interrupted while completing, behave like it failed */
                if (got_int)
@@ -860,7 +864,8 @@ getcmdline(firstc, count, indent)
                            int p_wmnu_save = p_wmnu;
                            p_wmnu = 0;
 #endif
-                           nextwild(&xpc, WILD_PREV, 0); /* remove match */
+                           /* remove match */
+                           nextwild(&xpc, WILD_PREV, 0, firstc != '@');
 #ifdef FEAT_WILDMENU
                            p_wmnu = p_wmnu_save;
 #endif
@@ -874,9 +879,11 @@ getcmdline(firstc, count, indent)
                        redrawcmd();
                        did_wild_list = TRUE;
                        if (wim_flags[wim_index] & WIM_LONGEST)
-                           nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
+                           nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
+                                                              firstc != '@');
                        else if (wim_flags[wim_index] & WIM_FULL)
-                           nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP);
+                           nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP,
+                                                              firstc != '@');
                    }
                    else
                        vim_beep();
@@ -899,9 +906,9 @@ getcmdline(firstc, count, indent)
        /* <S-Tab> goes to last match, in a clumsy way */
        if (c == K_S_TAB && KeyTyped)
        {
-           if (nextwild(&xpc, WILD_EXPAND_KEEP, 0) == OK
-                   && nextwild(&xpc, WILD_PREV, 0) == OK
-                   && nextwild(&xpc, WILD_PREV, 0) == OK)
+           if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK
+                   && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK
+                   && nextwild(&xpc, WILD_PREV, 0, firstc != '@') == OK)
                goto cmdline_changed;
        }
 
@@ -1418,7 +1425,7 @@ getcmdline(firstc, count, indent)
                goto cmdline_not_changed;
 
        case Ctrl_A:        /* all matches */
-               if (nextwild(&xpc, WILD_ALL, 0) == FAIL)
+               if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
                    break;
                goto cmdline_changed;
 
@@ -1454,7 +1461,7 @@ getcmdline(firstc, count, indent)
 #endif
 
                /* completion: longest common part */
-               if (nextwild(&xpc, WILD_LONGEST, 0) == FAIL)
+               if (nextwild(&xpc, WILD_LONGEST, 0, firstc != '@') == FAIL)
                    break;
                goto cmdline_changed;
 
@@ -1462,8 +1469,8 @@ getcmdline(firstc, count, indent)
        case Ctrl_P:        /* previous match */
                if (xpc.xp_numfiles > 0)
                {
-                   if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT, 0)
-                                                                     == FAIL)
+                   if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT,
+                                                   0, firstc != '@') == FAIL)
                        break;
                    goto cmdline_changed;
                }
@@ -3338,10 +3345,11 @@ sort_func_compare(s1, s2)
  * normal character (instead of being expanded).  This allows :s/^I^D etc.
  */
     static int
-nextwild(xp, type, options)
+nextwild(xp, type, options, escape)
     expand_T   *xp;
     int                type;
     int                options;        /* extra options for ExpandOne() */
+    int                escape;         /* if TRUE, escape the returned matches */
 {
     int                i, j;
     char_u     *p1;
@@ -3390,7 +3398,9 @@ nextwild(xp, type, options)
        else
        {
            int use_options = options |
-                   WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
+                   WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT;
+           if (escape)
+               use_options |= WILD_ESCAPE;
 
            if (p_wic)
                use_options += WILD_ICASE;
index 80c82d64483b96be6a47e2ab7e199acdfa9f6d5e..058ffbc0e0161f2b2ce20cd9ff12a45b7e12a33f 100644 (file)
@@ -725,6 +725,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    736,
 /**/
     735,
 /**/