diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 15 |
2 files changed, 16 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 19b706ae0..ee755072a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-02-09 Peter Stephenson <p.w.stephenson@ntlworld.com> + + * 24542: Src/Zle/zle_tricky.c: RC_QUOTES wasn't handled + if the opening quote wasn't at the start of the word, causing + endless looping. + 2008-02-07 Clint Adams <clint@zsh.org> * unposted: Functions/Misc/run-help-git, diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 09e4ae8e1..2266b56d7 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -1230,11 +1230,16 @@ get_comp_string(void) /* This is done when the lexer reached the word the cursor is on. */ tt = tokstr ? dupstring(tokstr) : NULL; - if (isset(RCQUOTES) && *tt == Snull) { - char *p, *e = tt + zlemetacs - wb; - for (p = tt; *p && p < e; p++) - if (*p == '\'') - qsub++; + if (isset(RCQUOTES)) { + char *tt1, *e = tt + zlemetacs - wb; + for (tt1 = tt; *tt1; tt1++) { + if (*tt1 == Snull) { + char *p; + for (p = tt1; *p && p < e; p++) + if (*p == '\'') + qsub++; + } + } } /* If we added a `x', remove it. */ if (addedx && tt) |