Patch 7.3.736
Problem:    File name completion in input() escapes white space. (Frederic
            Hardy)
Solution:   Do not escape white space. (Christian Brabandt)
Files:      src/ex_getln.c


*** ../vim-7.3.735/src/ex_getln.c       2012-10-11 04:04:32.000000000 +0200
--- src/ex_getln.c      2012-11-28 16:42:12.000000000 +0100
***************
*** 102,108 ****
  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 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));
--- 102,108 ----
  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, 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,818 ****
                    did_wild_list = TRUE;
                }
                if (wim_flags[wim_index] & WIM_LONGEST)
!                   res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
                else if (wim_flags[wim_index] & WIM_FULL)
!                   res = nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP);
                else
                    res = OK;       /* don't insert 'wildchar' now */
            }
--- 810,820 ----
                    did_wild_list = TRUE;
                }
                if (wim_flags[wim_index] & WIM_LONGEST)
!                   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,
!                                                              firstc != '@');
                else
                    res = OK;       /* don't insert 'wildchar' now */
            }
***************
*** 823,831 ****
                /* if 'wildmode' first contains "longest", get longest
                 * common part */
                if (wim_flags[0] & WIM_LONGEST)
!                   res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
                else
!                   res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP);
  
                /* if interrupted while completing, behave like it failed */
                if (got_int)
--- 825,835 ----
                /* if 'wildmode' first contains "longest", get longest
                 * common part */
                if (wim_flags[0] & WIM_LONGEST)
!                   res = nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
!                                                              firstc != '@');
                else
!                   res = nextwild(&xpc, WILD_EXPAND_KEEP, WILD_NO_BEEP,
!                                                              firstc != '@');
  
                /* if interrupted while completing, behave like it failed */
                if (got_int)
***************
*** 860,866 ****
                            int p_wmnu_save = p_wmnu;
                            p_wmnu = 0;
  #endif
!                           nextwild(&xpc, WILD_PREV, 0); /* remove match */
  #ifdef FEAT_WILDMENU
                            p_wmnu = p_wmnu_save;
  #endif
--- 864,871 ----
                            int p_wmnu_save = p_wmnu;
                            p_wmnu = 0;
  #endif
!                           /* remove match */
!                           nextwild(&xpc, WILD_PREV, 0, firstc != '@');
  #ifdef FEAT_WILDMENU
                            p_wmnu = p_wmnu_save;
  #endif
***************
*** 874,882 ****
                        redrawcmd();
                        did_wild_list = TRUE;
                        if (wim_flags[wim_index] & WIM_LONGEST)
!                           nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP);
                        else if (wim_flags[wim_index] & WIM_FULL)
!                           nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP);
                    }
                    else
                        vim_beep();
--- 879,889 ----
                        redrawcmd();
                        did_wild_list = TRUE;
                        if (wim_flags[wim_index] & WIM_LONGEST)
!                           nextwild(&xpc, WILD_LONGEST, WILD_NO_BEEP,
!                                                              firstc != '@');
                        else if (wim_flags[wim_index] & WIM_FULL)
!                           nextwild(&xpc, WILD_NEXT, WILD_NO_BEEP,
!                                                              firstc != '@');
                    }
                    else
                        vim_beep();
***************
*** 899,907 ****
        /* <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)
                goto cmdline_changed;
        }
  
--- 906,914 ----
        /* <S-Tab> goes to last match, in a clumsy way */
        if (c == K_S_TAB && KeyTyped)
        {
!           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,1424 ****
                goto cmdline_not_changed;
  
        case Ctrl_A:        /* all matches */
!               if (nextwild(&xpc, WILD_ALL, 0) == FAIL)
                    break;
                goto cmdline_changed;
  
--- 1425,1431 ----
                goto cmdline_not_changed;
  
        case Ctrl_A:        /* all matches */
!               if (nextwild(&xpc, WILD_ALL, 0, firstc != '@') == FAIL)
                    break;
                goto cmdline_changed;
  
***************
*** 1454,1460 ****
  #endif
  
                /* completion: longest common part */
!               if (nextwild(&xpc, WILD_LONGEST, 0) == FAIL)
                    break;
                goto cmdline_changed;
  
--- 1461,1467 ----
  #endif
  
                /* completion: longest common part */
!               if (nextwild(&xpc, WILD_LONGEST, 0, firstc != '@') == FAIL)
                    break;
                goto cmdline_changed;
  
***************
*** 1462,1469 ****
        case Ctrl_P:        /* previous match */
                if (xpc.xp_numfiles > 0)
                {
!                   if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT, 0)
!                                                                     == FAIL)
                        break;
                    goto cmdline_changed;
                }
--- 1469,1476 ----
        case Ctrl_P:        /* previous match */
                if (xpc.xp_numfiles > 0)
                {
!                   if (nextwild(&xpc, (c == Ctrl_P) ? WILD_PREV : WILD_NEXT,
!                                                   0, firstc != '@') == FAIL)
                        break;
                    goto cmdline_changed;
                }
***************
*** 3338,3347 ****
   * normal character (instead of being expanded).  This allows :s/^I^D etc.
   */
      static int
! nextwild(xp, type, options)
      expand_T  *xp;
      int               type;
      int               options;        /* extra options for ExpandOne() */
  {
      int               i, j;
      char_u    *p1;
--- 3345,3355 ----
   * normal character (instead of being expanded).  This allows :s/^I^D etc.
   */
      static int
! 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,3396 ****
        else
        {
            int use_options = options |
!                   WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
  
            if (p_wic)
                use_options += WILD_ICASE;
--- 3398,3406 ----
        else
        {
            int use_options = options |
!                   WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT;
!           if (escape)
!               use_options |= WILD_ESCAPE;
  
            if (p_wic)
                use_options += WILD_ICASE;
*** ../vim-7.3.735/src/version.c        2012-11-28 16:18:26.000000000 +0100
--- src/version.c       2012-11-28 16:30:45.000000000 +0100
***************
*** 727,728 ****
--- 727,730 ----
  {   /* Add new patch number below this line */
+ /**/
+     736,
  /**/

-- 
>From "know your smileys":
 ;-0    Can't find shift key
 ,-9    Kann Umschalttaste nicht finden

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui