Subject: bug#4117: 23.1; isearch + isearch-allow-scroll loses shift

From: Stefan Monnier <[email-masked]>
Date: Mon, 17 Aug 2009 22:56:44 -0400

> Actually the solution is much simpler.  I just noticed that
> `read-key-sequence' already has the necessary argument
> `dont-downcase-last':

>   The third (optional) arg dont-downcase-last, if non-nil, means do not
>   convert the last event to lower case.  (Normally any upper case event
>   is converted to lower case if the original event is undefined and the lower
>   case equivalent is defined.)  A non-nil value is appropriate for reading
>   a key sequence to be defined.

Yes, I guess that's better.  But at the same time, it still seems
incorrect: the sequence we get has gone through input-decode-map,
function-key-map, key-translation-map, keyboard-translate-table,
down-mouse and drag-mouse event may have been dropped, etc...

So stuffing it back into unread-command-events is incorrect.  I think
the right solution requires the use of something like
this-single-command-raw-keys.

        Stefan