summary refs log tree commit diff
path: root/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/parse.c b/parse.c
index d491e53..5c4eba0 100644
--- a/parse.c
+++ b/parse.c
@@ -18,6 +18,7 @@
 #include <err.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <strings.h>
 #include <sysexits.h>
 
 #include "archive.h"
@@ -63,7 +64,6 @@ void parseEnvelope(struct Envelope *envelope, struct List list) {
 	if (list.len < EnvelopeLen) {
 		errx(EX_PROTOCOL, "missing envelope structure fields");
 	}
-
 	
 	struct tm time;
 	const char *date = dataCheck(list.ptr[Date], String).string;
@@ -142,7 +142,7 @@ static void parseNonMultipart(struct BodyPart *part, struct List list) {
 	list.len -= BasicLen;
 	list.ptr += BasicLen;
 
-	if (!strcmp(part->type, "MESSAGE") && !strcmp(part->subtype, "RFC822")) {
+	if (bodyPartType(part, "message", "rfc822")) {
 		enum { Envelope, BodyStructure, Lines, MessageLen };
 		if (list.len < MessageLen) {
 			errx(EX_PROTOCOL, "missing body part message fields");
@@ -167,7 +167,7 @@ static void parseNonMultipart(struct BodyPart *part, struct List list) {
 		list.ptr += MessageLen;
 	}
 
-	if (!strcmp(part->type, "TEXT")) {
+	if (!strcasecmp(part->type, "text")) {
 		if (!list.len) errx(EX_PROTOCOL, "missing body part text lines");
 		part->text.lines = dataCheck(list.ptr[0], Number).number;
 		list.len--;