| To: vim-dev@vim.org |
| Subject: patch 7.1.083 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.1.083 (after 7.1.081) |
| Problem: Command line completion doesn't work with wildcards. |
| Solution: Add vim_isfilec_or_wc() and use it. (Martin Toft) |
| Files: src/charset.c, src/proto/charset.pro, src/ex_docmd.c |
| |
| |
| |
| |
| |
| *** 932,937 **** |
| --- 932,954 ---- |
| } |
| |
| /* |
| + * return TRUE if 'c' is a valid file-name character or a wildcard character |
| + * Assume characters above 0x100 are valid (multi-byte). |
| + * Explicitly interpret ']' as a wildcard character as mch_has_wildcard("]") |
| + * returns false. |
| + */ |
| + int |
| + vim_isfilec_or_wc(c) |
| + int c; |
| + { |
| + char_u buf[2]; |
| + |
| + buf[0] = (char_u)c; |
| + buf[1] = NUL; |
| + return vim_isfilec(c) || c == ']' || mch_has_wildcard(buf); |
| + } |
| + |
| + /* |
| * return TRUE if 'c' is a printable character |
| * Assume characters above 0x100 are printable (multi-byte), except for |
| * Unicode. |
| |
| |
| |
| *** 21,26 **** |
| --- 21,27 ---- |
| int vim_iswordp __ARGS((char_u *p)); |
| int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf)); |
| int vim_isfilec __ARGS((int c)); |
| + int vim_isfilec_or_wc __ARGS((int c)); |
| int vim_isprintc __ARGS((int c)); |
| int vim_isprintc_strict __ARGS((int c)); |
| int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col)); |
| |
| |
| |
| *** 3311,3319 **** |
| 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) |
| --- 3311,3320 ---- |
| in_quote = !in_quote; |
| } |
| #ifdef SPACE_IN_FILENAME |
| ! else if (!vim_isfilec_or_wc(c) |
| ! && (!(ea.argt & NOSPC) || usefilter)) |
| #else |
| ! else if (!vim_isfilec_or_wc(c)) |
| #endif |
| { |
| while (*p != NUL) |
| |
| *** 3324,3330 **** |
| else |
| #endif |
| c = *p; |
| ! if (c == '`' || vim_isfilec(c)) |
| break; |
| #ifdef FEAT_MBYTE |
| if (has_mbyte) |
| --- 3325,3331 ---- |
| else |
| #endif |
| c = *p; |
| ! if (c == '`' || vim_isfilec_or_wc(c)) |
| break; |
| #ifdef FEAT_MBYTE |
| if (has_mbyte) |
| |
| |
| |
| *** 668,669 **** |
| --- 668,671 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 83, |
| /**/ |
| |
| -- |
| "You mean there really is an answer?" |
| "Yes! But you're not going to like it!" |
| "Oh do please tell us!" |
| "You're really not going to like it!" |
| "but we MUST know - tell us" |
| "Alright, the answer is...." |
| "yes..." |
| "... is ..." |
| "yes... come on!" |
| "is 42!" |
| (Douglas Adams - The Hitchhiker's Guide to the Galaxy) |
| |
| /// 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 /// |