diff --git a/7.3.615 b/7.3.615 new file mode 100644 index 0000000..96f6885 --- /dev/null +++ b/7.3.615 @@ -0,0 +1,107 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.615 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.615 +Problem: Completion for a user command does not recognize backslash before + a space. +Solution: Recognize escaped characters. (Yasuhiro Matsumoto) +Files: src/ex_docmd.c + + +*** ../vim-7.3.614/src/ex_docmd.c 2012-07-10 19:25:06.000000000 +0200 +--- src/ex_docmd.c 2012-07-25 17:10:16.000000000 +0200 +*************** +*** 3390,3401 **** + return NULL; + + /* Find start of last argument (argument just before cursor): */ +! p = buff + STRLEN(buff); +! while (p != arg && *p != ' ' && *p != TAB) +! p--; +! if (*p == ' ' || *p == TAB) +! p++; + xp->xp_pattern = p; + + if (ea.argt & XFILE) + { +--- 3390,3412 ---- + return NULL; + + /* Find start of last argument (argument just before cursor): */ +! p = buff; + xp->xp_pattern = p; ++ len = STRLEN(buff); ++ while (*p && p < buff + len) ++ { ++ if (*p == ' ' || *p == TAB) ++ { ++ /* argument starts after a space */ ++ xp->xp_pattern = ++p; ++ } ++ else ++ { ++ if (*p == '\\' && *(p + 1) != NUL) ++ ++p; /* skip over escaped character */ ++ mb_ptr_adv(p); ++ } ++ } + + if (ea.argt & XFILE) + { +*************** +*** 3821,3828 **** + if (compl == EXPAND_MAPPINGS) + return set_context_in_map_cmd(xp, (char_u *)"map", + arg, forceit, FALSE, FALSE, CMD_map); +! while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL) +! arg = xp->xp_pattern + 1; + xp->xp_pattern = arg; + } + xp->xp_context = compl; +--- 3832,3853 ---- + if (compl == EXPAND_MAPPINGS) + return set_context_in_map_cmd(xp, (char_u *)"map", + arg, forceit, FALSE, FALSE, CMD_map); +! /* Find start of last argument. */ +! p = arg; +! while (*p) +! { +! if (*p == ' ') +! { +! /* argument starts after a space */ +! arg = p + 1; +! } +! else +! { +! if (*p == '\\' && *(p + 1) != NUL) +! ++p; /* skip over escaped character */ +! mb_ptr_adv(p); +! } +! } + xp->xp_pattern = arg; + } + xp->xp_context = compl; +*** ../vim-7.3.614/src/version.c 2012-07-25 16:46:59.000000000 +0200 +--- src/version.c 2012-07-25 17:17:05.000000000 +0200 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 615, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +172. You join listservers just for the extra e-mail. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///