Commit 57596fb6 authored by Kim F. Storm's avatar Kim F. Storm
Browse files

(insert-for-yank): Set yank-undo-function after calling FUNCTION,

unless it was set by FUNCTION (in case FUNCTION calls insert-for-yank).
parent 35d0e4fa
......@@ -1486,18 +1486,20 @@ If COMMAND is present and non-nil, `this-command' is set to COMMAND
after calling FUNCTION (or insert). Note that setting `this-command'
to a value different from `yank' will prevent `yank-pop' from undoing
this yank."
(let* ((method (get-text-property 0 'yank-handler string))
(param (or (nth 1 method) string))
(let* ((handler (and (stringp string)
(get-text-property 0 'yank-handler string)))
(param (or (nth 1 handler) string))
(opoint (point)))
(setq yank-undo-function (nth 3 method)) ;; UNDO
(if (nth 0 method) ;; FUNCTION
(funcall (car method) param)
(setq opoint (point))
(setq yank-undo-function t)
(if (nth 0 handler) ;; FUNCTION
(funcall (car handler) param)
(insert param))
(unless (nth 2 method) ;; NOEXCLUDE
(unless (nth 2 handler) ;; NOEXCLUDE
(remove-yank-excluded-properties opoint (point)))
(if (nth 4 method) ;; COMMAND
(setq this-command (nth 4 method)))))
(if (eq yank-undo-function t) ;; not set by FUNCTION
(setq yank-undo-function (nth 3 handler))) ;; UNDO
(if (nth 4 handler) ;; COMMAND
(setq this-command (nth 4 handler)))))
(defun insert-buffer-substring-no-properties (buf &optional start end)
"Insert before point a substring of buffer BUFFER, without text properties.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment