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

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

Date: Thu, 14 Jun 2012 22:04:58 +0300

To: Jesse Rosenthal, notmuch@notmuchmail.org

Cc:

From: Tomi Ollila


On Thu, Jun 14 2012, Jesse Rosenthal <jrosenthal@jhu.edu> wrote:

> 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>
> ---


+1


Tomi

>  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
>
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch

Thread: