Remove the time module alltogether.
[apps/madmutt.git] / lib-mime / rfc822parse.c
index c39eccc..3afeb7c 100644 (file)
@@ -592,20 +592,22 @@ time_t mutt_parse_date(const char *s, HEADER *h)
 {
     struct tm tm;
     const char *loc;
-    loc = setlocale(LC_TIME, "C");
+    time_t tz;
 
+    loc = setlocale(LC_ALL, "C");
     p_clear(&tm, 1);
     if (strptime(s, "%a, %d %b %Y %H:%M:%S %z", &tm))
         goto ok;
     p_clear(&tm, 1);
     if (strptime(s, "%a, %d %b %Y %H:%M %z", &tm))
         goto ok;
-    setlocale(LC_TIME, loc);
+    setlocale(LC_ALL, "");
     return 0;
 
   ok:
-    setlocale(LC_TIME, loc);
-    return mutt_mktime(&tm, 1);
+    setlocale(LC_ALL, "");
+    tz = tm.tm_gmtoff;
+    return timegm(&tm) - tz;
 }
 
 string_list_t **mutt_parse_rfc822_line(ENVELOPE *e, HEADER *hdr, char *line, char *p,
@@ -1121,7 +1123,9 @@ bool is_from(const char *s, char *path, ssize_t pathlen, time_t *tp)
     return false;
 
   ok:
-    if (tp)
-        *tp = mutt_mktime(&tm, 1);
+    if (tp) {
+        *tp = tm.tm_gmtoff;
+        *tp = timegm(&tm) - *tp;
+    }
     return true;
 }