Aidan Gauland <aidal...@no8wireless.co.nz> writes: > On Thu, Sep 16, 2010 at 12:40:34AM +0200, Sebastian Rose wrote: >> Aidan Gauland <aidal...@no8wireless.co.nz> writes: >> > Sebastian Rose <sebastian_rose <at> gmx.de> writes: >> >> It would be a bug. >> >> >> >> But I cannot reproduce it (current Org mode from git, emacs24). >> > >> > I just figured out why: I store all my images in ~/images/ and just >> > have symbolic links to them in my Org website directory. >> > >> > Can you reproduce it now that you have this piece of information? >> >> >> Ah, OK. That might be because of some call to >> >> (file-truename file...) >> >> or similar. `file-truename' removes symbolic links in filenames. >> >> Functions like this are called to make sure, the file is published only >> if needed (i.e. the file has changed since last export). >> >> I'm not sure currently if it's clever to remove such calls (see >> lisp/org-publish.el and search `file-truename'). > > What if `file-truename' was used only to get the path of the actual > file to copy, but the (relative) path of the link is used as the > destination? > > --Aidan
Hi Aidan, `org-publish-attachment' is wrong or called with wrong arguments. This patch fixes it. As always, there might be a better way to fix it, but this way the function `org-publish-attachment' will work regardless of parameters. Someone will always call this function with the wrong `PUB-DIR' parameter... Aidan, would like to apply the patch and verify it works for you? Best wishes, Sebastian
diff --git a/lisp/org-publish.el b/lisp/org-publish.el index de52410..f32aa94 100644 --- a/lisp/org-publish.el +++ b/lisp/org-publish.el @@ -578,13 +578,18 @@ See `org-publish-org-to' to the list of arguments." "Publish a file with no transformation of any kind. See `org-publish-org-to' to the list of arguments." ;; make sure eshell/cp code is loaded +(let* ((rel-dir + (file-relative-name + (file-name-directory filename) + (plist-get plist :base-directory))) + (pub-dir + (expand-file-name + (concat (file-name-as-directory pub-dir) rel-dir)))) (unless (file-directory-p pub-dir) (make-directory pub-dir t)) (or (equal (expand-file-name (file-name-directory filename)) (file-name-as-directory (expand-file-name pub-dir))) - (copy-file filename - (expand-file-name (file-name-nondirectory filename) pub-dir) - t))) + (copy-file filename pub-dir t)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Publishing files, sets of files, and indices
_______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode