emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: uppercase->lowercase and function-key-map


From: Stefan Monnier
Subject: Re: uppercase->lowercase and function-key-map
Date: Fri, 24 May 2002 11:03:45 -0400

>     When ESC O H fails to be found in function-key-map and the `H' is
>     turned into `h' should `ESC O h' be looked up in function-key-map again ?
> 
>     My gut feeling says no and a comment in read_key_sequence agrees:
> 
>         /* If the sequence is unbound, see if we can hang a function key
>            off the end of it.  We only want to scan real keyboard input
>            for function key sequences, so if mock_input says that we're
>            re-reading old events, don't examine it.  */
> 
> I think that comment is inconclusive.  However, the manual says that
> key-translation-map operates on the output from function-key-map
> and not vice versa.  That suggests you are right.
> 
>     where the `fkey_start = prev_fkey_start' implies that we might rescan
>     the new key sequence for function-key-map bindings (whether and
>     when this rescan actually happen, I don't really know because the
>     code is not the clearest ever).
> 
> That could be a bug.  The results of key-translation-map translations
> should not be reprocessed through function-key-map.

By "`H' is turned into `h'" above I meant "by the upper->lower mechanism"
rather than by key-translation-map.  More to the point, my question
completely disregarded key-translation-map (it's complex enough without it).

So to repeat it: if `ESC O H' is not found in the function-key-map
and neither in key-translation-map and neither in any active map,
Emacs will turn it into `ESC O h' and "try again".

Now should the "try again" include looking up function-key-map ?
And/or should the "try again" include looking up key-translation-map ?
Or should it only include looking up normal active keymaps ?


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]