mirror of
https://github.com/vim/vim.git
synced 2025-08-26 20:03:41 -04:00
patch 9.1.1338: Calling expand() interferes with cmdcomplete_info()
Problem: Calling expand() interferes with cmdcomplete_info() (after 9.1.1329). Solution: Only clear cmdline_orig when starting/ending cmdline mode (zeertzjq). closes: #17192 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
1343681aba
commit
ec270a5f55
@ -1115,7 +1115,6 @@ ExpandInit(expand_T *xp)
|
|||||||
xp->xp_backslash = XP_BS_NONE;
|
xp->xp_backslash = XP_BS_NONE;
|
||||||
xp->xp_prefix = XP_PREFIX_NONE;
|
xp->xp_prefix = XP_PREFIX_NONE;
|
||||||
xp->xp_numfiles = -1;
|
xp->xp_numfiles = -1;
|
||||||
VIM_CLEAR(cmdline_orig);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1132,6 +1131,12 @@ ExpandCleanup(expand_T *xp)
|
|||||||
VIM_CLEAR(xp->xp_orig);
|
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
|
* Display one line of completion matches. Multiple matches are displayed in
|
||||||
* each line (used by wildmode=list and CTRL-D)
|
* each line (used by wildmode=list and CTRL-D)
|
||||||
|
@ -1663,6 +1663,7 @@ getcmdline_int(
|
|||||||
|
|
||||||
ExpandInit(&xpc);
|
ExpandInit(&xpc);
|
||||||
ccline.xpc = &xpc;
|
ccline.xpc = &xpc;
|
||||||
|
clear_cmdline_orig();
|
||||||
|
|
||||||
#ifdef FEAT_RIGHTLEFT
|
#ifdef FEAT_RIGHTLEFT
|
||||||
if (curwin->w_p_rl && *curwin->w_p_rlc == 's'
|
if (curwin->w_p_rl && *curwin->w_p_rlc == 's'
|
||||||
@ -2567,6 +2568,7 @@ returncmd:
|
|||||||
|
|
||||||
ExpandCleanup(&xpc);
|
ExpandCleanup(&xpc);
|
||||||
ccline.xpc = NULL;
|
ccline.xpc = NULL;
|
||||||
|
clear_cmdline_orig();
|
||||||
|
|
||||||
#ifdef FEAT_SEARCH_EXTRA
|
#ifdef FEAT_SEARCH_EXTRA
|
||||||
finish_incsearch_highlighting(gotesc, &is_state, FALSE);
|
finish_incsearch_highlighting(gotesc, &is_state, FALSE);
|
||||||
|
@ -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);
|
char_u *ExpandOne(expand_T *xp, char_u *str, char_u *orig, int options, int mode);
|
||||||
void ExpandInit(expand_T *xp);
|
void ExpandInit(expand_T *xp);
|
||||||
void ExpandCleanup(expand_T *xp);
|
void ExpandCleanup(expand_T *xp);
|
||||||
|
void clear_cmdline_orig(void);
|
||||||
int showmatches(expand_T *xp, int wildmenu);
|
int showmatches(expand_T *xp, int wildmenu);
|
||||||
char_u *addstar(char_u *fname, int len, int context);
|
char_u *addstar(char_u *fname, int len, int context);
|
||||||
void set_expand_context(expand_T *xp);
|
void set_expand_context(expand_T *xp);
|
||||||
|
@ -4268,10 +4268,12 @@ func Test_cd_bslash_completion_windows()
|
|||||||
let &shellslash = save_shellslash
|
let &shellslash = save_shellslash
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Testg cmdcomplete_info() with CmdlineLeavePre autocmd
|
" Test cmdcomplete_info() with CmdlineLeavePre autocmd
|
||||||
func Test_cmdcomplete_info()
|
func Test_cmdcomplete_info()
|
||||||
augroup test_CmdlineLeavePre
|
augroup test_CmdlineLeavePre
|
||||||
autocmd!
|
autocmd!
|
||||||
|
" Calling expand() should not interfere with cmdcomplete_info().
|
||||||
|
autocmd CmdlineLeavePre * call expand('test_cmdline.*')
|
||||||
autocmd CmdlineLeavePre * let g:cmdcomplete_info = string(cmdcomplete_info())
|
autocmd CmdlineLeavePre * let g:cmdcomplete_info = string(cmdcomplete_info())
|
||||||
augroup END
|
augroup END
|
||||||
new
|
new
|
||||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1338,
|
||||||
/**/
|
/**/
|
||||||
1337,
|
1337,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user