summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlbert Liu <albertymliu@gmail.com>2021-08-27 20:59:35 +0200
committerBram Moolenaar <Bram@vim.org>2021-08-27 20:59:35 +0200
commit6024c0427ce1196344439997d5e41a6f8546368c (patch)
tree5671e333659a598c6338e804135785b40653c7a4
parent47016f57724d3970c54f4ca1f392dff39d3fecae (diff)
patch 8.2.3378: MS-Windows: completing environment variables with % is wrongv8.2.3378
Problem: MS-Windows: completing environment variables with % is wrong. Solution: Only complete environment variables with $. (Albert Liu, closes #8791)
-rw-r--r--src/cmdexpand.c10
-rw-r--r--src/testdir/test_cmdline.vim4
-rw-r--r--src/version.c2
3 files changed, 9 insertions, 7 deletions
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index 27fda78667..58ba759675 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1277,12 +1277,8 @@ set_one_cmd_context(
xp->xp_context = EXPAND_SHELLCMD;
}
- // Check for environment variable
- if (*xp->xp_pattern == '$'
-#if defined(MSWIN)
- || *xp->xp_pattern == '%'
-#endif
- )
+ // Check for environment variable.
+ if (*xp->xp_pattern == '$')
{
for (p = xp->xp_pattern + 1; *p != NUL; ++p)
if (!vim_isIDc(*p))
@@ -1296,7 +1292,7 @@ set_one_cmd_context(
compl = EXPAND_ENV_VARS;
}
}
- // Check for user names
+ // Check for user names.
if (*xp->xp_pattern == '~')
{
for (p = xp->xp_pattern + 1; *p != NUL && *p != '/'; ++p)
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index f7f55aa60d..0a71b1118b 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -9,6 +9,10 @@ func Test_complete_tab()
call writefile(['testfile'], 'Xtestfile')
call feedkeys(":e Xtest\t\r", "tx")
call assert_equal('testfile', getline(1))
+
+ " Pressing <Tab> after '%' completes the current file, also on MS-Windows
+ call feedkeys(":e %\t\r", "tx")
+ call assert_equal('e Xtestfile', @:)
call delete('Xtestfile')
endfunc
diff --git a/src/version.c b/src/version.c
index 7aa602f8fe..a3f0a8db20 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3378,
+/**/
3377,
/**/
3376,