|
| From: | Lennart Borgman |
| Subject: | Re: Function for deleting a key binding in a sparse keymap |
| Date: | Mon, 12 Dec 2005 02:41:16 +0100 |
| User-agent: | Mozilla Thunderbird 1.0.7 (Windows/20050923) |
Richard M. Stallman wrote:
But even better, don't use labels! Gotos are not a clear way to
express a program. It would be clearer to try to express this as
(if overriding-terminal-local-map
(look-in overriding-terminal-local-map)
(if overriding-local-map
(look-in overriding-local-map)
(look-in (get-char-property (point) 'keymap))
etc.))
which involves no labels or gotos.
I a little bit doubt it is readable outside a buffer in Emacs-Lisp mode.
Here is a version I have made to see how it looks:
(unless (FIND-IN special-event-map)
(if overriding-terminal-local-map
(FIND-IN overriding-terminal-local-map)
(if overriding-local-map
(FIND-IN overriding-local-map)
(unless (FIND-IN (KEYMAP-PROPERTY-AT-POINT))
(unless (FIND-IN-ANY EMULATION-MODE-MAP-ALISTS)
(unless (FIND-IN-ANY minor-mode-overriding-map-alist)
(unless (FIND-IN-ANY minor-mode-map-alist)
(unless (FIND-IN (LOCAL-MAP-PROPERTY-AT-POINT))
(FIND-IN (current-local-map))))))))))
(unless FOUND
(FIND-IN (current-global-map)))
I think it would need some explanation too.
| [Prev in Thread] | Current Thread | [Next in Thread] |