diff options
author | June McEnroe <june@causal.agency> | 2019-12-23 14:33:18 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-12-23 14:33:18 -0500 |
commit | d806183d7b72a7ed5b8e8b12aeaf20c5306aaf52 (patch) | |
tree | 01c7b80f059781932949c1f886a70250cbd7e3fa | |
parent | Restrict search to plain-text messages (diff) | |
download | imbox-d806183d7b72a7ed5b8e8b12aeaf20c5306aaf52.tar.gz imbox-d806183d7b72a7ed5b8e8b12aeaf20c5306aaf52.zip |
Handle folded From headers
-rw-r--r-- | imbox.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/imbox.c b/imbox.c index e620a61..a55b09f 100644 --- a/imbox.c +++ b/imbox.c @@ -66,11 +66,11 @@ static void mboxrd(const char *headers, const char *body) { (int)((match).rm_eo - (match).rm_so), &(str)[(match).rm_so] static regex_t fromRegex, dateRegex; - compile(&fromRegex, "^From: .*<([^>]+)>"); - regmatch_t from[2]; - int error = regexec(&fromRegex, headers, 2, from, 0); + compile(&fromRegex, "^From: ([^\r]|\r\n[ \t])*<([^>]+)>"); + regmatch_t from[3]; + int error = regexec(&fromRegex, headers, 3, from, 0); if (error) errx(EX_DATAERR, "missing From header"); - printf("From %.*s ", MATCH(headers, from[1])); + printf("From %.*s ", MATCH(headers, from[2])); // Day, Date Month Year Time -> Day Month Date Time Year compile(&dateRegex, "^Date: (...), (..) (...) (....) (.{8})"); |