~kevin8t8/mutt-dev

Add local_date_header option v1 SUPERSEDED

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.
Export patchset (mbox)
How do I use this?

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 -3
Learn more about email & git

[PATCH] Add local_date_header option Export this patch

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.
---
 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);
  }

  tz /= 60;

-- 
2.31.1

[PATCH v2] Add local_date_header option Export this patch

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