Gregory Anders: 2 Add local_date_header option Add local_date_header option 6 files changed, 31 insertions(+), 4 deletions(-)
Good call. I’m away from home right now but I’ll send an updated patch tonight.
Copy & paste the following snippet into your terminal to import this patchset into git:
curl -s https://lists.sr.ht/~kevin8t8/mutt-dev/patches/22706/mbox | git am -3Learn more about email & git
Add an option to convert the date used in the Date header into the local (sender's) timezone. This is the current behavior and the option defaults to true. Unsetting this option causes the date in the Date header to be formatted using the GMT timezone.
Hi Gregory, I think this is okay. Just a minor formatting nitpick below:
This option is useful for privacy-sensitive users who may not wish to divulge their sending timezone. --- init.h | 6 ++++++ mutt.h | 1 + sendlib.c | 11 +++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/init.h b/init.h index 7590b315..acc7d8b2 100644 --- a/init.h +++ b/init.h @@ -1954,6 +1954,12 @@ struct option_t MuttVars[] = { ** from your spool mailbox to your $$mbox mailbox, or as a result of ** a ``$mbox-hook'' command. */ + { "local_date_header", DT_BOOL, R_NONE, {.l=OPTLOCALDATEHEADER}, {.l=1} }, + /* + ** .pp + ** If \fIset\fP, convert the date in the Date header of sent emails into local + ** (sender's) timezone. + */ { "mail_check", DT_NUM, R_NONE, {.p=&BuffyTimeout}, {.l=5} }, /* ** .pp diff --git a/mutt.h b/mutt.h index b7f9d234..88b71da5 100644 --- a/mutt.h +++ b/mutt.h @@ -480,6 +480,7 @@ enum OPTINCLUDEENCRYPTED, OPTINCLUDEONLYFIRST, OPTKEEPFLAGGED, + OPTLOCALDATEHEADER, OPTMUTTLISPINLINEEVAL, OPTMAILCAPSANITIZE, OPTMAILCHECKRECENT, diff --git a/sendlib.c b/sendlib.c index 36264aa0..037219dd 100644 --- a/sendlib.c +++ b/sendlib.c @@ -1759,8 +1759,15 @@ BODY *mutt_remove_multipart_alternative (BODY *b) void mutt_make_date (BUFFER *s) { time_t t = time (NULL); - struct tm *l = localtime (&t); - time_t tz = mutt_local_tz (t); + struct tm *l; + time_t tz = 0; + + if (option (OPTLOCALDATEHEADER)) { + l = localtime (&t); + tz = mutt_local_tz (t); + } else { + l = gmtime (&t); + }
Mutt puts the curly brakets on separate lines. You can leave off curly brackets for the else if you like. if (option (OPTLOCALDATEHEADER)) { l = localtime (&t); tz = mutt_local_tz (t); } else { l = gmtime (&t); } -Kevin
tz /= 60; -- 2.31.1
Add an option to convert the date used in the Date header into the local (sender's) timezone. This is the current behavior and the option defaults to true. Unsetting this option causes the date in the Date header to be formatted using the GMT timezone. This option is useful for privacy-sensitive users who may not wish to divulge their sending timezone. --- I made the requested formatting change and I also just initialized `l` with gmtime(&t) which removes the `else` branch entirely. Let me know if you prefer it the other way and I'll switch it back.
Hi Gregory, I think it's better to have the else branch. Most people will leave the option set, so performing the gmtime() syscall in advance is a waste (albeit a tiny one). -Kevin
init.h | 6 ++++++ mutt.h | 1 + sendlib.c | 10 ++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/init.h b/init.h index 7590b315..acc7d8b2 100644 --- a/init.h +++ b/init.h @@ -1954,6 +1954,12 @@ struct option_t MuttVars[] = { ** from your spool mailbox to your $$mbox mailbox, or as a result of ** a ``$mbox-hook'' command. */ + { "local_date_header", DT_BOOL, R_NONE, {.l=OPTLOCALDATEHEADER}, {.l=1} }, + /* + ** .pp + ** If \fIset\fP, convert the date in the Date header of sent emails into local + ** (sender's) timezone. + */ { "mail_check", DT_NUM, R_NONE, {.p=&BuffyTimeout}, {.l=5} }, /* ** .pp diff --git a/mutt.h b/mutt.h index b7f9d234..88b71da5 100644 --- a/mutt.h +++ b/mutt.h @@ -480,6 +480,7 @@ enum OPTINCLUDEENCRYPTED, OPTINCLUDEONLYFIRST, OPTKEEPFLAGGED, + OPTLOCALDATEHEADER, OPTMUTTLISPINLINEEVAL, OPTMAILCAPSANITIZE, OPTMAILCHECKRECENT, diff --git a/sendlib.c b/sendlib.c index 36264aa0..77ff044f 100644 --- a/sendlib.c +++ b/sendlib.c @@ -1759,8 +1759,14 @@ BODY *mutt_remove_multipart_alternative (BODY *b) void mutt_make_date (BUFFER *s) { time_t t = time (NULL); - struct tm *l = localtime (&t); - time_t tz = mutt_local_tz (t); + struct tm *l = gmtime (&t); + time_t tz = 0; + + if (option (OPTLOCALDATEHEADER)) + { + l = localtime (&t); + tz = mutt_local_tz (t); + } tz /= 60; -- 2.31.1