aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Rosenthal <jrosenthal@jhu.edu>2012-06-14 13:16:03 -0400
committerDavid Bremner <bremner@debian.org>2012-06-22 07:39:21 -0300
commitd094153a264a69bc560366198a0febfa96c1ceb5 (patch)
tree0fb96c3715936d22108408bb30f7b6d51786f4ca
parenta7bc1c7bc5a47e8abd5087431d65f746ef20ee81 (diff)
emacs: derive correct timestamp in FCC unique name
Previously, the timestamp at the beginning of the FCC unique maildir name was derived incorrectly, thanks to an integer overflow. This changes the derivation of timestamp to use a float, and so will get the number correct at least until 2038. (It is still formatted with "%d" so it will show up as an integer.) Should we need to change it in the next 26 years to take the unix millenium into account, it will be invisible to users. This change is mostly a question of consistency, since the unique name is arbitrary anyway. But since most people use timestamps, and that was the original intention here as well, we might as well. Signed-off-by: Jesse Rosenthal <jrosenthal@jhu.edu>
-rw-r--r--emacs/notmuch-maildir-fcc.el7
1 files changed, 3 insertions, 4 deletions
diff --git a/emacs/notmuch-maildir-fcc.el b/emacs/notmuch-maildir-fcc.el
index dcfbc4b..07eedba 100644
--- a/emacs/notmuch-maildir-fcc.el
+++ b/emacs/notmuch-maildir-fcc.el
@@ -140,13 +140,12 @@ will NOT be removed or replaced."
t))
(defun notmuch-maildir-fcc-make-uniq-maildir-id ()
- (let* ((ct (current-time))
- (timeid (+ (* (car ct) 65536) (cadr ct)))
- (microseconds (car (cdr (cdr ct))))
+ (let* ((ftime (float-time))
+ (microseconds (mod (* 1000000 ftime) 1000000))
(hostname (notmuch-maildir-fcc-host-fixer system-name)))
(setq notmuch-maildir-fcc-count (+ notmuch-maildir-fcc-count 1))
(format "%d.%d_%d_%d.%s"
- timeid
+ ftime
(emacs-pid)
microseconds
notmuch-maildir-fcc-count