diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 3294a609c..ba9541c94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-08-15 Peter Stephenson <p.w.stephenson@ntlworld.com> + + * users/14307: Src/Zle/zle_tricky.c: end of current command in + completion wasn't properly found when using variant zsh loop + or test syntax. + 2009-08-07 Peter Stephenson <pws@csr.com> * Andrew Psaltis: 27212: Completion/Linux/Command/_pkgtool: @@ -12070,5 +12076,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.4758 $ +* $Revision: 1.4759 $ ***************************************************** diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 1fcb4dee6..1856911dc 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -1211,7 +1211,15 @@ get_comp_string(void) (ins == 2 && i == 2) || (ins == 3 && i == 3) || tok == BAR || tok == AMPER || tok == BARAMP || tok == AMPERBANG || - ((tok == DBAR || tok == DAMPER) && !incond)) { + ((tok == DBAR || tok == DAMPER) && !incond) || + /* + * Special case: we might reach a new command (incmdpos set) + * if we've already found the string we're completing (tt set) + * without hitting one of the above if we're using one of + * the special zsh forms of delimiting for conditions and + * loops that I really loathe having to support. + */ + (tt && incmdpos)) { /* This is one of the things that separate commands. If we * * already have the things we need (e.g. the token strings), * * leave the loop. */ |