emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r115452: * lisp/bindings.el: Map kp keys to non-kp k


From: Juri Linkov
Subject: [Emacs-diffs] trunk r115452: * lisp/bindings.el: Map kp keys to non-kp keys systematically
Date: Wed, 11 Dec 2013 00:45:14 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115452
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/14397
committer: Juri Linkov <address@hidden>
branch nick: trunk
timestamp: Wed 2013-12-11 02:45:10 +0200
message:
  * lisp/bindings.el: Map kp keys to non-kp keys systematically
  with basic modifiers control, meta and shift.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/bindings.el               
bindings.el-20091113204419-o5vbwnq5f7feedwu-1013
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-12-11 00:27:27 +0000
+++ b/lisp/ChangeLog    2013-12-11 00:45:10 +0000
@@ -1,3 +1,8 @@
+2013-12-11  Juri Linkov  <address@hidden>
+
+       * bindings.el: Map kp keys to non-kp keys systematically
+       with basic modifiers control, meta and shift.  (Bug#14397)
+
 2013-12-11  Kenjiro NAKAYAMA <address@hidden>  (tiny change)
 
        * net/eww.el (eww-mode-map): Instead of "Quit" show "Exit" and

=== modified file 'lisp/bindings.el'
--- a/lisp/bindings.el  2013-11-11 05:18:53 +0000
+++ b/lisp/bindings.el  2013-12-11 00:45:10 +0000
@@ -1056,36 +1056,30 @@
 ;; FIXME: rather than list such mappings for every modifier-combination,
 ;;   we should come up with a way to do it generically, something like
 ;;   (define-key function-key-map [*-kp-home] [*-home])
-(define-key function-key-map [kp-home] [home])
-(define-key function-key-map [kp-left] [left])
-(define-key function-key-map [kp-up] [up])
-(define-key function-key-map [kp-right] [right])
-(define-key function-key-map [kp-down] [down])
-(define-key function-key-map [kp-prior] [prior])
-(define-key function-key-map [kp-next] [next])
-(define-key function-key-map [M-kp-next] [M-next])
-(define-key function-key-map [kp-end] [end])
-(define-key function-key-map [kp-begin] [begin])
-(define-key function-key-map [kp-insert] [insert])
+;; Currently we add keypad key combinations with basic modifiers
+;; (to complement plain bindings in "Keypad support" section in simple.el)
+;; Until [*-kp-home] is implemented, for more modifiers we could also use:
+;; (todo-powerset '(control meta shift hyper super alt))  (Bug#14397)
+(let ((modifiers '(nil (control) (meta) (control meta) (shift)
+                  (control shift) (meta shift) (control meta shift)))
+      (keys '((kp-delete delete) (kp-insert insert)
+             (kp-end end) (kp-down down) (kp-next next)
+             (kp-left left) (kp-begin begin) (kp-right right)
+             (kp-home home) (kp-up up) (kp-prior prior)
+             (kp-enter enter) (kp-decimal ?.)
+             (kp-0 ?0) (kp-1 ?1) (kp-2 ?2) (kp-3 ?3) (kp-4 ?4)
+             (kp-5 ?5) (kp-6 ?6) (kp-7 ?7) (kp-8 ?8) (kp-9 ?9)
+             (kp-add +) (kp-subtract -) (kp-multiply *) (kp-divide /))))
+  (dolist (pair keys)
+    (dolist (mod modifiers)
+      (define-key function-key-map
+       (vector (append mod (list (nth 0 pair))))
+       (vector (append mod (list (nth 1 pair))))))))
+
 (define-key function-key-map [backspace] [?\C-?])
 (define-key function-key-map [delete] [?\C-?])
 (define-key function-key-map [kp-delete] [?\C-?])
-(define-key function-key-map [S-kp-end] [S-end])
-(define-key function-key-map [S-kp-down] [S-down])
-(define-key function-key-map [S-kp-next] [S-next])
-(define-key function-key-map [S-kp-left] [S-left])
-(define-key function-key-map [S-kp-right] [S-right])
-(define-key function-key-map [S-kp-home] [S-home])
-(define-key function-key-map [S-kp-up] [S-up])
-(define-key function-key-map [S-kp-prior] [S-prior])
-(define-key function-key-map [C-S-kp-end] [C-S-end])
-(define-key function-key-map [C-S-kp-down] [C-S-down])
-(define-key function-key-map [C-S-kp-next] [C-S-next])
-(define-key function-key-map [C-S-kp-left] [C-S-left])
-(define-key function-key-map [C-S-kp-right] [C-S-right])
-(define-key function-key-map [C-S-kp-home] [C-S-home])
-(define-key function-key-map [C-S-kp-up] [C-S-up])
-(define-key function-key-map [C-S-kp-prior] [C-S-prior])
+
 ;; Don't bind shifted keypad numeric keys, they reportedly
 ;; interfere with the feature of some keyboards to produce
 ;; numbers when NumLock is off.
@@ -1097,14 +1091,14 @@
 ;(define-key function-key-map [S-kp-7] [S-home])
 ;(define-key function-key-map [S-kp-8] [S-up])
 ;(define-key function-key-map [S-kp-9] [S-prior])
-(define-key function-key-map [C-S-kp-1] [C-S-end])
-(define-key function-key-map [C-S-kp-2] [C-S-down])
-(define-key function-key-map [C-S-kp-3] [C-S-next])
-(define-key function-key-map [C-S-kp-4] [C-S-left])
-(define-key function-key-map [C-S-kp-6] [C-S-right])
-(define-key function-key-map [C-S-kp-7] [C-S-home])
-(define-key function-key-map [C-S-kp-8] [C-S-up])
-(define-key function-key-map [C-S-kp-9] [C-S-prior])
+;(define-key function-key-map [C-S-kp-1] [C-S-end])
+;(define-key function-key-map [C-S-kp-2] [C-S-down])
+;(define-key function-key-map [C-S-kp-3] [C-S-next])
+;(define-key function-key-map [C-S-kp-4] [C-S-left])
+;(define-key function-key-map [C-S-kp-6] [C-S-right])
+;(define-key function-key-map [C-S-kp-7] [C-S-home])
+;(define-key function-key-map [C-S-kp-8] [C-S-up])
+;(define-key function-key-map [C-S-kp-9] [C-S-prior])
 
 ;; Hitting C-SPC on text terminals, usually sends the ascii code 0 (aka C-@),
 ;; so we can't distinguish those two keys, but usually we consider C-SPC


reply via email to

[Prev in Thread] Current Thread [Next in Thread]