summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2014-03-28 14:07:42 -0400
committerChet Ramey <chet.ramey@case.edu>2014-03-28 14:07:42 -0400
commit8ef852a5be72c75e17f2510bea52455f809b56ce (patch)
treedd9b51cfb9c6a4eab793003e794ef6d76a1f9fac
parent4968fa4c64549bb09f4e9afc2269b4e4908e5b98 (diff)
downloadreadline-8ef852a5be72c75e17f2510bea52455f809b56ce.tar.gz
Readline-6.3 patch 2
-rw-r--r--patchlevel2
-rw-r--r--readline.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/patchlevel b/patchlevel
index fdf4740..7cbda82 100644
--- a/patchlevel
+++ b/patchlevel
@@ -1,3 +1,3 @@
# Do not edit -- exists only for use by patch
-1
+2
diff --git a/readline.c b/readline.c
index eb4eae3..abb29a0 100644
--- a/readline.c
+++ b/readline.c
@@ -744,7 +744,8 @@ _rl_dispatch_callback (cxt)
r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ));
RL_CHECK_SIGNALS ();
- if (r == 0) /* success! */
+ /* We only treat values < 0 specially to simulate recursion. */
+ if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */
{
_rl_keyseq_chain_dispose ();
RL_UNSETSTATE (RL_STATE_MULTIKEY);