From: Richard M. Stallman Date: Sun, 14 Jun 1998 19:03:11 +0000 (+0000) Subject: (Fcall_interactively) : If sequence ends in a down X-Git-Tag: emacs-20.3~594 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cdfac812762e9247e957408625b41332dfcdad30;p=emacs.git (Fcall_interactively) : If sequence ends in a down event, discard following up event. --- diff --git a/src/callint.c b/src/callint.c index 479372a6c8c..eb60907d7f6 100644 --- a/src/callint.c +++ b/src/callint.c @@ -553,6 +553,21 @@ Otherwise, this is done only if an arg is read using the minibuffer.") unbind_to (speccount1, Qnil); teml = args[i]; visargs[i] = Fkey_description (teml); + + /* If the key sequence ends with a down-event, + discard the following up-event. */ + teml = Faref (args[i], make_number (XINT (Flength (args[i])) - 1)); + if (CONSP (teml)) + teml = XCONS (teml)->car; + if (SYMBOLP (teml)) + { + Lisp_Object tem2; + + teml = Fget (teml, intern ("event-symbol-elements")); + tem2 = Fmemq (intern ("down"), teml); + if (! NILP (tem2)) + Fread_event (); + } } break; @@ -565,6 +580,21 @@ Otherwise, this is done only if an arg is read using the minibuffer.") teml = args[i]; visargs[i] = Fkey_description (teml); unbind_to (speccount1, Qnil); + + /* If the key sequence ends with a down-event, + discard the following up-event. */ + teml = Faref (args[i], make_number (XINT (Flength (args[i])) - 1)); + if (CONSP (teml)) + teml = XCONS (teml)->car; + if (SYMBOLP (teml)) + { + Lisp_Object tem2; + + teml = Fget (teml, intern ("event-symbol-elements")); + tem2 = Fmemq (intern ("down"), teml); + if (! NILP (tem2)) + Fread_event (); + } } break;