summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--Src/Zle/zle_tricky.c10
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. */