]> code.delx.au - gnu-emacs-elpa/commitdiff
Use map-keymap
authorDmitry Gutov <dgutov@yandex.ru>
Mon, 24 Sep 2012 22:06:43 +0000 (02:06 +0400)
committerDmitry Gutov <dgutov@yandex.ru>
Mon, 24 Sep 2012 22:30:40 +0000 (02:30 +0400)
diff-hl.el

index 11667c3c5f6da71e90551a206ce94f6d51e5ff10..d237da454d51e15662e7164b27b8fcd47a112df4 100644 (file)
@@ -326,10 +326,16 @@ in the source file, or the last line of the hunk above it."
 \r
 (when (require 'smartrep nil t)\r
   (let (smart-keys)\r
-    (dolist (c '("n" "[" "]"))\r
-      (let* ((cmd (lookup-key diff-hl-mode-map (kbd (concat "C-x v " c)))))\r
-        (push (cons c cmd) smart-keys)))\r
-    (smartrep-define-key diff-hl-mode-map "C-x v" smart-keys)))\r
+    (cl-labels ((scan (map)\r
+                      (map-keymap\r
+                       (lambda (event binding)\r
+                         (if (consp binding)\r
+                             (scan binding)\r
+                           (when (characterp event)\r
+                             (push (cons (string event) binding) smart-keys))))\r
+                       map)))\r
+      (scan diff-hl-mode-map)\r
+      (smartrep-define-key diff-hl-mode-map "C-x v" smart-keys))))\r
 \r
 (defun diff-hl-dir-update ()\r
   (dolist (pair (if (vc-dir-marked-files)\r