Patch 7.1.081
Problem:    Command line completion for a shell command: "cat </tmp/file<Tab>"
            doesn't work.
Solution:   Start the file name at any character that can't be in a file name.
            (Martin Toft)
Files:      src/ex_docmd.c


*** ../vim-7.1.080/src/ex_docmd.c       Tue Aug 14 22:54:00 2007
--- src/ex_docmd.c      Sat Aug 18 14:58:53 2007
***************
*** 3281,3319 ****
  
      if (ea.argt & XFILE)
      {
!       int in_quote = FALSE;
!       char_u *bow = NULL;     /* Beginning of word */
  
        /*
         * Allow spaces within back-quotes to count as part of the argument
         * being expanded.
         */
        xp->xp_pattern = skipwhite(arg);
!       for (p = xp->xp_pattern; *p; )
        {
!           if (*p == '\\' && p[1] != NUL)
                ++p;
  #ifdef SPACE_IN_FILENAME
!           else if (vim_iswhite(*p) && (!(ea.argt & NOSPC) || usefilter))
  #else
!           else if (vim_iswhite(*p))
  #endif
            {
!               p = skipwhite(p);
                if (in_quote)
                    bow = p;
                else
                    xp->xp_pattern = p;
!               --p;
!           }
!           else if (*p == '`')
!           {
!               if (!in_quote)
!               {
!                   xp->xp_pattern = p;
!                   bow = p + 1;
!               }
!               in_quote = !in_quote;
            }
            mb_ptr_adv(p);
        }
--- 3281,3344 ----
  
      if (ea.argt & XFILE)
      {
!       int     c;
!       int     in_quote = FALSE;
!       char_u  *bow = NULL;    /* Beginning of word */
  
        /*
         * Allow spaces within back-quotes to count as part of the argument
         * being expanded.
         */
        xp->xp_pattern = skipwhite(arg);
!       p = xp->xp_pattern;
!       while (*p != NUL)
        {
! #ifdef FEAT_MBYTE
!           if (has_mbyte)
!               c = mb_ptr2char(p);
!           else
! #endif
!               c = *p;
!           if (c == '\\' && p[1] != NUL)
                ++p;
+           else if (c == '`')
+           {
+               if (!in_quote)
+               {
+                   xp->xp_pattern = p;
+                   bow = p + 1;
+               }
+               in_quote = !in_quote;
+           }
  #ifdef SPACE_IN_FILENAME
!           else if (!vim_isfilec(c) && (!(ea.argt & NOSPC) || usefilter))
  #else
!           else if (!vim_isfilec(c))
  #endif
            {
!               while (*p != NUL)
!               {
! #ifdef FEAT_MBYTE
!                   if (has_mbyte)
!                       c = mb_ptr2char(p);
!                   else
! #endif
!                       c = *p;
!                   if (c == '`' || vim_isfilec(c))
!                       break;
! #ifdef FEAT_MBYTE
!                   if (has_mbyte)
!                       len = (*mb_ptr2len)(p);
!                   else
! #endif
!                       len = 1;
!                   mb_ptr_adv(p);
!               }
                if (in_quote)
                    bow = p;
                else
                    xp->xp_pattern = p;
!               p -= len;
            }
            mb_ptr_adv(p);
        }
*** ../vim-7.1.080/src/version.c        Sat Aug 18 16:59:43 2007
--- src/version.c       Sat Aug 18 17:45:54 2007
***************
*** 668,669 ****
--- 668,671 ----
  {   /* Add new patch number below this line */
+ /**/
+     81,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
194. Your business cards contain your e-mail and home page address.

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- 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    ///

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui