[PATCHv2] emacs: derive correct timestamp in FCC unique name
On Thu, Jun 14 2012, Jesse Rosenthal 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 > --- +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 (* 100 ftime) 100)) > (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 at notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch
Any tips on emacs and different signatures per address
Tomi Ollila writes: > On Wed, Jun 13 2012, Svend Sorensen wrote: > >> On Wed, 06 Jun 2012 09:16:16 +0300, Tomi Ollila >> wrote: >>> >>> could you write a wiki page about gnus-alias, like >>> emacstips/gnus-alias.mdwn. >>> >>> That would be very useful. >>> >>> Tomi >> >> I've added information on gnus-alias to the emacstips page on the >> notmuch wiki [1]. >> >> http://notmuchmail.org/emacstips/ > > Thanks, that was just something I needed to get started to look into it; > I also added some more content around your stuff... Thanks guys, this lets me work around my problems with notmuch selecting the wrong from address! Beer is owed, if there is ever a notmuch conference or anything terrifying like that. Cheers, mwh
[PATCHv2] 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 --- 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 (* 100 ftime) 100)) (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
[PATCH] emacs: derive correct timestamp in FCC unique name
On Wed, Jun 13 2012, Jesse Rosenthal wrote: > Previously, the timestamp at the beginning of the FCC maildir unique > maildir name was derived incorrectly, thanks to an integer > overflow. This changes the derivation of timestamp to float > arithmetic, and so gets the number correct. (It is still formatted > with "%d" so it will show up as an integer.) > > 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 > --- Good point -- did some experiments (on 32bit machine, on 64 (* 65536 *65536) just works OK (4294967296). (insert (format " %d" (* 8191 65536))) 536805376 (insert (format " %d" (* 8192 65536))) -536870912 Wraps now (many times already) (insert (format " %d" (* 32767 65536.0))) 2147418112 (insert (format " %d" (* 32768 65536.0))) -2147483648 Wraps Tue Jan 19 03:14:08 2038 UTC (insert (format " %0.f" (* 32768 65536.0))) 2147483648 (insert (format " %0.f" (* 65536 65536.0))) 4294967296 Does not wrap. On emacs window you can re-experiment by typing C-x C-e after last closing ')' on line. (float-time '(32767 65536)) -> 2147418112.0 (minibuffer output) (float-time '(32768 65536)) -> error "Invalid time specification" On 64-bit machine this latest work ok; i.e 2147483648.0 is returned. Alternatives: 1) Use current patch, filenames will have extra '-' in 2038 on 32-bit systems. 2) Drop 'timeid' and replace it with (float-time) in `format` call a few lines in original source after the patch context below -- No idea how (float-time) works on 32-bit systems after 2038. 3) Use "%0.f" in format string instead of "%d" (there is no "%ld" or "%u" sequences for `format`. I wonder what (current-time-string) in current emacs return in 2038 (maybe I test (sometime(tm)) with (lib)faketime). I suggest option #2. Tomi > emacs/notmuch-maildir-fcc.el |2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/emacs/notmuch-maildir-fcc.el b/emacs/notmuch-maildir-fcc.el > index dcfbc4b..6fd8ff9 100644 > --- a/emacs/notmuch-maildir-fcc.el > +++ b/emacs/notmuch-maildir-fcc.el > @@ -141,7 +141,7 @@ will NOT be removed or replaced." > > (defun notmuch-maildir-fcc-make-uniq-maildir-id () > (let* ((ct (current-time)) > - (timeid (+ (* (car ct) 65536) (cadr ct))) > + (timeid (+ (* (car ct) 65536.0) (cadr ct))) > (microseconds (car (cdr (cdr ct > (hostname (notmuch-maildir-fcc-host-fixer system-name))) > (setq notmuch-maildir-fcc-count (+ notmuch-maildir-fcc-count 1)) > -- > 1.7.9.5
[PATCH] emacs: derive correct timestamp in FCC unique name
Hi, thanks for thinking this through. On Thu, 14 Jun 2012, Tomi Ollila wrote: > Alternatives: > > 1) Use current patch, filenames will have extra '-' in 2038 on 32-bit > systems. Well, that assumes there is still the same arithmetic operations -- the calendar issue will probably push them to either auto-convert to float or use bignum. But still, assuming that in 2038, people are still on 32bit machines, it seems we should minimize the amount of things that need to be fixed. So I agree that... > 2) Drop 'timeid' and replace it with (float-time) in `format` call a few > lines in original source after the patch context below -- No idea > how (float-time) works on 32-bit systems after 2038. is probably the best. They'll have to deal with their time_t (again, assuming the unlikely existence of 32bit machines then) but this doesn't depend on their arithemetic. I'll send a revision to this thread. > I suggest option #2. > > Tomi Thanks again, Jesse
Any tips on emacs and different signatures per address
Tomi Ollila writes: > On Wed, Jun 13 2012, Svend Sorensen wrote: > >> On Wed, 06 Jun 2012 09:16:16 +0300, Tomi Ollila >> wrote: >>> >>> could you write a wiki page about gnus-alias, like >>> emacstips/gnus-alias.mdwn. >>> >>> That would be very useful. >>> >>> Tomi >> >> I've added information on gnus-alias to the emacstips page on the >> notmuch wiki [1]. >> >> http://notmuchmail.org/emacstips/ > > Thanks, that was just something I needed to get started to look into it; > I also added some more content around your stuff... I also thank for the starting point. I experience a few problems, though. Maybe, somebody can help me with them. 1. When replying and the selected identity has a signature, the "--text follows this line--" line is placed in between the quoted text and the signature. This would probably mean that the quoted text will become a part of message headers, which doesn't sound as a good thing. 2. The identity selection overrides the from address determined by "notmuch reply". Since I use a lot of email addresses I find notmuch reply behavior very useful and I only want to override the identity in a few special cases. Leaving gnus-alias-default-identity unset doesn't help, because it somehow breaks message setup code. Message buffer doesn't hide message-hidden-headers and the quoted text (in case of reply) is missing. Regards, -Michal
Any tips on emacs and different signatures per address
On Wed, Jun 13 2012, Svend Sorensen wrote: > On Wed, 06 Jun 2012 09:16:16 +0300, Tomi Ollila wrote: >> >> could you write a wiki page about gnus-alias, like >> emacstips/gnus-alias.mdwn. >> >> That would be very useful. >> >> Tomi > > I've added information on gnus-alias to the emacstips page on the > notmuch wiki [1]. > > http://notmuchmail.org/emacstips/ Thanks, that was just something I needed to get started to look into it; I also added some more content around your stuff... > Svend Tomi