aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Moellmann2000-12-22 13:18:19 +0000
committerGerd Moellmann2000-12-22 13:18:19 +0000
commitd25cc9a9b8c09d90b138f78e12854fac30b98409 (patch)
tree9cbbb7c4300bfb8503bf135018d3329bb17fcad0
parentf060b8348daaf97936b8731bb500e875cdc51f5c (diff)
downloademacs-d25cc9a9b8c09d90b138f78e12854fac30b98409.tar.gz
emacs-d25cc9a9b8c09d90b138f78e12854fac30b98409.zip
(delete-key-deletes-forward-mode): Simplify. Also
backspace key combinations, depending on delete-key-deletes-forward.
-rw-r--r--lisp/simple.el30
1 files changed, 20 insertions, 10 deletions
diff --git a/lisp/simple.el b/lisp/simple.el
index 7987ab217b3..d7fab489621 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4037,16 +4037,26 @@ For more details, see `delete-key-deletes-forward'."
4037 4037
4038 (cond ((or (memq window-system '(x w32 mac pc)) 4038 (cond ((or (memq window-system '(x w32 mac pc))
4039 (memq system-type '(ms-dos windows-nt))) 4039 (memq system-type '(ms-dos windows-nt)))
4040 (if delete-key-deletes-forward 4040 (let ((bindings
4041 (progn 4041 `(([delete] [backspace] delete-char delete-backward-char)
4042 (define-key global-map [delete] 'delete-char) 4042 ([C-delete] [C-backspace] kill-word backward-kill-word)
4043 (define-key global-map [C-delete] 'kill-word) 4043 ([M-delete] [M-backspace] kill-word backward-kill-word)
4044 (define-key esc-map [C-delete] 'kill-sexp) 4044 ([C-M-delete] [C-M-backspace] kill-sexp backward-kill-sexp)
4045 (define-key global-map [C-M-delete] 'kill-sexp)) 4045 (,esc-map
4046 (define-key esc-map [C-delete] 'backward-kill-sexp) 4046 [C-delete] [C-backspace] kill-sexp backward-kill-sexp))))
4047 (define-key global-map [C-M-delete] 'backward-kill-sexp) 4047 (dolist (binding bindings)
4048 (define-key global-map [C-delete] 'backward-kill-word) 4048 (let ((map global-map))
4049 (define-key global-map [delete] 'delete-backward-char))) 4049 (when (keymapp (car binding))
4050 (setq map (car binding) binding (cdr binding)))
4051 (let ((key1 (nth 0 binding))
4052 (key2 (nth 1 binding))
4053 (binding1 (nth 2 binding))
4054 (binding2 (nth 3 binding)))
4055 (unless delete-key-deletes-forward
4056 (let ((temp binding1))
4057 (setq binding1 binding2 binding2 temp)))
4058 (define-key map key1 binding1)
4059 (define-key map key2 binding2))))))
4050 (t 4060 (t
4051 (if delete-key-deletes-forward 4061 (if delete-key-deletes-forward
4052 (progn 4062 (progn