Hello Andrea.
[email protected] wrote in
<[email protected]>:
|On Mon, 08 Nov 2021 22:39:38 +0100, Steffen Nurpmeso
|<[email protected]> wrote:
|
|> [...]
|>|and work out the difference between g and l by checking the members
|>|(e.g. normalizing to either number of minutes) with something like:
|>|
|>| diff = (l->tm_sec-g->tm_sec)/60
|>| +(l->tm_min-g->tm_min)
|>| +(l->tm_hour-g->tm_hour)*60
|>| /* + compensate for day/month/year difference */
|>|
|>|I'm happy to put some code together if you want. Or test a patch,
|> if you |prefer.
|>
|> That day-of-year / dateborder approach as is used by all other
|> MUAs was a great hint, thank you, Andrea!
|> Yes i did it like that as a fallback if tm_gmtoff is not
|> available, and from some testing it works fine.
|>
|> Thanks again for this report, and also the hint.
|> Let's see whether i can release this week.
|
|No problem, Steffen.
|
|I was looking into postfix sourcecode yesterday, for something else,
|and there's an elegant (and portable) solution right in mail_date.c
|(https://github.com/vdukhovni/postfix/blob/master/postfix/src/global/mai\
|l_date.c).
Hmm, i see. No, i think Alpine and mutt have the better approach,
using day-of-year looks better to me, you end up with
rv = ((((localp_or_nil->tm_hour - utcp_or_nil->tm_hour) * 60) +
(localp_or_nil->tm_min - utcp_or_nil->tm_min)) * 60) +
(localp_or_nil->tm_sec - utcp_or_nil->tm_sec);
if((t = (localp_or_nil->tm_yday - utcp_or_nil->tm_yday)) != 0)
rv += (t == 1) ? su_TIME_DAY_SECS : -S(s64,su_TIME_DAY_SECS);
Seconds is likely stupid but so i am ;)
|For the record, I read somewhere on the icann mailing list archive that
|Morocco has the same problem (negative adjustments) re. Ramadan.
|
|Andrea.
Ciao Andrea!
--End of <[email protected]>
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)