Mercurial > emacs
changeset 105712:3f36e4d4d40c
* simple.el (normal-erase-is-backspace-mode): Use input-decode-map
rather than fiddling with global-map bindings, since it should only
affect per-terminal settings.
See http://bugs.gentoo.org/show_bug.cgi?id=289709.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 22 Oct 2009 19:31:43 +0000 |
parents | 834e4fdbe74a |
children | 4d7b61a743cb |
files | lisp/ChangeLog lisp/simple.el |
diffstat | 2 files changed, 18 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu Oct 22 16:14:49 2009 +0000 +++ b/lisp/ChangeLog Thu Oct 22 19:31:43 2009 +0000 @@ -1,5 +1,10 @@ 2009-10-22 Stefan Monnier <monnier@iro.umontreal.ca> + * simple.el (normal-erase-is-backspace-mode): Use input-decode-map + rather than fiddling with global-map bindings, since it should only + affect per-terminal settings. + See http://bugs.gentoo.org/show_bug.cgi?id=289709. + * minibuffer.el (completion-table-with-terminator): Allow to specify the terminator-regexp.
--- a/lisp/simple.el Thu Oct 22 16:14:49 2009 +0000 +++ b/lisp/simple.el Thu Oct 22 19:31:43 2009 +0000 @@ -6415,31 +6415,27 @@ (let* ((bindings `(([M-delete] [M-backspace]) ([C-M-delete] [C-M-backspace]) - (,esc-map - [C-delete] [C-backspace]))) + ([?\e C-delete] [?\e C-backspace]))) (old-state (lookup-key local-function-key-map [delete]))) (if enabled (progn (define-key local-function-key-map [delete] [?\C-d]) (define-key local-function-key-map [kp-delete] [?\C-d]) - (define-key local-function-key-map [backspace] [?\C-?])) + (define-key local-function-key-map [backspace] [?\C-?]) + (dolist (b bindings) + ;; Not sure if input-decode-map is really right, but + ;; keyboard-translate-table (used below) only works + ;; for integer events, and key-translation-table is + ;; global (like the global-map, used earlier). + (define-key input-decode-map (car b) nil) + (define-key input-decode-map (cadr b) nil))) (define-key local-function-key-map [delete] [?\C-?]) (define-key local-function-key-map [kp-delete] [?\C-?]) - (define-key local-function-key-map [backspace] [?\C-?])) - - ;; Maybe swap bindings of C-delete and C-backspace, etc. - (unless (equal old-state (lookup-key local-function-key-map [delete])) - (dolist (binding bindings) - (let ((map global-map)) - (when (keymapp (car binding)) - (setq map (car binding) binding (cdr binding))) - (let* ((key1 (nth 0 binding)) - (key2 (nth 1 binding)) - (binding1 (lookup-key map key1)) - (binding2 (lookup-key map key2))) - (define-key map key1 binding2) - (define-key map key2 binding1))))))) + (define-key local-function-key-map [backspace] [?\C-?]) + (dolist (b bindings) + (define-key input-decode-map (car b) (cadr b)) + (define-key input-decode-map (cadr b) (car b)))))) (t (if enabled (progn