Subject: bug#22107: 25.1; Wrong docstring for this-single-command-keys

From: Stefan Monnier <[email-masked]>
Date: Tue, 08 Dec 2015 23:53:05 -0500

>> > diff --git a/src/keyboard.c b/src/keyboard.c
>> > index 02bc7d2..e378b89 100644
>> > --- a/src/keyboard.c
>> > +++ b/src/keyboard.c
>> > @@ -1486,8 +1486,11 @@ command_loop_1 (void)
>> >        if (!CONSP (last_command_event))
>> >  	kset_last_repeatable_command (current_kboard, Vreal_this_command);
>> >
>> > -      this_command_key_count = 0;
>> > -      this_single_command_key_start = 0;
>> > +      if (NILP (KVAR (current_kboard, Vprefix_arg)))
>> > +	{
>> > +	  this_command_key_count = 0;
>> > +	  this_single_command_key_start = 0;
>> > +	}
>> >
>> >        if (current_kboard->immediate_echo
>> >  	  && !NILP (call0 (Qinternal_echo_keystrokes_prefix)))
>> 
>> My gut feeling is that this isn't quite right, because the new approach
>> basically never does anything special for Vprefix_arg (the overarching
>> design goal is to make prefix-arg completely non-special, to the point
>> where it should be possible to move it to Elisp, save for its use in
>> `interactive', IIRC).
> Bu the futzing with these indices cannot be done from Lisp, so what's
> the alternative?

Maybe your patch is OK but just needs to be changed so that instead of
checking prefix-arg we check "NILP (call0
(Qinternal_echo_keystrokes_prefix))".

        Stefan