emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/image-file.el


From: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/lisp/image-file.el
Date: Thu, 21 Jul 2005 04:56:23 -0400

Index: emacs/lisp/image-file.el
diff -c emacs/lisp/image-file.el:1.23 emacs/lisp/image-file.el:1.24
*** emacs/lisp/image-file.el:1.23       Mon Jul  4 23:08:55 2005
--- emacs/lisp/image-file.el    Thu Jul 21 08:56:23 2005
***************
*** 118,123 ****
--- 118,124 ----
              (create-image data nil t))
             (props
              `(display ,image
+                       yank-handler (image-file-yank-handler)
                        intangible ,image
                        rear-nonsticky (display intangible)
                        ;; This a cheap attempt to make the whole buffer
***************
*** 134,139 ****
--- 135,153 ----
          ;; area look correct when the image is wider than the window.
          (setq truncate-lines t))))
      rval))
+ 
+ ;; We use a yank-handler to make yanked images unique, so that
+ ;; yanking two copies of the same image next to each other are
+ ;; 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)))
+     (if (consp image)
+       (put-text-property 0 (length string)
+                          'display
+                          (cons (car image) (cdr image))
+                          string))
+     (insert string)))
  
  (put 'image-file-handler 'safe-magic t)
  (defun image-file-handler (operation &rest args)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]