]> granicus.if.org Git - neomutt/commitdiff
Implement mutt_date_epoch() 1848/head
authorPietro Cerutti <gahr@gahr.ch>
Mon, 2 Sep 2019 09:44:21 +0000 (09:44 +0000)
committerRichard Russon <rich@flatcap.org>
Tue, 10 Sep 2019 12:02:24 +0000 (13:02 +0100)
Closes: #1824
- Use mutt_date_epoch() instead of time()
- Use mutt_date_epoch_ms in progress
- Undo type conversion, avoid double call to mutt_date_epoch
- Give a magic number a name

27 files changed:
autocrypt/autocrypt.c
browser.c
conn/ssl_gnutls.c
email/parse.c
handler.c
hdrline.c
imap/command.c
imap/imap.c
imap/util.c
init.c
maildir/maildir.c
maildir/shared.c
mutt/date.c
mutt/date.h
mutt/file.c
mutt/logging.c
mutt_mailbox.c
mx.c
ncrypt/pgp.c
ncrypt/smime.c
nntp/nntp.c
notmuch/mutt_notmuch.c
pop/pop.c
progress.c
send.c
sendlib.c
test/date/mutt_date_add_timeout.c

index cc5e1b94efc40863aed3dfed3edab5bd0237ecdc..f47c86aa05dc7712a3320d5c803ce9c944ff0274 100644 (file)
@@ -288,7 +288,7 @@ int mutt_autocrypt_process_autocrypt_header(struct Email *e, struct Envelope *en
 
   /* Ignore emails that appear to be more than a week in the future,
    * since they can block all future updates during that time. */
-  if (e->date_sent > (mutt_date_epoch_ms() / 1000 + (7 * 24 * 60 * 60)))
+  if (e->date_sent > (mutt_date_epoch() + (7 * 24 * 60 * 60)))
     return 0;
 
   for (struct AutocryptHeader *ac_hdr = env->autocrypt; ac_hdr; ac_hdr = ac_hdr->next)
@@ -430,7 +430,7 @@ int mutt_autocrypt_process_gossip_header(struct Email *e, struct Envelope *prot_
 
   /* Ignore emails that appear to be more than a week in the future,
    * since they can block all future updates during that time. */
-  if (e->date_sent > (mutt_date_epoch_ms() / 1000 + (7 * 24 * 60 * 60)))
+  if (e->date_sent > (mutt_date_epoch() + (7 * 24 * 60 * 60)))
     return 0;
 
   struct Buffer *keyid = mutt_buffer_pool_get();
index 5c809bd69acfde26abfccc34176a96de7ff243a2..16ba67e727cf3dcb03d281080895bbe1d2933dd4 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -39,7 +39,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/stat.h>
-#include <time.h>
 #include "mutt/mutt.h"
 #include "config/lib.h"
 #include "email/lib.h"
@@ -412,8 +411,8 @@ static const char *folder_format_str(char *buf, size_t buflen, size_t col, int c
         }
         else
         {
-          time_t tnow = time(NULL);
-          t_fmt = ((tnow - folder->ff->mtime) < 31536000) ? "%b %d %H:%M" : "%b %d  %Y";
+          static const time_t one_year = 31536000;
+          t_fmt = ((mutt_date_epoch() - folder->ff->mtime) < one_year) ? "%b %d %H:%M" : "%b %d  %Y";
         }
 
         if (!do_locales)
index fa0846b90ab5094fc25be5a33e02aa71cd99d857..3fbade93c327aa48f8c346163f0df5406593d15a 100644 (file)
@@ -35,7 +35,6 @@
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
-#include <time.h>
 #include "mutt/mutt.h"
 #include "config/lib.h"
 #include "conn_globals.h"
@@ -349,9 +348,9 @@ static int tls_check_preauth(const gnutls_datum_t *certdata,
    * GNUTLS_CERT_EXPIRED and GNUTLS_CERT_NOT_ACTIVATED bits set. */
   if (C_SslVerifyDates != MUTT_NO)
   {
-    if (gnutls_x509_crt_get_expiration_time(cert) < time(NULL))
+    if (gnutls_x509_crt_get_expiration_time(cert) < mutt_date_epoch())
       *certerr |= CERTERR_EXPIRED;
-    if (gnutls_x509_crt_get_activation_time(cert) > time(NULL))
+    if (gnutls_x509_crt_get_activation_time(cert) > mutt_date_epoch())
       *certerr |= CERTERR_NOTYETVALID;
   }
 
index b12d4db89e075b2e996b5dadb6bd042630aa8f29..24709547cdfabff964c07a910031f128d3930884 100644 (file)
@@ -736,7 +736,7 @@ int mutt_rfc822_parse_line(struct Envelope *env, struct Email *e, char *line,
 
     case 'e':
       if ((mutt_str_strcasecmp("xpires", line + 1) == 0) && e &&
-          (mutt_date_parse_date(p, NULL) < time(NULL)))
+          (mutt_date_parse_date(p, NULL) < mutt_date_epoch()))
       {
         e->expired = true;
       }
index b886ea03b697575df0f682bf6b1570f8adfb28c2..3cd571d3f85f720186c80fc43598cbb99f0b2f5a 100644 (file)
--- a/handler.c
+++ b/handler.c
@@ -875,7 +875,7 @@ static int external_body_handler(struct Body *b, struct State *s)
       mutt_copy_hdr(s->fp_in, s->fp_out, ftello(s->fp_in), b->parts->offset, chflags, NULL);
     }
   }
-  else if (expiration && (expire < time(NULL)))
+  else if (expiration && (expire < mutt_date_epoch()))
   {
     if (s->flags & MUTT_DISPLAY)
     {
index 2f3b9aef22111117a77a1b9e2076c6cf471ed212..75baac7b66de6a2ce1c97c5e9f727deffd4a54b2 100644 (file)
--- a/hdrline.c
+++ b/hdrline.c
@@ -682,7 +682,7 @@ static const char *index_format_str(char *buf, size_t buflen, size_t col, int co
 
         if (optional && ((op == '[') || (op == '(')))
         {
-          now = time(NULL);
+          now = mutt_date_epoch();
           struct tm tm = mutt_date_localtime(now);
           now -= (op == '(') ? e->received : e->date_sent;
 
index 49ceadc2cdfea094c9020972e5df26c61bed12f1..8731fd61d2d4497a2d235215ee666a3c2d905d87 100644 (file)
@@ -1123,7 +1123,7 @@ int imap_cmd_step(struct ImapAccountData *adata)
     mutt_debug(LL_DEBUG3, "shrank buffer to %lu bytes\n", adata->blen);
   }
 
-  adata->lastread = time(NULL);
+  adata->lastread = mutt_date_epoch();
 
   /* handle untagged messages. The caller still gets its shot afterwards. */
   if ((mutt_str_startswith(adata->buf, "* ", CASE_MATCH) ||
index fd94292c327a5fb3d2175fcc6644438ab6291c5b..397feb47d5462eeece7b9af27a07fb3dde66dc52 100644 (file)
@@ -1197,7 +1197,7 @@ int imap_check_mailbox(struct Mailbox *m, bool force)
 
   /* try IDLE first, unless force is set */
   if (!force && C_ImapIdle && (adata->capabilities & IMAP_CAP_IDLE) &&
-      ((adata->state != IMAP_IDLE) || (time(NULL) >= adata->lastread + C_ImapKeepalive)))
+      ((adata->state != IMAP_IDLE) || (mutt_date_epoch() >= adata->lastread + C_ImapKeepalive)))
   {
     if (imap_cmd_idle(adata) < 0)
       return -1;
@@ -1219,7 +1219,7 @@ int imap_check_mailbox(struct Mailbox *m, bool force)
     }
   }
 
-  if ((force || ((adata->state != IMAP_IDLE) && (time(NULL) >= adata->lastread + C_Timeout))) &&
+  if ((force || ((adata->state != IMAP_IDLE) && (mutt_date_epoch() >= adata->lastread + C_Timeout))) &&
       (imap_exec(adata, "NOOP", IMAP_CMD_POLL) != IMAP_EXEC_SUCCESS))
   {
     return -1;
index bc684bfd366fe1c0836b35c52d51d6ac4545b15e..69faacfc1ed2f9edc69ba05db5f9d1d4ea39990c 100644 (file)
@@ -1052,7 +1052,7 @@ void imap_unmunge_mbox_name(bool unicode, char *s)
  */
 void imap_keepalive(void)
 {
-  time_t now = time(NULL);
+  time_t now = mutt_date_epoch();
   struct Account *np = NULL;
   TAILQ_FOREACH(np, &NeoMutt->accounts, entries)
   {
diff --git a/init.c b/init.c
index b6f70ee7945f08d4063259543fc5cef12b08d22a..7ab7da38cec6c8b9ee18f6e85f1f373dbea74d7d 100644 (file)
--- a/init.c
+++ b/init.c
@@ -2988,8 +2988,8 @@ int mutt_init(bool skip_sys_rc, struct ListHead *commands)
   snprintf(AttachmentMarker, sizeof(AttachmentMarker), "\033]9;%" PRIu64 "\a", // Escape
            mutt_rand64());
 
-  snprintf(ProtectedHeaderMarker, sizeof(ProtectedHeaderMarker), "\033]8;%ld\a", // Escape
-           (long) time(NULL));
+  snprintf(ProtectedHeaderMarker, sizeof(ProtectedHeaderMarker), "\033]8;%lld\a", // Escape
+           (long long) mutt_date_epoch());
 
   /* "$spoolfile" precedence: config file, environment */
   const char *p = mutt_str_getenv("MAIL");
index ff1e87a72f46e44c55f0c63e14475cf930a6d4e9..de47cd18d158f49bcbb1afa1feed7894a871a678 100644 (file)
@@ -603,8 +603,8 @@ int maildir_msg_open_new(struct Mailbox *m, struct Message *msg, struct Email *e
   while (true)
   {
     snprintf(path, sizeof(path), "%s/tmp/%s.%lld.R%" PRIu64 ".%s%s",
-             mailbox_path(m), subdir, (long long) time(NULL), mutt_rand64(),
-             NONULL(ShortHostname), suffix);
+             mailbox_path(m), subdir, (long long) mutt_date_epoch(),
+             mutt_rand64(), NONULL(ShortHostname), suffix);
 
     mutt_debug(LL_DEBUG2, "Trying %s\n", path);
 
index a826af7dd0dc08a9eb27dc873ec8387f3ed93380..c1f0667ec4e94fa368e6bc970f3148d597ec210c 100644 (file)
@@ -997,8 +997,9 @@ int md_commit_message(struct Mailbox *m, struct Message *msg, struct Email *e)
   struct Buffer *full = mutt_buffer_pool_get();
   while (true)
   {
-    mutt_buffer_printf(path, "%s/%lld.R%" PRIu64 ".%s%s", subdir, (long long) time(NULL),
-                       mutt_rand64(), NONULL(ShortHostname), suffix);
+    mutt_buffer_printf(path, "%s/%lld.R%" PRIu64 ".%s%s", subdir,
+                       (long long) mutt_date_epoch(), mutt_rand64(),
+                       NONULL(ShortHostname), suffix);
     mutt_buffer_printf(full, "%s/%s", mailbox_path(m), mutt_b2s(path));
 
     mutt_debug(LL_DEBUG2, "renaming %s to %s\n", msg->path, mutt_b2s(full));
index ce50c873f5825807338957abcd9987b66591e3dd..bf53aeabdda1d1d72b5e46ce569031c1e4110e09 100644 (file)
@@ -205,7 +205,7 @@ time_t mutt_date_local_tz(time_t t)
     return 0;
 
   if (t == 0)
-    t = time(NULL);
+    t = mutt_date_epoch();
 
   struct tm tm = mutt_date_gmtime(t);
   return compute_tz(t, &tm);
@@ -373,7 +373,7 @@ char *mutt_date_make_date(char *buf, size_t buflen)
   if (!buf)
     return NULL;
 
-  time_t t = time(NULL);
+  time_t t = mutt_date_epoch();
   struct tm tm = mutt_date_localtime(t);
   time_t tz = mutt_date_local_tz(t);
 
@@ -403,6 +403,15 @@ int mutt_date_check_month(const char *s)
   return -1; /* error */
 }
 
+/**
+ * mutt_date_epoch - Return the number of seconds since the Unix epoch
+ * @retval s The number of s since the Unix epoch, or 0 on failure
+ */
+time_t mutt_date_epoch(void)
+{
+  return mutt_date_epoch_ms() / 1000;
+}
+
 /**
  * mutt_date_epoch_ms - Return the number of milliseconds since the Unix epoch
  * @retval ms The number of ms since the Unix epoch, or 0 on failure
@@ -729,7 +738,7 @@ struct tm mutt_date_localtime(time_t t)
   struct tm tm = { 0 };
 
   if (t == MUTT_DATE_NOW)
-    t = time(NULL);
+    t = mutt_date_epoch();
 
   localtime_r(&t, &tm);
   return tm;
@@ -747,7 +756,7 @@ struct tm mutt_date_gmtime(time_t t)
   struct tm tm = { 0 };
 
   if (t == MUTT_DATE_NOW)
-    t = time(NULL);
+    t = mutt_date_epoch();
 
   gmtime_r(&t, &tm);
   return tm;
index 81e4755f6d1b9408e69041aac8c5647150620373..eb19adf3c5eb57984f75e34d09766ea7c81dea4c 100644 (file)
@@ -48,6 +48,7 @@ struct Tz
 
 time_t    mutt_date_add_timeout(time_t now, long timeout);
 int       mutt_date_check_month(const char *s);
+time_t    mutt_date_epoch(void);
 size_t    mutt_date_epoch_ms(void);
 struct tm mutt_date_gmtime(time_t t);
 bool      mutt_date_is_day_name(const char *s);
index 080e7a2129c1a2d2c8dc607ccc33e911468cd274..9cd394af37d9cfb5c63149aa23a0c5d4f38e653f 100644 (file)
@@ -42,6 +42,7 @@
 #include <unistd.h>
 #include <utime.h>
 #include "file.h"
+#include "date.h"
 #include "buffer.h"
 #include "logging.h"
 #include "memory.h"
@@ -972,7 +973,7 @@ time_t mutt_file_decrease_mtime(const char *fp, struct stat *st)
   }
 
   mtime = st->st_mtime;
-  if (mtime == time(NULL))
+  if (mtime == mutt_date_epoch())
   {
     mtime -= 1;
     utim.actime = mtime;
index a885a8727d11a538fd8bf8a82f3a0e8a7f958883..62370cafaea68e7f4b8ba2b72ad9ebbd9cc30a0b 100644 (file)
@@ -80,7 +80,7 @@ static const char *timestamp(time_t stamp)
   static time_t last = 0;
 
   if (stamp == 0)
-    stamp = time(NULL);
+    stamp = mutt_date_epoch();
 
   if (stamp != last)
   {
@@ -424,7 +424,7 @@ int log_disp_queue(time_t stamp, const char *file, int line,
   }
 
   struct LogLine *ll = mutt_mem_calloc(1, sizeof(*ll));
-  ll->time = (stamp != 0) ? stamp : time(NULL);
+  ll->time = (stamp != 0) ? stamp : mutt_date_epoch();
   ll->file = file;
   ll->line = line;
   ll->function = function;
index 987909ab2089e508fa3586752a8719f12c06479b..3925d6ba6009c924bc5872f853467516f3f58ec2 100644 (file)
@@ -141,7 +141,7 @@ int mutt_mailbox_check(struct Mailbox *m_cur, int force)
   if (TAILQ_EMPTY(&NeoMutt->accounts))
     return 0;
 
-  t = time(NULL);
+  t = mutt_date_epoch();
   if (!force && (t - MailboxTime < C_MailCheck))
     return MailboxCount;
 
@@ -276,8 +276,8 @@ void mutt_mailbox_set_notified(struct Mailbox *m)
 #if HAVE_CLOCK_GETTIME
   clock_gettime(CLOCK_REALTIME, &m->last_visited);
 #else
+  m->last_visited.tv_sec = mutt_date_epoch();
   m->last_visited.tv_nsec = 0;
-  time(&m->last_visited.tv_sec);
 #endif
 }
 
@@ -377,7 +377,7 @@ void mutt_mailbox_cleanup(const char *path, struct stat *st)
       utimensat(0, buf, ts, 0);
 #else
       ut.actime = st->st_atime;
-      ut.modtime = time(NULL);
+      ut.modtime = mutt_date_epoch();
       utime(path, &ut);
 #endif
     }
diff --git a/mx.c b/mx.c
index b4a4c37795b956d8a7dd8a39d80caf1525f6d0e3..5ef920822556625001f5cb0ad1e3135528aeea05 100644 (file)
--- a/mx.c
+++ b/mx.c
@@ -980,7 +980,7 @@ struct Message *mx_msg_open_new(struct Mailbox *m, struct Email *e, MsgOpenFlags
   }
 
   if (msg->received == 0)
-    time(&msg->received);
+    msg->received = mutt_date_epoch();
 
   if (m->mx_ops->msg_open_new(m, msg, e) == 0)
   {
index 265cb2c83bb7a4d061886951a51c124120dec5a0..9218c36fc6ea378eabf52c0ee6672cda6bf9ef7c 100644 (file)
@@ -93,15 +93,13 @@ void pgp_class_void_passphrase(void)
  */
 bool pgp_class_valid_passphrase(void)
 {
-  time_t now = time(NULL);
-
   if (pgp_use_gpg_agent())
   {
     *PgpPass = '\0';
     return true; /* handled by gpg-agent */
   }
 
-  if (now < PgpExptime)
+  if (mutt_date_epoch() < PgpExptime)
   {
     /* Use cached copy.  */
     return true;
@@ -111,7 +109,7 @@ bool pgp_class_valid_passphrase(void)
 
   if (mutt_get_password(_("Enter PGP passphrase:"), PgpPass, sizeof(PgpPass)) == 0)
   {
-    PgpExptime = mutt_date_add_timeout(time(NULL), C_PgpTimeout);
+    PgpExptime = mutt_date_add_timeout(mutt_date_epoch(), C_PgpTimeout);
     return true;
   }
   else
index 882c19bd7e9ff4e9731759c264445ebfb054f9c5..0f55e5447d5b8538af7b64b47de82f7487e1248c 100644 (file)
@@ -171,8 +171,7 @@ void smime_class_void_passphrase(void)
  */
 bool smime_class_valid_passphrase(void)
 {
-  time_t now = time(NULL);
-
+  const time_t now = mutt_date_epoch();
   if (now < SmimeExptime)
   {
     /* Use cached copy.  */
@@ -183,7 +182,7 @@ bool smime_class_valid_passphrase(void)
 
   if (mutt_get_password(_("Enter S/MIME passphrase:"), SmimePass, sizeof(SmimePass)) == 0)
   {
-    SmimeExptime = mutt_date_add_timeout(time(NULL), C_SmimeTimeout);
+    SmimeExptime = mutt_date_add_timeout(now, C_SmimeTimeout);
     return true;
   }
   else
index 7410b2c172d876881691693f4b995c4f77aba21b..0ced104130443f53fa8f775c2de85f37533b9c63 100644 (file)
@@ -1543,7 +1543,7 @@ static int check_mailbox(struct Mailbox *m)
 
   struct NntpMboxData *mdata = m->mdata;
   struct NntpAccountData *adata = mdata->adata;
-  time_t now = time(NULL);
+  time_t now = mutt_date_epoch();
   int rc = 0;
   void *hc = NULL;
 
@@ -1772,7 +1772,7 @@ static int nntp_date(struct NntpAccountData *adata, time_t *now)
       }
     }
   }
-  time(now);
+  *now = mutt_date_epoch();
   return 0;
 }
 
@@ -2533,7 +2533,7 @@ static int nntp_mbox_open(struct Mailbox *m)
     }
   }
 
-  time(&adata->check_time);
+  adata->check_time = mutt_date_epoch();
   m->mdata = mdata;
   // Every known newsgroup has an mdata which is stored in adata->groups_list.
   // Currently we don't let the Mailbox free the mdata.
index 090eee14834fabe4b86d9fd7dc99549c2553aeb7..31e8e01d924f5e800251b54c1d20d613ae6ef0d2 100644 (file)
@@ -49,7 +49,6 @@
 #include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
-#include <time.h>
 #include <unistd.h>
 #include "notmuch_private.h"
 #include "mutt/mutt.h"
@@ -1691,7 +1690,7 @@ int nm_read_entire_thread(struct Mailbox *m, struct Email *e)
   notmuch_query_set_sort(q, NOTMUCH_SORT_NEWEST_FIRST);
 
   read_threads_query(m, q, true, 0);
-  m->mtime.tv_sec = time(NULL);
+  m->mtime.tv_sec = mutt_date_epoch();
   m->mtime.tv_nsec = 0;
   rc = 0;
 
@@ -1917,7 +1916,7 @@ int nm_update_filename(struct Mailbox *m, const char *old_file,
   int rc = rename_filename(m, old_file, new_file, e);
 
   nm_db_release(m);
-  m->mtime.tv_sec = time(NULL);
+  m->mtime.tv_sec = mutt_date_epoch();
   m->mtime.tv_nsec = 0;
   return rc;
 }
@@ -2200,7 +2199,7 @@ static int nm_mbox_open(struct Mailbox *m)
 
   nm_db_release(m);
 
-  m->mtime.tv_sec = time(NULL);
+  m->mtime.tv_sec = mutt_date_epoch();
   m->mtime.tv_nsec = 0;
 
   mdata->oldmsgcount = 0;
@@ -2327,7 +2326,7 @@ done:
 
   nm_db_release(m);
 
-  m->mtime.tv_sec = time(NULL);
+  m->mtime.tv_sec = mutt_date_epoch();
   m->mtime.tv_nsec = 0;
 
   mutt_debug(LL_DEBUG1, "nm: ... check done [count=%d, new_flags=%d, occult=%d]\n",
@@ -2418,7 +2417,7 @@ static int nm_mbox_sync(struct Mailbox *m, int *index_hint)
 
   if (changed)
   {
-    m->mtime.tv_sec = time(NULL);
+    m->mtime.tv_sec = mutt_date_epoch();
     m->mtime.tv_nsec = 0;
   }
 
@@ -2530,7 +2529,7 @@ done:
   nm_db_release(m);
   if (e->changed)
   {
-    m->mtime.tv_sec = time(NULL);
+    m->mtime.tv_sec = mutt_date_epoch();
     m->mtime.tv_nsec = 0;
   }
   mutt_debug(LL_DEBUG1, "nm: tags modify done [rc=%d]\n", rc);
index 3f015e31643b1e5153a61167618968edd28bf5db..e5ceefab1a39a1f70e7cab85c88b69f8d98e586e 100644 (file)
--- a/pop/pop.c
+++ b/pop/pop.c
@@ -383,7 +383,7 @@ static int pop_fetch_headers(struct Mailbox *m)
   header_cache_t *hc = pop_hcache_open(adata, mailbox_path(m));
 #endif
 
-  time(&adata->check_time);
+  adata->check_time = mutt_date_epoch();
   adata->clear_cache = false;
 
   if (!m->emails)
@@ -896,7 +896,7 @@ static int pop_mbox_check(struct Mailbox *m, int *index_hint)
 
   struct PopAccountData *adata = pop_adata_get(m);
 
-  if ((adata->check_time + C_PopCheckinterval) > time(NULL))
+  if ((adata->check_time + C_PopCheckinterval) > mutt_date_epoch())
     return 0;
 
   pop_logout(m);
index c42a4aff443ba5f32eaa23ba1a00de2fa44add23..993a73435536d5e30270c82318b1f7fe8d7d4f2a 100644 (file)
@@ -143,17 +143,6 @@ static bool progress_time_needs_update(const struct Progress *progress, size_t n
   return (C_TimeInc == 0) || (now < progress->timestamp) || (C_TimeInc < elapsed);
 }
 
-/**
- * progress_timestamp - Return the number of milliseconds since the Unix epoch
- * @retval ms Milliseconds since the Unix epoch
- */
-static size_t progress_timestamp(void)
-{
-  struct timeval tv = { 0, 0 };
-  gettimeofday(&tv, NULL);
-  return tv.tv_sec * 1000 + tv.tv_usec / 1000;
-}
-
 /**
  * mutt_progress_init - Set up a progress bar
  * @param progress Progress bar
@@ -225,7 +214,7 @@ void mutt_progress_update(struct Progress *progress, size_t pos, int percent)
   if (OptNoCurses)
     return;
 
-  const size_t now = progress_timestamp();
+  const size_t now = mutt_date_epoch_ms();
 
   const bool update = (pos == 0) /* always show the first update */ ||
                       (progress_pos_needs_update(progress, pos) &&
diff --git a/send.c b/send.c
index 799b55703e64f69942ae9af31323e1d48ab8d8f7..59292c1a56146ac817b68abe94ffe6e8283d9f65 100644 (file)
--- a/send.c
+++ b/send.c
@@ -1660,7 +1660,7 @@ full_fcc:
     /* update received time so that when storing to a mbox-style folder
      * the From_ line contains the current time instead of when the
      * message was first postponed.  */
-    e->received = time(NULL);
+    e->received = mutt_date_epoch();
     rc = mutt_write_multiple_fcc(fcc, e, NULL, false, NULL, finalpath);
     while (rc && !(flags & SEND_BATCH))
     {
index d5e6c99859b4be74d4fb2df10fffc48a8b809347..b32709f4c6aff2aad69c85216a2a701e46e059f3 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -1417,7 +1417,7 @@ static void set_encoding(struct Body *b, struct Content *info)
  */
 void mutt_stamp_attachment(struct Body *a)
 {
-  a->stamp = time(NULL);
+  a->stamp = mutt_date_epoch();
 }
 
 /**
index 0c90beffe7f716715373787c6bf5e2412f2f365e..811856b826f21dcc32974c9bf14d5de6346661fb 100644 (file)
@@ -29,7 +29,7 @@ void test_mutt_date_add_timeout(void)
 {
   // time_t mutt_date_add_timeout(time_t now, long timeout);
 
-  time_t now = time(NULL);
+  time_t now = mutt_date_epoch();
 
   TEST_CHECK(mutt_date_add_timeout(now, -1000) == now);
   TEST_CHECK(mutt_date_add_timeout(now, -1) == now);