diff options
author | Bastien Guerry <bzg@altern.org> | 2012-09-28 17:07:22 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2012-09-28 17:07:22 +0200 |
commit | f71db4e509c132b917fb5bcf37084f4e5a8504ca (patch) | |
tree | e3e840bcb36d986eff0522f9373af76d162ebdcc | |
parent | 807137acdd2ac001cf70657eba97983d0f51eb63 (diff) | |
download | org-mode-f71db4e509c132b917fb5bcf37084f4e5a8504ca.tar.gz |
org-publish.el (org-publish-cache-ctime-of-src): Fix reference to relative symlinks
* org-publish.el (org-publish-cache-ctime-of-src): Delete
the base-dir argument and use (file-name-directory file) to
get the file's directory.
(org-publish-update-timestamp)
(org-publish-cache-file-needs-publishing): Call
`org-publish-cache-ctime-of-src' with only one argument.
Thanks to T.F. Torrey who suggested a fix for this.
-rw-r--r-- | lisp/org-publish.el | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lisp/org-publish.el b/lisp/org-publish.el index ed2db3a..947d52b 100644 --- a/lisp/org-publish.el +++ b/lisp/org-publish.el @@ -338,7 +338,7 @@ function can still decide about that independently." "Update publishing timestamp for file FILENAME. If there is no timestamp, create one." (let ((key (org-publish-timestamp-filename filename pub-dir pub-func)) - (stamp (org-publish-cache-ctime-of-src filename base-dir))) + (stamp (org-publish-cache-ctime-of-src filename))) (org-publish-cache-set key stamp))) (defun org-publish-remove-all-timestamps () @@ -1122,12 +1122,12 @@ so that the file including them will be republished as well." (while (re-search-forward "^#\\+include:[ \t]+\"\\([^\t\n\r\"]*\\)\"[ \t]*.*$" nil t) (let* ((included-file (expand-file-name (match-string 1)))) (add-to-list 'included-files-ctime - (org-publish-cache-ctime-of-src included-file base-dir) t)))) + (org-publish-cache-ctime-of-src included-file) t)))) ;; FIXME don't kill current buffer (unless visiting (kill-buffer buf))) (if (null pstamp) t - (let ((ctime (org-publish-cache-ctime-of-src filename base-dir))) + (let ((ctime (org-publish-cache-ctime-of-src filename))) (or (< pstamp ctime) (when included-files-ctime (not (null (delq nil (mapcar (lambda(ct) (< ctime ct)) @@ -1182,10 +1182,11 @@ Returns value on success, else nil." (error "`org-publish-cache-set' called, but no cache present")) (puthash key value org-publish-cache)) -(defun org-publish-cache-ctime-of-src (f base-dir) - "Get the FILENAME ctime as an integer." +(defun org-publish-cache-ctime-of-src (file) + "Get the ctime of filename F as an integer." (let ((attr (file-attributes - (expand-file-name (or (file-symlink-p f) f) base-dir)))) + (expand-file-name (or (file-symlink-p file) file) + (file-name-directory file))))) (+ (lsh (car (nth 5 attr)) 16) (cadr (nth 5 attr))))) |