diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2019-02-09 00:32:13 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2019-02-09 00:32:13 +0100 |
commit | c7f4e85389e4e23565f5b16faf598802dfcde0a6 (patch) | |
tree | 011d323ad81e4dbc39dfed7294c75836f013001c | |
parent | 0da44916220bfd2970adca4bb191181e295e70a6 (diff) | |
download | org-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.el | 14 |
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) |