diff options
author | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2015-08-09 18:40:54 +0100 |
---|---|---|
committer | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2015-08-09 18:40:54 +0100 |
commit | 249999cfb485914fe6f8630b1f4079e1227a5097 (patch) | |
tree | e5ed7a10759dfdabacea798e909de27cf05e07dd /Src | |
parent | 1122d83a6e508ddec5c6a9a04918a3646c667463 (diff) | |
download | zsh-249999cfb485914fe6f8630b1f4079e1227a5097.tar.gz zsh-249999cfb485914fe6f8630b1f4079e1227a5097.tar.xz zsh-249999cfb485914fe6f8630b1f4079e1227a5097.zip |
36025: Fix completion aftoer "foo=bar; setopt ".
Done by catching a case that doesn't seem to be handled otherwise, so there's some hope it doesn't screw up too much.
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Zle/zle_tricky.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 3bf8d4572..b87b99b00 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -1175,9 +1175,19 @@ get_comp_string(void) do { qsub = noword = 0; - lincmd = ((incmdpos && !ins && !incond) || - (oins == 2 && wordpos == 2) || - (ins == 3 && wordpos == 1)); + /* + * pws: added cmdtok == NULLTOK test as fallback for detecting + * we haven't had a command yet. This is a cop out: it's needed + * after SEPER because of bizarre and incomprehensible dance + * that we otherwise do involving the "ins" flag when you might + * have thought we'd just reset everything because we're now + * considering a new command. Consequently, although this looks + * relatively harmless by itself, it's probably incomplete. + */ + lincmd = (incmdpos && !ins && !incond) || + (oins == 2 && wordpos == 2) || + (ins == 3 && wordpos == 1) || + (cmdtok == NULLTOK && !incond); linredir = (inredir && !ins); oins = ins; /* Get the next token. */ |