emacs-devel
[Top][All Lists]
Advanced

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

discrepancy between read-key-sequence and manual


From: David Kastrup
Subject: discrepancy between read-key-sequence and manual
Date: Mon, 11 Sep 2006 15:42:19 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

(info "(elisp) Active Keymaps")

states:

   Normally the active keymaps are the `keymap' property keymap, the
   keymaps of any enabled minor modes, the current buffer's local
   keymap, and the global keymap, in that order.  Therefore, Emacs
   searches for each input key sequence in all these keymaps.  Here is
   a pseudo-Lisp description of how this process works:

     (or (if overriding-terminal-local-map
             (FIND-IN overriding-terminal-local-map)
           (if overriding-local-map
               (FIND-IN overriding-local-map)
             (or (FIND-IN (get-text-property (point) 'keymap))
                 (FIND-IN-ANY emulation-mode-map-alists)
                 (FIND-IN-ANY minor-mode-overriding-map-alist)
                 (FIND-IN-ANY minor-mode-map-alist)
                 (if (get-text-property (point) 'local-map)
                     (FIND-IN (get-text-property (point) 'local-map))
                   (FIND-IN (current-local-map))))))
         (FIND-IN (current-global-map)))

However, the code in read-key-sequence actually does

    (or (if (or overriding-terminal-local-map
                overriding-local-map)
            (or (FIND-IN overriding-terminal-local-map)
                (FIND-IN overriding-local-map))
           [...]

Namely, if overriding-terminal-local-map is present but no match is
found in it, overriding-local-map is also searched for a match.

Should the code be made to match the documentation, or the other way
round?

-- 
David Kastrup, Kriemhildstr. 15, 44793 Bochum




reply via email to

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