X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-mime%2Frfc822parse.c;h=3afeb7c0fd1e6744ecfd8737a56e66851bd39794;hb=9f73142b38da00f437415d502caa54ab230bd7f0;hp=d5614fc56cf26505fc56ea5df5e8987378829b0f;hpb=ee48d4232053aee30adb5afb48b147e31d7aedfa;p=apps%2Fmadmutt.git diff --git a/lib-mime/rfc822parse.c b/lib-mime/rfc822parse.c index d5614fc..3afeb7c 100644 --- a/lib-mime/rfc822parse.c +++ b/lib-mime/rfc822parse.c @@ -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, @@ -1058,3 +1060,72 @@ int mutt_count_body_parts(HEADER *hdr, int flags) hdr->attach_valid = 1; return hdr->attach_total; } + +/* + * A valid message separator looks like: + * + * From [ ]