]> code.delx.au - gnu-emacs/commitdiff
(c-subword-mode-map): Use command remapping.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 26 Apr 2006 20:21:56 +0000 (20:21 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 26 Apr 2006 20:21:56 +0000 (20:21 +0000)
lisp/ChangeLog
lisp/progmodes/cc-subword.el

index dea1f0b9efe0e7733e8b083dd5c65d938d67708f..b599fb370d2187f65f8abd4a6dc5e1562e1072c1 100644 (file)
@@ -1,5 +1,7 @@
 2006-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * progmodes/cc-subword.el (c-subword-mode-map): Use command remapping.
+
        * add-log.el (add-log-iso8601-time-zone): Make parameter optional.
        (add-log-iso8601-time-string): Fix call to format-time-string.
 
index 6ba76708ebf446e54cf825fe05e5e67d1ca35394..b7ba04ad5900149b32951c5c779efa2f8f23daaf 100644 (file)
@@ -107,36 +107,19 @@ telling us which (X)Emacs version you're using."
 
   (defvar c-subword-mode-map
     (let ((map (make-sparse-keymap)))
-      (substitute-key-definition 'forward-word
-                                'c-forward-subword
-                                map global-map)
-      (substitute-key-definition 'backward-word
-                                'c-backward-subword
-                                map global-map)
-      (substitute-key-definition 'mark-word
-                                'c-mark-subword
-                                map global-map)
-    
-      (substitute-key-definition 'kill-word
-                                'c-kill-subword
-                                map global-map)
-      (substitute-key-definition 'backward-kill-word
-                                'c-backward-kill-subword
-                                map global-map)
-    
-      (substitute-key-definition 'transpose-words
-                                'c-transpose-subwords
-                                map global-map)
-    
-      (substitute-key-definition 'capitalize-word
-                                'c-capitalize-subword
-                                map global-map)
-      (substitute-key-definition 'upcase-word
-                                'c-upcase-subword
-                                map global-map)
-      (substitute-key-definition 'downcase-word
-                                'c-downcase-subword
-                                map global-map)
+      (dolist (cmd '(forward-word backward-word mark-word
+                     kill-word backward-kill-word
+                     transpose-words
+                     capitalize-word upcase-word downcase-word))
+        (let ((othercmd (let ((name (symbol-name cmd)))
+                          (string-match "\\(.*-\\)\\(word.*\\)" name)
+                          (intern (concat "c-"
+                                          (match-string 1 name)
+                                          "sub"
+                                          (match-string 2 name))))))
+          (if (fboundp 'command-remapping)
+              (define-key map (vector 'remap cmd) othercmd)
+            (substitute-key-definition cmd othercmd map global-map))))
       map)
     "Keymap used in command `c-subword-mode' minor mode.")
 
@@ -308,5 +291,5 @@ Optional argument ARG is the same as for `upcase-word'."
 \f
 (cc-provide 'cc-subword)
 
-;;; arch-tag: 2be9d294-7f30-4626-95e6-9964bb93c7a3
+;; arch-tag: 2be9d294-7f30-4626-95e6-9964bb93c7a3
 ;;; cc-subword.el ends here