ram-ashwin@YALE.ARPA (Ashwin Ram) (11/04/88)
GNU Emacs 18.48.0 of Thu Oct 27 1988 on leo.ring.cs.yale.edu (domain/ix)
When I do a M-x info, the ^C^C binding in my text-mode buffers gets screwed
up (it puts the text-mode buffer into info-mode). Presumably the problem is
with the following code in lisp/info.el:
(defvar Info-edit-map nil
"Local keymap used within `e' command of Info.")
(if Info-edit-map
nil
(setq Info-edit-map (copy-keymap text-mode-map))
(define-key Info-edit-map "\C-c\C-c" 'Info-cease-edit))
Info-edit-map should be independent of text-mode-map, but copy-keymap does
not do this correctly.
-----
Situations like this occur pretty often (e.g., TeX-shell is a copy of
shell-mode). Rather than making a deep copy of a keymap just to change one
or two bindings (inefficient), or using a shallow copy (incorrect), why not
allow a keymap to have a "superior" keymap that it inherits bindings from?
At present, all bindings are inherited from the global-map unless explicitly
overruled by a local map. I suggest that this idea should be extended so
that a keymap can specify where to default to. E.g., Info-edit-map -->
text-mode-map --> global-map. This might be represented, say, by
representing the superior keymap, if any, as a non-nil lastcdr of the keymap,
and adding user functions to access and change this.
-- Ashwin.
ARPA: Ram-Ashwin@cs.yale.edu
UUCP: {decvax,ucbvax,harvard,cmcl2,...}!yale!Ram-Ashwin
BITNET: Ram@yalecs