diff --git a/src/cmdexpand.c b/src/cmdexpand.c index e8bc0805ca..4dbd10ee8a 100644 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -1115,7 +1115,6 @@ ExpandInit(expand_T *xp) xp->xp_backslash = XP_BS_NONE; xp->xp_prefix = XP_PREFIX_NONE; xp->xp_numfiles = -1; - VIM_CLEAR(cmdline_orig); } /* @@ -1132,6 +1131,12 @@ ExpandCleanup(expand_T *xp) VIM_CLEAR(xp->xp_orig); } + void +clear_cmdline_orig(void) +{ + VIM_CLEAR(cmdline_orig); +} + /* * Display one line of completion matches. Multiple matches are displayed in * each line (used by wildmode=list and CTRL-D) diff --git a/src/ex_getln.c b/src/ex_getln.c index 8445236acc..1be5a0c1f6 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -1663,6 +1663,7 @@ getcmdline_int( ExpandInit(&xpc); ccline.xpc = &xpc; + clear_cmdline_orig(); #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl && *curwin->w_p_rlc == 's' @@ -2567,6 +2568,7 @@ returncmd: ExpandCleanup(&xpc); ccline.xpc = NULL; + clear_cmdline_orig(); #ifdef FEAT_SEARCH_EXTRA finish_incsearch_highlighting(gotesc, &is_state, FALSE); diff --git a/src/proto/cmdexpand.pro b/src/proto/cmdexpand.pro index 73db378bf9..92e9dcb024 100644 --- a/src/proto/cmdexpand.pro +++ b/src/proto/cmdexpand.pro @@ -11,6 +11,7 @@ int cmdline_compl_is_fuzzy(void); char_u *ExpandOne(expand_T *xp, char_u *str, char_u *orig, int options, int mode); void ExpandInit(expand_T *xp); void ExpandCleanup(expand_T *xp); +void clear_cmdline_orig(void); int showmatches(expand_T *xp, int wildmenu); char_u *addstar(char_u *fname, int len, int context); void set_expand_context(expand_T *xp); diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index 364909cc50..c66a4273e3 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -4268,10 +4268,12 @@ func Test_cd_bslash_completion_windows() let &shellslash = save_shellslash endfunc -" Testg cmdcomplete_info() with CmdlineLeavePre autocmd +" Test cmdcomplete_info() with CmdlineLeavePre autocmd func Test_cmdcomplete_info() augroup test_CmdlineLeavePre autocmd! + " Calling expand() should not interfere with cmdcomplete_info(). + autocmd CmdlineLeavePre * call expand('test_cmdline.*') autocmd CmdlineLeavePre * let g:cmdcomplete_info = string(cmdcomplete_info()) augroup END new diff --git a/src/version.c b/src/version.c index fec0e0d186..e9dc252ea3 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1338, /**/ 1337, /**/