diff options
| author | Stefan Monnier | 2013-03-10 17:44:31 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2013-03-10 17:44:31 -0400 |
| commit | d3e9f3a8431d8d3e132b19f9b5181e8afed2d1db (patch) | |
| tree | e903be8c489e60a9a3aa1c5c12904fc76fd4a5e3 | |
| parent | 17f323276b7dea5410d8f495015ebd170ef14091 (diff) | |
| download | emacs-d3e9f3a8431d8d3e132b19f9b5181e8afed2d1db.tar.gz emacs-d3e9f3a8431d8d3e132b19f9b5181e8afed2d1db.zip | |
* lisp/term/xterm.el (xterm-function-map): Support format used with
formatOtherKeys=1.
Fixes: debbugs:13839
| -rw-r--r-- | etc/NEWS | 2 | ||||
| -rw-r--r-- | lisp/ChangeLog | 3 | ||||
| -rw-r--r-- | lisp/term/xterm.el | 232 |
3 files changed, 123 insertions, 114 deletions
| @@ -264,6 +264,8 @@ file using `set-file-extended-attributes'. | |||
| 264 | 264 | ||
| 265 | * Lisp Changes in Emacs 24.4 | 265 | * Lisp Changes in Emacs 24.4 |
| 266 | 266 | ||
| 267 | ** `dont-compile' is declared obsolete. | ||
| 268 | |||
| 267 | ** Support for filesystem notifications. | 269 | ** Support for filesystem notifications. |
| 268 | Emacs now supports notifications of filesystem changes, such as | 270 | Emacs now supports notifications of filesystem changes, such as |
| 269 | creation, modification, and deletion of files. This requires the | 271 | creation, modification, and deletion of files. This requires the |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 75fa55da3eb..b609b219fc9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 2013-03-10 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2013-03-10 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * term/xterm.el (xterm-function-map): Support format used with | ||
| 4 | formatOtherKeys=1 (bug#13839). | ||
| 5 | |||
| 3 | * emacs-lisp/byte-run.el (dont-compile): Declare obsolete. | 6 | * emacs-lisp/byte-run.el (dont-compile): Declare obsolete. |
| 4 | (with-no-warnings): Use `declare'. | 7 | (with-no-warnings): Use `declare'. |
| 5 | 8 | ||
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index c03d64a2f54..ecaff7fe3a4 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el | |||
| @@ -251,120 +251,124 @@ The relevant features are: | |||
| 251 | 251 | ||
| 252 | ;; These keys are available in xterm starting from version 216 | 252 | ;; These keys are available in xterm starting from version 216 |
| 253 | ;; if the modifyOtherKeys resource is set to 1. | 253 | ;; if the modifyOtherKeys resource is set to 1. |
| 254 | 254 | (dolist (bind '((5 9 [C-tab]) | |
| 255 | (define-key map "\e[27;5;9~" [C-tab]) | 255 | (5 13 [C-return]) |
| 256 | (define-key map "\e[27;5;13~" [C-return]) | 256 | (5 39 [?\C-\']) |
| 257 | (define-key map "\e[27;5;39~" [?\C-\']) | 257 | (5 44 [?\C-,]) |
| 258 | (define-key map "\e[27;5;44~" [?\C-,]) | 258 | (5 45 [?\C--]) |
| 259 | (define-key map "\e[27;5;45~" [?\C--]) | 259 | (5 46 [?\C-.]) |
| 260 | (define-key map "\e[27;5;46~" [?\C-.]) | 260 | (5 47 [?\C-/]) |
| 261 | (define-key map "\e[27;5;47~" [?\C-/]) | 261 | (5 48 [?\C-0]) |
| 262 | (define-key map "\e[27;5;48~" [?\C-0]) | 262 | (5 49 [?\C-1]) |
| 263 | (define-key map "\e[27;5;49~" [?\C-1]) | 263 | ;; Not all C-DIGIT keys have a distinct binding. |
| 264 | ;; Not all C-DIGIT keys have a distinct binding. | 264 | (5 57 [?\C-9]) |
| 265 | (define-key map "\e[27;5;57~" [?\C-9]) | 265 | (5 59 [?\C-\;]) |
| 266 | (define-key map "\e[27;5;59~" [?\C-\;]) | 266 | (5 61 [?\C-=]) |
| 267 | (define-key map "\e[27;5;61~" [?\C-=]) | 267 | (5 92 [?\C-\\]) |
| 268 | (define-key map "\e[27;5;92~" [?\C-\\]) | 268 | |
| 269 | 269 | (6 33 [?\C-!]) | |
| 270 | (define-key map "\e[27;6;33~" [?\C-!]) | 270 | (6 34 [?\C-\"]) |
| 271 | (define-key map "\e[27;6;34~" [?\C-\"]) | 271 | (6 35 [?\C-#]) |
| 272 | (define-key map "\e[27;6;35~" [?\C-#]) | 272 | (6 36 [?\C-$]) |
| 273 | (define-key map "\e[27;6;36~" [?\C-$]) | 273 | (6 37 [?\C-%]) |
| 274 | (define-key map "\e[27;6;37~" [?\C-%]) | 274 | (6 38 [?\C-&]) |
| 275 | (define-key map "\e[27;6;38~" [?\C-&]) | 275 | (6 40 [?\C-\(]) |
| 276 | (define-key map "\e[27;6;40~" [?\C-(]) | 276 | (6 41 [?\C-\)]) |
| 277 | (define-key map "\e[27;6;41~" [?\C-)]) | 277 | (6 42 [?\C-*]) |
| 278 | (define-key map "\e[27;6;42~" [?\C-*]) | 278 | (6 43 [?\C-+]) |
| 279 | (define-key map "\e[27;6;43~" [?\C-+]) | 279 | (6 58 [?\C-:]) |
| 280 | (define-key map "\e[27;6;58~" [?\C-:]) | 280 | (6 60 [?\C-<]) |
| 281 | (define-key map "\e[27;6;60~" [?\C-<]) | 281 | (6 62 [?\C->]) |
| 282 | (define-key map "\e[27;6;62~" [?\C->]) | 282 | (6 63 [(control ??)]) |
| 283 | (define-key map "\e[27;6;63~" [(control ??)]) | 283 | |
| 284 | 284 | ;; These are the strings emitted for various C-M- | |
| 285 | ;; These are the strings emitted for various C-M- combinations | 285 | ;; combinations for keyboards whose Meta and Alt |
| 286 | ;; for keyboards that the Meta and Alt modifiers are on the same | 286 | ;; modifiers are on the same key (usually labeled "Alt"). |
| 287 | ;; key (usually labeled "Alt"). | 287 | (13 9 [C-M-tab]) |
| 288 | (define-key map "\e[27;13;9~" [C-M-tab]) | 288 | (13 13 [C-M-return]) |
| 289 | (define-key map "\e[27;13;13~" [C-M-return]) | 289 | |
| 290 | 290 | (13 39 [?\C-\M-\']) | |
| 291 | (define-key map "\e[27;13;39~" [?\C-\M-\']) | 291 | (13 44 [?\C-\M-,]) |
| 292 | (define-key map "\e[27;13;44~" [?\C-\M-,]) | 292 | (13 45 [?\C-\M--]) |
| 293 | (define-key map "\e[27;13;45~" [?\C-\M--]) | 293 | (13 46 [?\C-\M-.]) |
| 294 | (define-key map "\e[27;13;46~" [?\C-\M-.]) | 294 | (13 47 [?\C-\M-/]) |
| 295 | (define-key map "\e[27;13;47~" [?\C-\M-/]) | 295 | (13 48 [?\C-\M-0]) |
| 296 | (define-key map "\e[27;13;48~" [?\C-\M-0]) | 296 | (13 49 [?\C-\M-1]) |
| 297 | (define-key map "\e[27;13;49~" [?\C-\M-1]) | 297 | (13 50 [?\C-\M-2]) |
| 298 | (define-key map "\e[27;13;50~" [?\C-\M-2]) | 298 | (13 51 [?\C-\M-3]) |
| 299 | (define-key map "\e[27;13;51~" [?\C-\M-3]) | 299 | (13 52 [?\C-\M-4]) |
| 300 | (define-key map "\e[27;13;52~" [?\C-\M-4]) | 300 | (13 53 [?\C-\M-5]) |
| 301 | (define-key map "\e[27;13;53~" [?\C-\M-5]) | 301 | (13 54 [?\C-\M-6]) |
| 302 | (define-key map "\e[27;13;54~" [?\C-\M-6]) | 302 | (13 55 [?\C-\M-7]) |
| 303 | (define-key map "\e[27;13;55~" [?\C-\M-7]) | 303 | (13 56 [?\C-\M-8]) |
| 304 | (define-key map "\e[27;13;56~" [?\C-\M-8]) | 304 | (13 57 [?\C-\M-9]) |
| 305 | (define-key map "\e[27;13;57~" [?\C-\M-9]) | 305 | (13 59 [?\C-\M-\;]) |
| 306 | (define-key map "\e[27;13;59~" [?\C-\M-\;]) | 306 | (13 61 [?\C-\M-=]) |
| 307 | (define-key map "\e[27;13;61~" [?\C-\M-=]) | 307 | (13 92 [?\C-\M-\\]) |
| 308 | (define-key map "\e[27;13;92~" [?\C-\M-\\]) | 308 | |
| 309 | 309 | (14 33 [?\C-\M-!]) | |
| 310 | (define-key map "\e[27;14;33~" [?\C-\M-!]) | 310 | (14 34 [?\C-\M-\"]) |
| 311 | (define-key map "\e[27;14;34~" [?\C-\M-\"]) | 311 | (14 35 [?\C-\M-#]) |
| 312 | (define-key map "\e[27;14;35~" [?\C-\M-#]) | 312 | (14 36 [?\C-\M-$]) |
| 313 | (define-key map "\e[27;14;36~" [?\C-\M-$]) | 313 | (14 37 [?\C-\M-%]) |
| 314 | (define-key map "\e[27;14;37~" [?\C-\M-%]) | 314 | (14 38 [?\C-\M-&]) |
| 315 | (define-key map "\e[27;14;38~" [?\C-\M-&]) | 315 | (14 40 [?\C-\M-\(]) |
| 316 | (define-key map "\e[27;14;40~" [?\C-\M-\(]) | 316 | (14 41 [?\C-\M-\)]) |
| 317 | (define-key map "\e[27;14;41~" [?\C-\M-\)]) | 317 | (14 42 [?\C-\M-*]) |
| 318 | (define-key map "\e[27;14;42~" [?\C-\M-*]) | 318 | (14 43 [?\C-\M-+]) |
| 319 | (define-key map "\e[27;14;43~" [?\C-\M-+]) | 319 | (14 58 [?\C-\M-:]) |
| 320 | (define-key map "\e[27;14;58~" [?\C-\M-:]) | 320 | (14 60 [?\C-\M-<]) |
| 321 | (define-key map "\e[27;14;60~" [?\C-\M-<]) | 321 | (14 62 [?\C-\M->]) |
| 322 | (define-key map "\e[27;14;62~" [?\C-\M->]) | 322 | (14 63 [(control meta ??)]) |
| 323 | (define-key map "\e[27;14;63~" [(control meta ??)]) | 323 | |
| 324 | 324 | (7 9 [C-M-tab]) | |
| 325 | (define-key map "\e[27;7;9~" [C-M-tab]) | 325 | (7 13 [C-M-return]) |
| 326 | (define-key map "\e[27;7;13~" [C-M-return]) | 326 | |
| 327 | 327 | (7 32 [?\C-\M-\s]) | |
| 328 | (define-key map "\e[27;7;32~" [?\C-\M-\s]) | 328 | (7 39 [?\C-\M-\']) |
| 329 | (define-key map "\e[27;7;39~" [?\C-\M-\']) | 329 | (7 44 [?\C-\M-,]) |
| 330 | (define-key map "\e[27;7;44~" [?\C-\M-,]) | 330 | (7 45 [?\C-\M--]) |
| 331 | (define-key map "\e[27;7;45~" [?\C-\M--]) | 331 | (7 46 [?\C-\M-.]) |
| 332 | (define-key map "\e[27;7;46~" [?\C-\M-.]) | 332 | (7 47 [?\C-\M-/]) |
| 333 | (define-key map "\e[27;7;47~" [?\C-\M-/]) | 333 | (7 48 [?\C-\M-0]) |
| 334 | (define-key map "\e[27;7;48~" [?\C-\M-0]) | 334 | (7 49 [?\C-\M-1]) |
| 335 | (define-key map "\e[27;7;49~" [?\C-\M-1]) | 335 | (7 50 [?\C-\M-2]) |
| 336 | (define-key map "\e[27;7;50~" [?\C-\M-2]) | 336 | (7 51 [?\C-\M-3]) |
| 337 | (define-key map "\e[27;7;51~" [?\C-\M-3]) | 337 | (7 52 [?\C-\M-4]) |
| 338 | (define-key map "\e[27;7;52~" [?\C-\M-4]) | 338 | (7 53 [?\C-\M-5]) |
| 339 | (define-key map "\e[27;7;53~" [?\C-\M-5]) | 339 | (7 54 [?\C-\M-6]) |
| 340 | (define-key map "\e[27;7;54~" [?\C-\M-6]) | 340 | (7 55 [?\C-\M-7]) |
| 341 | (define-key map "\e[27;7;55~" [?\C-\M-7]) | 341 | (7 56 [?\C-\M-8]) |
| 342 | (define-key map "\e[27;7;56~" [?\C-\M-8]) | 342 | (7 57 [?\C-\M-9]) |
| 343 | (define-key map "\e[27;7;57~" [?\C-\M-9]) | 343 | (7 59 [?\C-\M-\;]) |
| 344 | (define-key map "\e[27;7;59~" [?\C-\M-\;]) | 344 | (7 61 [?\C-\M-=]) |
| 345 | (define-key map "\e[27;7;61~" [?\C-\M-=]) | 345 | (7 92 [?\C-\M-\\]) |
| 346 | (define-key map "\e[27;7;92~" [?\C-\M-\\]) | 346 | |
| 347 | 347 | (8 33 [?\C-\M-!]) | |
| 348 | (define-key map "\e[27;8;33~" [?\C-\M-!]) | 348 | (8 34 [?\C-\M-\"]) |
| 349 | (define-key map "\e[27;8;34~" [?\C-\M-\"]) | 349 | (8 35 [?\C-\M-#]) |
| 350 | (define-key map "\e[27;8;35~" [?\C-\M-#]) | 350 | (8 36 [?\C-\M-$]) |
| 351 | (define-key map "\e[27;8;36~" [?\C-\M-$]) | 351 | (8 37 [?\C-\M-%]) |
| 352 | (define-key map "\e[27;8;37~" [?\C-\M-%]) | 352 | (8 38 [?\C-\M-&]) |
| 353 | (define-key map "\e[27;8;38~" [?\C-\M-&]) | 353 | (8 40 [?\C-\M-\(]) |
| 354 | (define-key map "\e[27;8;40~" [?\C-\M-\(]) | 354 | (8 41 [?\C-\M-\)]) |
| 355 | (define-key map "\e[27;8;41~" [?\C-\M-\)]) | 355 | (8 42 [?\C-\M-*]) |
| 356 | (define-key map "\e[27;8;42~" [?\C-\M-*]) | 356 | (8 43 [?\C-\M-+]) |
| 357 | (define-key map "\e[27;8;43~" [?\C-\M-+]) | 357 | (8 58 [?\C-\M-:]) |
| 358 | (define-key map "\e[27;8;58~" [?\C-\M-:]) | 358 | (8 60 [?\C-\M-<]) |
| 359 | (define-key map "\e[27;8;60~" [?\C-\M-<]) | 359 | (8 62 [?\C-\M->]) |
| 360 | (define-key map "\e[27;8;62~" [?\C-\M->]) | 360 | (8 63 [(control meta ??)]) |
| 361 | (define-key map "\e[27;8;63~" [(control meta ??)]) | 361 | |
| 362 | 362 | (2 9 [S-tab]) | |
| 363 | (define-key map "\e[27;2;9~" [S-tab]) | 363 | (2 13 [S-return]) |
| 364 | (define-key map "\e[27;2;13~" [S-return]) | 364 | |
| 365 | 365 | (6 9 [C-S-tab]) | |
| 366 | (define-key map "\e[27;6;9~" [C-S-tab]) | 366 | (6 13 [C-S-return]))) |
| 367 | (define-key map "\e[27;6;13~" [C-S-return]) | 367 | (define-key map |
| 368 | (format "\e[27;%d;%d~" (nth 0 bind) (nth 1 bind)) (nth 2 bind)) | ||
| 369 | ;; For formatOtherKeys=1, the sequence is a bit shorter (bug#13839). | ||
| 370 | (define-key map | ||
| 371 | (format "\e[%d;%du" (nth 1 bind) (nth 0 bind)) (nth 2 bind))) | ||
| 368 | 372 | ||
| 369 | ;; Other versions of xterm might emit these. | 373 | ;; Other versions of xterm might emit these. |
| 370 | (define-key map "\e[A" [up]) | 374 | (define-key map "\e[A" [up]) |