To: vim-dev@vim.org Subject: patch 7.1.081 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 7.1.081 Problem: Command line completion for a shell command: "cat " 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 -- 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 ///