[PATCHv2] emacs: derive correct timestamp in FCC unique name

Subject: [PATCHv2] emacs: derive correct timestamp in FCC unique name

Date: Thu, 14 Jun 2012 13:16:03 -0400

To: notmuch@notmuchmail.org

Cc: Tomi Ollila

From: Jesse Rosenthal


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>
---
 emacs/notmuch-maildir-fcc.el |    7 +++----
 1 file 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
-- 
1.7.9.5


Thread: