Mercurial > emacs
changeset 44667:6374552100a2
(yank-excluded-properties): New user option.
(yank-pop, yank): Use insert-for-yank.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 19 Apr 2002 00:05:22 +0000 |
parents | 12a75af39ac0 |
children | 52222efc9d4d |
files | lisp/simple.el |
diffstat | 1 files changed, 14 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Thu Apr 18 23:54:54 2002 +0000 +++ b/lisp/simple.el Fri Apr 19 00:05:22 2002 +0000 @@ -1875,9 +1875,17 @@ (setq this-command 'kill-region) (message "If the next command is a kill, it will append")) (setq last-command 'kill-region))) - + ;; Yanking. +;; This is actually used in subr.el but defcustom does not work there. +(defcustom yank-excluded-properties + '(read-only invisible intangible field mouse-face local-map keymap) + "*Text properties to discard when yanking." + :type '(choice (const :tag "All" t) (repeat symbol)) + :group 'editing + :version 21.4) + (defun yank-pop (arg) "Replace just-yanked stretch of killed text with a different stretch. This command is allowed only immediately after a `yank' or a `yank-pop'. @@ -1899,10 +1907,7 @@ (before (< (point) (mark t)))) (delete-region (point) (mark t)) (set-marker (mark-marker) (point) (current-buffer)) - (let ((opoint (point))) - (insert (current-kill arg)) - (let ((inhibit-read-only t)) - (remove-text-properties opoint (point) '(read-only nil)))) + (insert-for-yank (current-kill arg)) (if before ;; This is like exchange-point-and-mark, but doesn't activate the mark. ;; It is cleaner to avoid activation, even though the command @@ -1924,15 +1929,10 @@ ;; for the following command. (setq this-command t) (push-mark (point)) - (let ((opoint (point))) - (insert (current-kill (cond - ((listp arg) 0) - ((eq arg '-) -1) - (t (1- arg))))) - (let ((inhibit-read-only t)) - ;; Clear `field' property for the sake of copying from the - ;; minibuffer prompt or a *shell* prompt. - (remove-text-properties opoint (point) '(read-only nil field nil)))) + (insert-for-yank (current-kill (cond + ((listp arg) 0) + ((eq arg '-) -1) + (t (1- arg))))) (if (consp arg) ;; This is like exchange-point-and-mark, but doesn't activate the mark. ;; It is cleaner to avoid activation, even though the command