summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-04-14 21:19:00 -0400
committerJune McEnroe <june@causal.agency>2020-04-14 21:19:00 -0400
commit80191306f44ab262c83b354d2e4442e807249aeb (patch)
tree4dbb0dd3102461a3ad728cd07fb80b0ab5d497ef
parentFind text content for Atom in multipart/mixed and /alternative (diff)
downloadbubger-80191306f44ab262c83b354d2e4442e807249aeb.tar.gz
bubger-80191306f44ab262c83b354d2e4442e807249aeb.zip
Parse . as an atom on its own
-rw-r--r--export.c2
-rw-r--r--imap.c2
-rw-r--r--imap.h3
3 files changed, 4 insertions, 3 deletions
diff --git a/export.c b/export.c
index 5647086..644055c 100644
--- a/export.c
+++ b/export.c
@@ -170,7 +170,7 @@ bool exportData(FILE *imap, enum Atom tag, struct List items) {
 
 		if (section.ptr[0].type == Atom) {
 			name = section.ptr[0].atom;
-			if (name == AtomHeaderFields) {
+			if (name == AtomHeader) {
 				bodyHeader = data;
 			} else if (name == AtomText) {
 				bodyText = data;
diff --git a/imap.c b/imap.c
index 9743ac8..b47a520 100644
--- a/imap.c
+++ b/imap.c
@@ -97,7 +97,7 @@ static void imapLine(FILE *imap) {
 }
 
 static struct Data parseAtom(void) {
-	size_t len = strcspn(ptr, " ()[]{\"");
+	size_t len = (*ptr == '.' ? 1 : strcspn(ptr, " .()[]{\""));
 	struct Data data = {
 		.type = Atom,
 		.atom = atomn(ptr, len),
diff --git a/imap.h b/imap.h
index a2c13bd..0aa5636 100644
--- a/imap.h
+++ b/imap.h
@@ -57,8 +57,9 @@
 	X(AtomEnvelope, "ENVELOPE") \
 	X(AtomBodyStructure, "BODYSTRUCTURE") \
 	X(AtomBody, "BODY") \
-	X(AtomHeaderFields, "HEADER.FIELDS") \
+	X(AtomHeader, "HEADER") \
 	X(AtomText, "TEXT") \
+	X(AtomDot, ".") \
 	X(AtomUntagged, "*")
 
 enum Atom {
span>June McEnroe 2021-08-26Support DESTDIR in install/uninstallJune McEnroe 2021-08-26Add version number generatorJune McEnroe 2021-08-22Add ISC license headerJune McEnroe 2021-08-22Update to Linux man-pages 5.12Štěpán Němec 2021-06-21Add manuals for macOS 11.3June McEnroe 2021-05-08Update to OpenBSD 6.9June McEnroe 2021-04-26Update to Linux man-pages 5.11June McEnroe 2021-04-26Update to FreeBSD 13.0June McEnroe 2021-01-27Completely rewrite how manuals are fetched and installedJune McEnroe Also add section 6 manuals from NetBSD and OpenBSD! 2020-12-14Update to man-pages-posix 2017-aJune McEnroe 2020-12-14Update to OpenBSD 6.8June McEnroe 2020-12-14Update to NetBSD 9.1June McEnroe 2020-12-14Update to man-pages 5.09June McEnroe 2020-12-14Update to FreeBSD 12.2June McEnroe 2020-06-08Update to OpenBSD 6.7June McEnroe 2020-05-04Add hack for macOS to search extra man sectionsJune McEnroe 2020-05-04Don't clear MANSECTJune McEnroe