From 9fef58947148cf919b4a26adae279e340af629cf Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Sat, 7 Nov 2009 20:06:03 +0100 Subject: Emacs with fixed gtk menus --- app-editors/emacs/files/emacs-23.1-backspace.patch | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 app-editors/emacs/files/emacs-23.1-backspace.patch (limited to 'app-editors/emacs/files/emacs-23.1-backspace.patch') diff --git a/app-editors/emacs/files/emacs-23.1-backspace.patch b/app-editors/emacs/files/emacs-23.1-backspace.patch new file mode 100644 index 0000000..bc547af --- /dev/null +++ b/app-editors/emacs/files/emacs-23.1-backspace.patch @@ -0,0 +1,54 @@ +2009-10-22 Stefan Monnier + + * 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. + +--- emacs-23.1-orig/lisp/simple.el ++++ emacs-23.1/lisp/simple.el +@@ -6269,31 +6269,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 -- cgit v1.2.3-70-g09d2