diff options
author | Kim F. Storm <storm@cua.dk> | 2005-07-22 13:11:34 +0000 |
---|---|---|
committer | Kim F. Storm <storm@cua.dk> | 2005-07-22 13:11:34 +0000 |
commit | eab4879567e0b4f4e73b5eda44d2cec1934aef0d (patch) | |
tree | 74a659aa447eecfa7075b17355ec4e481ac61c04 /lisp/image-file.el | |
parent | 80362dd2c07d1167127036f71716c9fd80c32faa (diff) | |
download | emacs-eab4879567e0b4f4e73b5eda44d2cec1934aef0d.tar.gz |
(insert-image-file, image-file-yank-handler): Fix
last change to maintain a (unique) yank-handler on yanked images.
Diffstat (limited to 'lisp/image-file.el')
-rw-r--r-- | lisp/image-file.el | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/lisp/image-file.el b/lisp/image-file.el index be95470184c..6b88b84e19f 100644 --- a/lisp/image-file.el +++ b/lisp/image-file.el @@ -118,7 +118,8 @@ the command `insert-file-contents'." (create-image data nil t)) (props `(display ,image - yank-handler (image-file-yank-handler) + yank-handler + (image-file-yank-handler nil t) intangible ,image rear-nonsticky (display intangible) ;; This a cheap attempt to make the whole buffer @@ -141,12 +142,18 @@ the command `insert-file-contents'." ;; recognized as two different images. (defun image-file-yank-handler (string) "Yank handler for inserting an image into a buffer." - (let ((image (get-text-property 0 'display string))) + (let ((len (length string)) + (image (get-text-property 0 'display string))) + (remove-text-properties 0 len yank-excluded-properties string) (if (consp image) - (put-text-property 0 (length string) - 'display - (cons (car image) (cdr image)) - string)) + (add-text-properties 0 + (or (next-single-property-change 0 'image-counter string) + (length string)) + `(display + ,(cons (car image) (cdr image)) + yank-handler + ,(cons 'image-file-yank-handler '(nil t))) + string)) (insert string))) (put 'image-file-handler 'safe-magic t) |