summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Guerry <bzg@altern.org>2012-09-28 17:07:22 +0200
committerBastien Guerry <bzg@altern.org>2012-09-28 17:07:22 +0200
commitf71db4e509c132b917fb5bcf37084f4e5a8504ca (patch)
treee3e840bcb36d986eff0522f9373af76d162ebdcc
parent807137acdd2ac001cf70657eba97983d0f51eb63 (diff)
downloadorg-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.el13
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)))))