changeset 64594:7a0be66e1adb

(insert-image-file, image-file-yank-handler): Fix last change to maintain a (unique) yank-handler on yanked images.
author Kim F. Storm <storm@cua.dk>
date Fri, 22 Jul 2005 13:11:34 +0000
parents 3b0b558e8704
children bea731b50462
files lisp/image-file.el
diffstat 1 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/image-file.el	Fri Jul 22 13:02:19 2005 +0000
+++ b/lisp/image-file.el	Fri Jul 22 13:11:34 2005 +0000
@@ -118,7 +118,8 @@
 	      (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 @@
 ;; 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)