# HG changeset patch # User Richard M. Stallman # Date 897850991 0 # Node ID b469abbc998477cf2d29408fdac3287d9d5c86c1 # Parent 661650f543eeef3054c5feac34c114466dfb7125 (Fcall_interactively) : If sequence ends in a down event, discard following up event. diff -r 661650f543ee -r b469abbc9984 src/callint.c --- a/src/callint.c Sun Jun 14 19:01:34 1998 +0000 +++ b/src/callint.c Sun Jun 14 19:03:11 1998 +0000 @@ -553,6 +553,21 @@ 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 @@ 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;