summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvimboss <devnull@localhost>2007-08-18 15:47:34 +0000
committervimboss <devnull@localhost>2007-08-18 15:47:34 +0000
commite52fa2da0224ade2e0f561b8babe737ebb85b53c (patch)
tree5b6ddfa0caa544cc44ce91c029bedb58c0c9de4e
parent110f96f086136129540936d4077dd5b5ffbb6f5e (diff)
downloadvim-e52fa2da0224ade2e0f561b8babe737ebb85b53c.tar.gz
updated for version 7.1-081v7.1.081v7-1-081
-rw-r--r--src/ex_docmd.c59
-rw-r--r--src/version.c2
2 files changed, 44 insertions, 17 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 5e637919..73a990c7 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3281,39 +3281,64 @@ set_one_cmd_context(xp, buff)
if (ea.argt & XFILE)
{
- int in_quote = FALSE;
- char_u *bow = NULL; /* Beginning of word */
+ 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);
- for (p = xp->xp_pattern; *p; )
+ p = xp->xp_pattern;
+ while (*p != NUL)
{
- if (*p == '\\' && p[1] != 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_iswhite(*p) && (!(ea.argt & NOSPC) || usefilter))
+ else if (!vim_isfilec(c) && (!(ea.argt & NOSPC) || usefilter))
#else
- else if (vim_iswhite(*p))
+ else if (!vim_isfilec(c))
#endif
{
- p = skipwhite(p);
+ 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;
- }
- else if (*p == '`')
- {
- if (!in_quote)
- {
- xp->xp_pattern = p;
- bow = p + 1;
- }
- in_quote = !in_quote;
+ p -= len;
}
mb_ptr_adv(p);
}
diff --git a/src/version.c b/src/version.c
index 33bbc7d9..336976ea 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 81,
+/**/
80,
/**/
79,