]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/term/xterm.el (xterm-function-map): Support format used with
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 10 Mar 2013 21:44:31 +0000 (17:44 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 10 Mar 2013 21:44:31 +0000 (17:44 -0400)
formatOtherKeys=1.

Fixes: debbugs:13839
etc/NEWS
lisp/ChangeLog
lisp/term/xterm.el

index 29ff93999309a43071b9f968513d7322666a04a3..364dd8bf53aff66cca6d8417e06bc57a4ee36256 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -264,6 +264,8 @@ file using `set-file-extended-attributes'.
 \f
 * Lisp Changes in Emacs 24.4
 
+** `dont-compile' is declared obsolete.
+
 ** Support for filesystem notifications.
 Emacs now supports notifications of filesystem changes, such as
 creation, modification, and deletion of files.  This requires the
index 75fa55da3ebd2863e908f341c3a05bf052c314c8..b609b219fc95192d391048953e3a8613c8a30f86 100644 (file)
@@ -1,5 +1,8 @@
 2013-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * term/xterm.el (xterm-function-map): Support format used with
+       formatOtherKeys=1 (bug#13839).
+
        * emacs-lisp/byte-run.el (dont-compile): Declare obsolete.
        (with-no-warnings): Use `declare'.
 
index c03d64a2f5451fb76f46e42912b74eac999ac67c..ecaff7fe3a4f7f32e4fa6b6dd342160821ef1fdb 100644 (file)
@@ -251,120 +251,124 @@ The relevant features are:
 
     ;; These keys are available in xterm starting from version 216
     ;; if the modifyOtherKeys resource is set to 1.
-
-    (define-key map "\e[27;5;9~"   [C-tab])
-    (define-key map "\e[27;5;13~"  [C-return])
-    (define-key map "\e[27;5;39~"  [?\C-\'])
-    (define-key map "\e[27;5;44~"  [?\C-,])
-    (define-key map "\e[27;5;45~"  [?\C--])
-    (define-key map "\e[27;5;46~"  [?\C-.])
-    (define-key map "\e[27;5;47~"  [?\C-/])
-    (define-key map "\e[27;5;48~"  [?\C-0])
-    (define-key map "\e[27;5;49~"  [?\C-1])
-    ;; Not all C-DIGIT keys have a distinct binding.
-    (define-key map "\e[27;5;57~"  [?\C-9])
-    (define-key map "\e[27;5;59~"  [?\C-\;])
-    (define-key map "\e[27;5;61~"  [?\C-=])
-    (define-key map "\e[27;5;92~"  [?\C-\\])
-
-    (define-key map "\e[27;6;33~"  [?\C-!])
-    (define-key map "\e[27;6;34~"  [?\C-\"])
-    (define-key map "\e[27;6;35~"  [?\C-#])
-    (define-key map "\e[27;6;36~"  [?\C-$])
-    (define-key map "\e[27;6;37~"  [?\C-%])
-    (define-key map "\e[27;6;38~"  [?\C-&])
-    (define-key map "\e[27;6;40~"  [?\C-(])
-    (define-key map "\e[27;6;41~"  [?\C-)])
-    (define-key map "\e[27;6;42~"  [?\C-*])
-    (define-key map "\e[27;6;43~"  [?\C-+])
-    (define-key map "\e[27;6;58~"  [?\C-:])
-    (define-key map "\e[27;6;60~"  [?\C-<])
-    (define-key map "\e[27;6;62~"  [?\C->])
-    (define-key map "\e[27;6;63~"  [(control ??)])
-
-    ;; These are the strings emitted for various C-M- combinations
-    ;; for keyboards that the Meta and Alt modifiers are on the same
-    ;; key (usually labeled "Alt").
-    (define-key map "\e[27;13;9~"  [C-M-tab])
-    (define-key map "\e[27;13;13~" [C-M-return])
-
-    (define-key map "\e[27;13;39~" [?\C-\M-\'])
-    (define-key map "\e[27;13;44~" [?\C-\M-,])
-    (define-key map "\e[27;13;45~" [?\C-\M--])
-    (define-key map "\e[27;13;46~" [?\C-\M-.])
-    (define-key map "\e[27;13;47~" [?\C-\M-/])
-    (define-key map "\e[27;13;48~" [?\C-\M-0])
-    (define-key map "\e[27;13;49~" [?\C-\M-1])
-    (define-key map "\e[27;13;50~" [?\C-\M-2])
-    (define-key map "\e[27;13;51~" [?\C-\M-3])
-    (define-key map "\e[27;13;52~" [?\C-\M-4])
-    (define-key map "\e[27;13;53~" [?\C-\M-5])
-    (define-key map "\e[27;13;54~" [?\C-\M-6])
-    (define-key map "\e[27;13;55~" [?\C-\M-7])
-    (define-key map "\e[27;13;56~" [?\C-\M-8])
-    (define-key map "\e[27;13;57~" [?\C-\M-9])
-    (define-key map "\e[27;13;59~" [?\C-\M-\;])
-    (define-key map "\e[27;13;61~" [?\C-\M-=])
-    (define-key map "\e[27;13;92~" [?\C-\M-\\])
-
-    (define-key map "\e[27;14;33~"  [?\C-\M-!])
-    (define-key map "\e[27;14;34~"  [?\C-\M-\"])
-    (define-key map "\e[27;14;35~"  [?\C-\M-#])
-    (define-key map "\e[27;14;36~"  [?\C-\M-$])
-    (define-key map "\e[27;14;37~"  [?\C-\M-%])
-    (define-key map "\e[27;14;38~"  [?\C-\M-&])
-    (define-key map "\e[27;14;40~"  [?\C-\M-\(])
-    (define-key map "\e[27;14;41~"  [?\C-\M-\)])
-    (define-key map "\e[27;14;42~"  [?\C-\M-*])
-    (define-key map "\e[27;14;43~"  [?\C-\M-+])
-    (define-key map "\e[27;14;58~"  [?\C-\M-:])
-    (define-key map "\e[27;14;60~"  [?\C-\M-<])
-    (define-key map "\e[27;14;62~"  [?\C-\M->])
-    (define-key map "\e[27;14;63~"  [(control meta ??)])
-
-    (define-key map "\e[27;7;9~"  [C-M-tab])
-    (define-key map "\e[27;7;13~" [C-M-return])
-
-    (define-key map "\e[27;7;32~" [?\C-\M-\s])
-    (define-key map "\e[27;7;39~" [?\C-\M-\'])
-    (define-key map "\e[27;7;44~" [?\C-\M-,])
-    (define-key map "\e[27;7;45~" [?\C-\M--])
-    (define-key map "\e[27;7;46~" [?\C-\M-.])
-    (define-key map "\e[27;7;47~" [?\C-\M-/])
-    (define-key map "\e[27;7;48~" [?\C-\M-0])
-    (define-key map "\e[27;7;49~" [?\C-\M-1])
-    (define-key map "\e[27;7;50~" [?\C-\M-2])
-    (define-key map "\e[27;7;51~" [?\C-\M-3])
-    (define-key map "\e[27;7;52~" [?\C-\M-4])
-    (define-key map "\e[27;7;53~" [?\C-\M-5])
-    (define-key map "\e[27;7;54~" [?\C-\M-6])
-    (define-key map "\e[27;7;55~" [?\C-\M-7])
-    (define-key map "\e[27;7;56~" [?\C-\M-8])
-    (define-key map "\e[27;7;57~" [?\C-\M-9])
-    (define-key map "\e[27;7;59~" [?\C-\M-\;])
-    (define-key map "\e[27;7;61~" [?\C-\M-=])
-    (define-key map "\e[27;7;92~" [?\C-\M-\\])
-
-    (define-key map "\e[27;8;33~"  [?\C-\M-!])
-    (define-key map "\e[27;8;34~"  [?\C-\M-\"])
-    (define-key map "\e[27;8;35~"  [?\C-\M-#])
-    (define-key map "\e[27;8;36~"  [?\C-\M-$])
-    (define-key map "\e[27;8;37~"  [?\C-\M-%])
-    (define-key map "\e[27;8;38~"  [?\C-\M-&])
-    (define-key map "\e[27;8;40~"  [?\C-\M-\(])
-    (define-key map "\e[27;8;41~"  [?\C-\M-\)])
-    (define-key map "\e[27;8;42~"  [?\C-\M-*])
-    (define-key map "\e[27;8;43~"  [?\C-\M-+])
-    (define-key map "\e[27;8;58~"  [?\C-\M-:])
-    (define-key map "\e[27;8;60~"  [?\C-\M-<])
-    (define-key map "\e[27;8;62~"  [?\C-\M->])
-    (define-key map "\e[27;8;63~"  [(control meta ??)])
-
-    (define-key map "\e[27;2;9~"   [S-tab])
-    (define-key map "\e[27;2;13~"  [S-return])
-
-    (define-key map "\e[27;6;9~"   [C-S-tab])
-    (define-key map "\e[27;6;13~"  [C-S-return])
+    (dolist (bind '((5 9   [C-tab])
+                    (5 13  [C-return])
+                    (5 39  [?\C-\'])
+                    (5 44  [?\C-,])
+                    (5 45  [?\C--])
+                    (5 46  [?\C-.])
+                    (5 47  [?\C-/])
+                    (5 48  [?\C-0])
+                    (5 49  [?\C-1])
+                    ;; Not all C-DIGIT keys have a distinct binding.
+                    (5 57  [?\C-9])
+                    (5 59  [?\C-\;])
+                    (5 61  [?\C-=])
+                    (5 92  [?\C-\\])
+
+                    (6 33  [?\C-!])
+                    (6 34  [?\C-\"])
+                    (6 35  [?\C-#])
+                    (6 36  [?\C-$])
+                    (6 37  [?\C-%])
+                    (6 38  [?\C-&])
+                    (6 40  [?\C-\(])
+                    (6 41  [?\C-\)])
+                    (6 42  [?\C-*])
+                    (6 43  [?\C-+])
+                    (6 58  [?\C-:])
+                    (6 60  [?\C-<])
+                    (6 62  [?\C->])
+                    (6 63  [(control ??)])
+
+                    ;; These are the strings emitted for various C-M-
+                    ;; combinations for keyboards whose Meta and Alt
+                    ;; modifiers are on the same key (usually labeled "Alt").
+                    (13 9  [C-M-tab])
+                    (13 13 [C-M-return])
+
+                    (13 39 [?\C-\M-\'])
+                    (13 44 [?\C-\M-,])
+                    (13 45 [?\C-\M--])
+                    (13 46 [?\C-\M-.])
+                    (13 47 [?\C-\M-/])
+                    (13 48 [?\C-\M-0])
+                    (13 49 [?\C-\M-1])
+                    (13 50 [?\C-\M-2])
+                    (13 51 [?\C-\M-3])
+                    (13 52 [?\C-\M-4])
+                    (13 53 [?\C-\M-5])
+                    (13 54 [?\C-\M-6])
+                    (13 55 [?\C-\M-7])
+                    (13 56 [?\C-\M-8])
+                    (13 57 [?\C-\M-9])
+                    (13 59 [?\C-\M-\;])
+                    (13 61 [?\C-\M-=])
+                    (13 92 [?\C-\M-\\])
+
+                    (14 33  [?\C-\M-!])
+                    (14 34  [?\C-\M-\"])
+                    (14 35  [?\C-\M-#])
+                    (14 36  [?\C-\M-$])
+                    (14 37  [?\C-\M-%])
+                    (14 38  [?\C-\M-&])
+                    (14 40  [?\C-\M-\(])
+                    (14 41  [?\C-\M-\)])
+                    (14 42  [?\C-\M-*])
+                    (14 43  [?\C-\M-+])
+                    (14 58  [?\C-\M-:])
+                    (14 60  [?\C-\M-<])
+                    (14 62  [?\C-\M->])
+                    (14 63  [(control meta ??)])
+
+                    (7 9  [C-M-tab])
+                    (7 13 [C-M-return])
+
+                    (7 32 [?\C-\M-\s])
+                    (7 39 [?\C-\M-\'])
+                    (7 44 [?\C-\M-,])
+                    (7 45 [?\C-\M--])
+                    (7 46 [?\C-\M-.])
+                    (7 47 [?\C-\M-/])
+                    (7 48 [?\C-\M-0])
+                    (7 49 [?\C-\M-1])
+                    (7 50 [?\C-\M-2])
+                    (7 51 [?\C-\M-3])
+                    (7 52 [?\C-\M-4])
+                    (7 53 [?\C-\M-5])
+                    (7 54 [?\C-\M-6])
+                    (7 55 [?\C-\M-7])
+                    (7 56 [?\C-\M-8])
+                    (7 57 [?\C-\M-9])
+                    (7 59 [?\C-\M-\;])
+                    (7 61 [?\C-\M-=])
+                    (7 92 [?\C-\M-\\])
+
+                    (8 33  [?\C-\M-!])
+                    (8 34  [?\C-\M-\"])
+                    (8 35  [?\C-\M-#])
+                    (8 36  [?\C-\M-$])
+                    (8 37  [?\C-\M-%])
+                    (8 38  [?\C-\M-&])
+                    (8 40  [?\C-\M-\(])
+                    (8 41  [?\C-\M-\)])
+                    (8 42  [?\C-\M-*])
+                    (8 43  [?\C-\M-+])
+                    (8 58  [?\C-\M-:])
+                    (8 60  [?\C-\M-<])
+                    (8 62  [?\C-\M->])
+                    (8 63  [(control meta ??)])
+
+                    (2 9   [S-tab])
+                    (2 13  [S-return])
+
+                    (6 9   [C-S-tab])
+                    (6 13  [C-S-return])))
+      (define-key map
+        (format "\e[27;%d;%d~" (nth 0 bind) (nth 1 bind)) (nth 2 bind))
+      ;; For formatOtherKeys=1, the sequence is a bit shorter (bug#13839).
+      (define-key map
+        (format "\e[%d;%du" (nth 1 bind) (nth 0 bind)) (nth 2 bind)))
 
     ;; Other versions of xterm might emit these.
     (define-key map "\e[A" [up])