diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-09-26 18:47:11 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-09-26 18:47:11 +0200 |
commit | 8f187fc6304222956f94a700758a490cc8c0af99 (patch) | |
tree | 7532ab234cb857762f44e1b6bc48583f2c1aa38f | |
parent | 373863ed48c02b5df52574aa7d50aeecb1037d40 (diff) | |
download | vim-git-8f187fc6304222956f94a700758a490cc8c0af99.tar.gz |
patch 8.2.1747: result of expand() unexpectedly depends on 'completeslash'v8.2.1747
Problem: Result of expand() unexpectedly depends on 'completeslash'.
Solution: Temporarily reset 'completeslash'. (Yasuhiro Matsumoto,
closes #7021)
-rw-r--r-- | src/evalfunc.c | 9 | ||||
-rw-r--r-- | src/testdir/test_ins_complete.vim | 17 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 26 insertions, 2 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c index 57c4ffbce..afc897753 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -2436,6 +2436,12 @@ f_expand(typval_T *argvars, typval_T *rettv) expand_T xpc; int error = FALSE; char_u *result; +#ifdef BACKSLASH_IN_FILENAME + char_u *p_csl_save = p_csl; + + // avoid using 'completeslash' here + p_csl = empty_option; +#endif rettv->v_type = VAR_STRING; if (argvars[1].v_type != VAR_UNKNOWN @@ -2488,6 +2494,9 @@ f_expand(typval_T *argvars, typval_T *rettv) else rettv->vval.v_string = NULL; } +#ifdef BACKSLASH_IN_FILENAME + p_csl = p_csl_save; +#endif } /* diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index 992fefab4..f77512ae1 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -363,12 +363,12 @@ endfunc " Test for insert path completion with completeslash option func Test_ins_completeslash() CheckMSWindows - + call mkdir('Xdir') let orig_shellslash = &shellslash set cpt& new - + set noshellslash set completeslash= @@ -654,4 +654,17 @@ func Test_complete_cmdline() close! endfunc +func Test_issue_7021() + CheckMSWindows + + let orig_shellslash = &shellslash + set noshellslash + + set completeslash=slash + call assert_false(expand('~') =~ '/') + + let &shellslash = orig_shellslash + set completeslash= +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 49ce61cab..03765bf1b 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1747, +/**/ 1746, /**/ 1745, |