changeset 70238:1be7d556ba69

(c-subword-mode-map): Use command remapping.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 26 Apr 2006 20:21:56 +0000
parents 1cc4411c326c
children ad23aa667a59
files lisp/ChangeLog lisp/progmodes/cc-subword.el
diffstat 2 files changed, 16 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Apr 26 19:32:20 2006 +0000
+++ b/lisp/ChangeLog	Wed Apr 26 20:21:56 2006 +0000
@@ -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.
 
--- a/lisp/progmodes/cc-subword.el	Wed Apr 26 19:32:20 2006 +0000
+++ b/lisp/progmodes/cc-subword.el	Wed Apr 26 20:21:56 2006 +0000
@@ -107,36 +107,19 @@
 
   (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 @@
 
 (cc-provide 'cc-subword)
 
-;;; arch-tag: 2be9d294-7f30-4626-95e6-9964bb93c7a3
+;; arch-tag: 2be9d294-7f30-4626-95e6-9964bb93c7a3
 ;;; cc-subword.el ends here