mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-22 10:26:20 +00:00
* lisp/delsel.el (delete-active-region): Let-bind `this-command'
to prevent `kill-region' from changing its original value. (delete-selection-helper): Handle `overwrite-mode' for the type `kill' exactly the same way as for the type `t'. (insert-char, quoted-insert, reindent-then-newline-and-indent): Support more commands. Fixes: debbugs:13312
This commit is contained in:
parent
c1916ff5b8
commit
bb8097b96b
@ -1,3 +1,12 @@
|
||||
2013-12-11 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* delsel.el (delete-active-region): Let-bind `this-command'
|
||||
to prevent `kill-region' from changing its original value.
|
||||
(delete-selection-helper): Handle `overwrite-mode' for the type
|
||||
`kill' exactly the same way as for the type `t'.
|
||||
(insert-char, quoted-insert, reindent-then-newline-and-indent):
|
||||
Support more commands. (Bug#13312)
|
||||
|
||||
2013-12-11 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* bindings.el: Map kp keys to non-kp keys systematically
|
||||
|
@ -78,7 +78,9 @@ any selection."
|
||||
"Delete the active region.
|
||||
If KILLP in not-nil, the active region is killed instead of deleted."
|
||||
(if killp
|
||||
(kill-region (point) (mark) t)
|
||||
;; Don't allow `kill-region' to change the value of `this-command'.
|
||||
(let (this-command)
|
||||
(kill-region (point) (mark) t))
|
||||
(funcall region-extract-function 'delete-only))
|
||||
t)
|
||||
|
||||
@ -102,7 +104,13 @@ If KILLP in not-nil, the active region is killed instead of deleted."
|
||||
FUNCTION should take no argument and return one of the above values or nil."
|
||||
(condition-case data
|
||||
(cond ((eq type 'kill)
|
||||
(delete-active-region t))
|
||||
(delete-active-region t)
|
||||
(if (and overwrite-mode
|
||||
(eq this-command 'self-insert-command))
|
||||
(let ((overwrite-mode nil))
|
||||
(self-insert-command
|
||||
(prefix-numeric-value current-prefix-arg))
|
||||
(setq this-command 'ignore))))
|
||||
((eq type 'yank)
|
||||
;; Before a yank command, make sure we don't yank the
|
||||
;; head of the kill-ring that really comes from the
|
||||
@ -165,10 +173,14 @@ See `delete-selection-helper'."
|
||||
(not (run-hook-with-args-until-success
|
||||
'self-insert-uses-region-functions))))
|
||||
|
||||
(put 'insert-char 'delete-selection t)
|
||||
(put 'quoted-insert 'delete-selection t)
|
||||
|
||||
(put 'yank 'delete-selection 'yank)
|
||||
(put 'clipboard-yank 'delete-selection 'yank)
|
||||
(put 'insert-register 'delete-selection t)
|
||||
|
||||
(put 'reindent-then-newline-and-indent 'delete-selection t)
|
||||
(put 'newline-and-indent 'delete-selection t)
|
||||
(put 'newline 'delete-selection t)
|
||||
(put 'open-line 'delete-selection 'kill)
|
||||
@ -197,9 +209,9 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer."
|
||||
(define-key minibuffer-local-completion-map "\C-g" 'abort-recursive-edit)
|
||||
(define-key minibuffer-local-must-match-map "\C-g" 'abort-recursive-edit)
|
||||
(define-key minibuffer-local-isearch-map "\C-g" 'abort-recursive-edit)
|
||||
(dolist (sym '(self-insert-command yank clipboard-yank
|
||||
(dolist (sym '(self-insert-command insert-char quoted-insert yank clipboard-yank
|
||||
insert-register
|
||||
newline-and-indent newline open-line))
|
||||
reindent-then-newline-and-indent newline-and-indent newline open-line))
|
||||
(put sym 'delete-selection nil))
|
||||
;; continue standard unloading
|
||||
nil)
|
||||
|
Loading…
Reference in New Issue
Block a user