about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--imbox.c8
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})");