summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Src/Zle/zle_tricky.c15
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)