From f6f8152f4bd5f9774791dd20336d3e6ae357cf03 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Sat, 9 Feb 2008 17:32:42 +0000 Subject: 24542: fix RC_QUOTES completion if opening quote not at start of string --- ChangeLog | 6 ++++++ 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 + + * 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 * 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) -- cgit 1.4.1