changeset 112388:e5e8faa33346

(allout-institute-keymap): Use fset instead of reapplying defalias. (allout-hotspot-key-handler): Check for non-control-modified bindings for hotspot characters if there is no control-modified versions.
author Ken Manheimer <ken.manheimer@gmail.com>
date Thu, 20 Jan 2011 16:57:15 -0500
parents ac3e3168aca2
children 75fb060ecbc3
files lisp/allout.el
diffstat 1 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/allout.el	Thu Jan 20 13:13:30 2011 -0500
+++ b/lisp/allout.el	Thu Jan 20 16:57:15 2011 -0500
@@ -169,10 +169,11 @@
   ;; used in minor-mode-map-alist to indirect to the actual
   ;; allout-mode-map-var value, which can be adjusted and reassigned.
 
+  ;; allout-mode-map-value for keymap reference in various places:
   (setq allout-mode-map-value map)
-  ;; The defalias reexecution is necessary when allout-mode-map-value is
-  ;; changing from nil, and it doesn't hurt to do it every time, so:
-  (defalias 'allout-mode-map allout-mode-map-value))
+  ;; the function value keymap of allout-mode-map is used in
+  ;; minor-mode-map-alist - update it:
+  (fset allout-mode-map allout-mode-map-value))
 ;;;_  * intialize the mode map:
 ;; ensure that allout-mode-map has some setting even if allout-mode hasn't
 ;; been invoked:
@@ -3416,13 +3417,18 @@
            (not modified)
            (<= 33 key-num)
            (setq mapped-binding
-                 ;; translate as a keybinding:
-                 (key-binding (vconcat allout-command-prefix
-                                       (vector
-                                        (if (and (<= 97 key-num) ; "a"
-                                                 (>= 122 key-num)) ; "z"
-                                            (- key-num 96) key-num)))
-                              t)))
+                 (or
+                  ;; try control-modified versions of keys:
+                  (key-binding (vconcat allout-command-prefix
+                                        (vector
+                                         (if (and (<= 97 key-num) ; "a"
+                                                  (>= 122 key-num)) ; "z"
+                                             (- key-num 96) key-num)))
+                               t)
+                  ;; try non-modified versions of keys:
+                  (key-binding (vconcat allout-command-prefix
+                                        (vector key-num))
+                               t))))
           ;; Qualified as an allout command -- do hot-spot operation.
           (setq allout-post-goto-bullet t)
         ;; accept-defaults nil, or else we get allout-item-icon-key-handler.