mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-17 15:01:40 +02:00
26270: allow accept-and-menu-complete work with _vallues as well
This commit is contained in:
parent
369a03d09f
commit
1a43616975
5 changed files with 27 additions and 13 deletions
|
@ -10,6 +10,13 @@
|
||||||
|
|
||||||
2009-01-09 Andrey Borzenkov <bor@zsh.org>
|
2009-01-09 Andrey Borzenkov <bor@zsh.org>
|
||||||
|
|
||||||
|
* 26270: Completion/Base/Utility/_values, Doc/Zsh/compwid.yo,
|
||||||
|
Src/Zle/compcore.c, Src/Zle/complete.c, Src/Zle/compresult.c:
|
||||||
|
allow accept-and-menu-complete to work also with _values.
|
||||||
|
Add compstate[list_in_word] flag to control, whether suffix
|
||||||
|
is replaced by space; when set, next match is added in the same
|
||||||
|
word.
|
||||||
|
|
||||||
* unposted: Completion/Mandriva/Command/.distfiles,
|
* unposted: Completion/Mandriva/Command/.distfiles,
|
||||||
Completion/Mandriva/Command/_rebootin: add _rebootin completion
|
Completion/Mandriva/Command/_rebootin: add _rebootin completion
|
||||||
from Mandriva RPM (modified to allow spaces in GRUB menu titles)
|
from Mandriva RPM (modified to allow spaces in GRUB menu titles)
|
||||||
|
@ -10879,5 +10886,5 @@
|
||||||
|
|
||||||
*****************************************************
|
*****************************************************
|
||||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||||
* $Revision: 1.4499 $
|
* $Revision: 1.4500 $
|
||||||
*****************************************************
|
*****************************************************
|
||||||
|
|
|
@ -12,6 +12,8 @@ if compvalues -i "$@"; then
|
||||||
local noargs args opts descr action expl sep argsep subc test='*'
|
local noargs args opts descr action expl sep argsep subc test='*'
|
||||||
local oldcontext="$curcontext"
|
local oldcontext="$curcontext"
|
||||||
|
|
||||||
|
compstate[list_in_word]=1
|
||||||
|
|
||||||
compvalues -S argsep
|
compvalues -S argsep
|
||||||
compvalues -s sep && [[ -n "$sep" ]] && test="[^${(q)sep}]#"
|
compvalues -s sep && [[ -n "$sep" ]] && test="[^${(q)sep}]#"
|
||||||
|
|
||||||
|
|
|
@ -325,6 +325,7 @@ do_completion(UNUSED(Hookdef dummy), Compldat dat)
|
||||||
comppatinsert = ztrdup("menu");
|
comppatinsert = ztrdup("menu");
|
||||||
forcelist = 0;
|
forcelist = 0;
|
||||||
haspattern = 0;
|
haspattern = 0;
|
||||||
|
complistinword = 0;
|
||||||
complistmax = getiparam("LISTMAX");
|
complistmax = getiparam("LISTMAX");
|
||||||
zsfree(complastprompt);
|
zsfree(complastprompt);
|
||||||
complastprompt = ztrdup(((isset(ALWAYSLASTPROMPT) && zmult == 1) ||
|
complastprompt = ztrdup(((isset(ALWAYSLASTPROMPT) && zmult == 1) ||
|
||||||
|
|
|
@ -38,6 +38,7 @@ zlong compcurrent,
|
||||||
complistmax;
|
complistmax;
|
||||||
/**/
|
/**/
|
||||||
zlong complistlines,
|
zlong complistlines,
|
||||||
|
complistinword,
|
||||||
compignored;
|
compignored;
|
||||||
|
|
||||||
/**/
|
/**/
|
||||||
|
@ -1146,6 +1147,7 @@ static struct compparam compkparams[] = {
|
||||||
GSU(unambig_pos_gsu) },
|
GSU(unambig_pos_gsu) },
|
||||||
{ "insert_positions", PM_SCALAR | PM_READONLY, NULL,
|
{ "insert_positions", PM_SCALAR | PM_READONLY, NULL,
|
||||||
GSU(insert_pos_gsu) },
|
GSU(insert_pos_gsu) },
|
||||||
|
{ "list_in_word", PM_INTEGER, VAL(complistinword), NULL },
|
||||||
{ "list_max", PM_INTEGER, VAL(complistmax), NULL },
|
{ "list_max", PM_INTEGER, VAL(complistmax), NULL },
|
||||||
{ "last_prompt", PM_SCALAR, VAL(complastprompt), NULL },
|
{ "last_prompt", PM_SCALAR, VAL(complastprompt), NULL },
|
||||||
{ "to_end", PM_SCALAR, VAL(comptoend), NULL },
|
{ "to_end", PM_SCALAR, VAL(comptoend), NULL },
|
||||||
|
@ -1596,7 +1598,7 @@ setup_(UNUSED(Module m))
|
||||||
compvared = compqstack = NULL;
|
compvared = compqstack = NULL;
|
||||||
complastprefix = ztrdup("");
|
complastprefix = ztrdup("");
|
||||||
complastsuffix = ztrdup("");
|
complastsuffix = ztrdup("");
|
||||||
complistmax = 0;
|
complistmax = complistinword = 0;
|
||||||
hascompmod = 1;
|
hascompmod = 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1309,21 +1309,23 @@ accept_last(void)
|
||||||
lastbrbeg->str[l] = ',';
|
lastbrbeg->str[l] = ',';
|
||||||
lastbrbeg->str[l + 1] = '\0';
|
lastbrbeg->str[l + 1] = '\0';
|
||||||
} else {
|
} else {
|
||||||
int l;
|
|
||||||
|
|
||||||
zlemetacs = minfo.pos + minfo.len + minfo.insc;
|
zlemetacs = minfo.pos + minfo.len + minfo.insc;
|
||||||
iremovesuffix(' ', 1);
|
if (!complistinword) {
|
||||||
l = zlemetacs;
|
int l;
|
||||||
zlemetacs = minfo.pos + minfo.len + minfo.insc - (*(minfo.cur))->qisl;
|
|
||||||
if (zlemetacs < l)
|
iremovesuffix(' ', 1);
|
||||||
foredel(l - zlemetacs, CUT_RAW);
|
l = zlemetacs;
|
||||||
else if (zlemetacs > zlemetall)
|
zlemetacs = minfo.pos + minfo.len + minfo.insc - (*(minfo.cur))->qisl;
|
||||||
zlemetacs = zlemetall;
|
if (zlemetacs < l)
|
||||||
inststrlen(" ", 1, 1);
|
foredel(l - zlemetacs, CUT_RAW);
|
||||||
|
else if (zlemetacs > zlemetall)
|
||||||
|
zlemetacs = zlemetall;
|
||||||
|
inststrlen(" ", 1, 1);
|
||||||
|
}
|
||||||
minfo.insc = minfo.len = 0;
|
minfo.insc = minfo.len = 0;
|
||||||
minfo.pos = zlemetacs;
|
minfo.pos = zlemetacs;
|
||||||
minfo.we = 1;
|
minfo.we = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!wasmeta)
|
if (!wasmeta)
|
||||||
unmetafy_line();
|
unmetafy_line();
|
||||||
|
|
Loading…
Reference in a new issue