mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-18 18:05:07 +00:00
* lisp/term/xterm.el (xterm-function-map): Support format used with
formatOtherKeys=1. Fixes: debbugs:13839
This commit is contained in:
parent
17f323276b
commit
d3e9f3a843
2
etc/NEWS
2
etc/NEWS
@ -264,6 +264,8 @@ file using `set-file-extended-attributes'.
|
||||
|
||||
* 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
|
||||
|
@ -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'.
|
||||
|
||||
|
@ -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.
|
||||
(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-\\])
|
||||
|
||||
(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-\\])
|
||||
(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 ??)])
|
||||
|
||||
(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 whose Meta and Alt
|
||||
;; modifiers are on the same key (usually labeled "Alt").
|
||||
(13 9 [C-M-tab])
|
||||
(13 13 [C-M-return])
|
||||
|
||||
;; 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])
|
||||
(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-\\])
|
||||
|
||||
(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-\\])
|
||||
(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 ??)])
|
||||
|
||||
(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 ??)])
|
||||
(7 9 [C-M-tab])
|
||||
(7 13 [C-M-return])
|
||||
|
||||
(define-key map "\e[27;7;9~" [C-M-tab])
|
||||
(define-key map "\e[27;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-\\])
|
||||
|
||||
(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-\\])
|
||||
(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 ??)])
|
||||
|
||||
(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 ??)])
|
||||
(2 9 [S-tab])
|
||||
(2 13 [S-return])
|
||||
|
||||
(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])
|
||||
(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])
|
||||
|
Loading…
Reference in New Issue
Block a user