Hi,

(I'm not subscribed so I could not reply to the last message)

I could reproduce the issue by pressing delete twice in
examples/rl-callbacktest.  After debugging the issue, I found that when
the first delete is pressed, at some point at readline.c:747, r is -1 so
it fails to call the RL_UNSETSTATE line.  After comparing with rl-6.2, I
found the cause of the problem to be in readline.c:
 rl_dispatching = 1;
 RL_SETSTATE(RL_STATE_DISPATCHING);
-(*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
+r = (*func) (rl_numeric_arg * rl_arg_sign, key);
 RL_UNSETSTATE(RL_STATE_DISPATCHING);
 rl_dispatching = 0;

The dispatcher calls rl_delete() which calls rl_ding() and returns -1
which gets stored as r and hence causes RL_STATE_MULTIKEY not to be set.
In rl-6.2, rl_delete() also returns -1 but r is not stored so it
doesn't fail.

I'm not sure as to the solution or why the change was made but it seems
to be the cause of the problem.

Cheers, and thanks for Bash and Readline
-- 
Ross Lagerwall

_______________________________________________
Bug-readline mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-readline

Reply via email to