summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2019-02-09 00:32:13 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-02-09 00:32:13 +0100
commitc7f4e85389e4e23565f5b16faf598802dfcde0a6 (patch)
tree011d323ad81e4dbc39dfed7294c75836f013001c
parent0da44916220bfd2970adca4bb191181e295e70a6 (diff)
downloadorg-mode-c7f4e85389e4e23565f5b16faf598802dfcde0a6.tar.gz
ox-publish: Fix arithmetic range error on some systems
* lisp/ox-publish.el (org-publish-cache-file-needs-publishing): (org-publish-cache-ctime-of-src): Use internal time format for timestamps. Reported-by: Colin Baxter <m43cap@yandex.com> <http://lists.gnu.org/r/emacs-orgmode/2019-02/msg00072.html>
-rw-r--r--lisp/ox-publish.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/ox-publish.el b/lisp/ox-publish.el
index d9fc8d2..1fb4045 100644
--- a/lisp/ox-publish.el
+++ b/lisp/ox-publish.el
@@ -1285,7 +1285,10 @@ the file including them will be republished as well."
(error
"`org-publish-cache-file-needs-publishing' called, but no cache present"))
(let* ((key (org-publish-timestamp-filename filename pub-dir pub-func))
- (pstamp (org-publish-cache-get key))
+ (pstamp (pcase (org-publish-cache-get key)
+ ;; Old format, convert it back to a time value.
+ ((and stamp (pred wholenump)) (seconds-to-time stamp))
+ (stamp stamp)))
(org-inhibit-startup t)
included-files-ctime)
(when (equal (file-name-extension filename) "org")
@@ -1314,8 +1317,9 @@ the file including them will be republished as well."
(unless visiting (kill-buffer buf)))))
(or (null pstamp)
(let ((ctime (org-publish-cache-ctime-of-src filename)))
- (or (< pstamp ctime)
- (cl-some (lambda (ct) (< ctime ct)) included-files-ctime))))))
+ (or (time-less-p pstamp ctime)
+ (cl-some (lambda (ct) (time-less-p ctime ct))
+ included-files-ctime))))))
(defun org-publish-cache-set-file-property
(filename property value &optional project-name)
@@ -1365,8 +1369,8 @@ does not exist."
(let ((attr (file-attributes
(expand-file-name (or (file-symlink-p file) file)
(file-name-directory file)))))
- (if (not attr) (error "No such file: \"%s\"" file)
- (floor (float-time (file-attribute-modification-time attr))))))
+ (if (not attr) (error "No such file: %S" file)
+ (file-attribute-modification-time attr))))
(provide 'ox-publish)