Hi,

I would like to submit a patch to support displaying remote images inline
in Org-mode.  Attached is the formatted patch (or github branch here
<https://github.com/kitchoi/org-mode/commit/2e600da455c371754f028ddaaed1ae1724cbe6b6>
.)

I have tested the code with "make test".  FSF document is signed (waiting
for gnu to send it back).

Feedbacks are most welcome.  Thanks.

Kit
diff --git a/lisp/org.el b/lisp/org.el
index 1f33d2a..aaa5c9b 100755
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -19338,7 +19338,7 @@ boundaries."
                            (not (cdr (org-element-contents parent)))))
                      (org-string-match-p file-extension-re
                                          (org-element-property :path link)))
-            (let ((file (expand-file-name (org-element-property :path link))))
+            (let ((file (substitute-in-file-name (expand-file-name 
(org-element-property :path link)))))
               (when (file-exists-p file)
                 (let ((width
                        ;; Apply `org-image-actual-width' specifications.
@@ -19376,10 +19376,29 @@ boundaries."
                             'org-image-overlay)))
                   (if (and (car-safe old) refresh)
                       (image-refresh (overlay-get (cdr old) 'display))
-                    (let ((image (create-image file
-                                                 (and width 'imagemagick)
-                                                 nil
-                                                 :width width)))
+                    (let* ((image 
+                            (let ((newname
+                                   (if (org-file-remote-p file)
+                                       (let* ((tramp-tmpdir (concat
+                                                             (if (featurep 
'xemacs)
+                                                                 
(temp-directory)
+                                                               
temporary-file-directory)
+                                                             "/tramp"
+                                                             
(org-file-remote-p file)
+                                                             
(file-name-directory
+                                                              
(org-babel-local-file-name file))))
+                                              (newname (concat
+                                                        tramp-tmpdir 
+                                                        
(file-name-nondirectory file))))
+                                         (make-directory tramp-tmpdir t)
+                                         (if 
(tramp-handle-file-newer-than-file-p file newname)
+                                               (tramp-compat-copy-file file 
newname t t))
+                                         newname)
+                                     file)))
+                              (create-image newname
+                                            (and width 'imagemagick)
+                                            nil
+                                            :width width))))
                       (when image
                         (let* ((link
                                 ;; If inline image is the description

Reply via email to