about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-04-26 19:33:35 -0400
committerJune McEnroe <june@causal.agency>2020-04-26 19:34:25 -0400
commit1af3e4b0d325565abcb3dc3dac1fcaf960f6e9d6 (patch)
tree5d222cde61b1d2552da0167ecf27de7fa935d8de
parentInclude Cc address in reply mailtos (diff)
downloadbubger-1af3e4b0d325565abcb3dc3dac1fcaf960f6e9d6.tar.gz
bubger-1af3e4b0d325565abcb3dc3dac1fcaf960f6e9d6.zip
Iterate through nested multiparts to find content for Atom
Also fixes content for multipart/signed.
-rw-r--r--export.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/export.c b/export.c
index ab77587..fb26e74 100644
--- a/export.c
+++ b/export.c
@@ -120,16 +120,17 @@ static void exportAtom(
 	if (error) err(EX_IOERR, "%s", path);
 
 	const struct BodyPart *part = structure;
-	if (bodyPartType(part, "multipart", "mixed")) {
-		part = &part->parts.ptr[0];
-		body = dataCheck(body, List).list.ptr[0];
-	}
-	if (bodyPartType(part, "multipart", "alternative")) {
-		for (size_t i = part->parts.len - 1; i < part->parts.len; --i) {
-			if (!isInline(&part->parts.ptr[i])) continue;
-			part = &part->parts.ptr[i];
-			body = dataCheck(body, List).list.ptr[i];
-			break;
+	while (part->multipart) {
+		if (bodyPartType(part, "multipart", "alternative")) {
+			for (size_t i = part->parts.len - 1; i < part->parts.len; --i) {
+				if (!isInline(&part->parts.ptr[i])) continue;
+				part = &part->parts.ptr[i];
+				body = dataCheck(body, List).list.ptr[i];
+				break;
+			}
+		} else {
+			part = &part->parts.ptr[0];
+			body = dataCheck(body, List).list.ptr[0];
 		}
 	}
 	if (isInline(part)) {
r> 2020-03-09Remove extraneous files from sh sourcesJune McEnroe 2020-03-09Import /usr/src/bin/sh from FreeBSD 12.1-RELEASEJune McEnroe 2020-03-09Remove 1sh sourcesJune McEnroe I'm going to recreate it from fresh sh sources for clean git history. 2020-03-08Add The Stone SkyJune McEnroe 2020-03-08Publish "How I Relay Chat"June McEnroe 2020-03-03Don't use $ inside $(())June McEnroe 2020-03-03Remove setoptJune McEnroe 2020-03-03Use getopts in shell scriptsJune McEnroe WTF why did no one tell me about this? 2020-02-27Style %T outside of Rs in italicJune McEnroe 2020-02-26Add Fierce Femmes and Notorious LiarsJune McEnroe 2020-02-23Add This Is How You Lose the Time WarJune McEnroe 2020-02-22Add See Ya LaterJune McEnroe 2020-02-20Remove wiki scriptJune McEnroe Wikipedia seems to have removed the one-sentence extracts from the opensearch results. Too bad. It's not a wiki script, what we need is a command that fetches single-sentence summaries of articles on Wikipedia. 2020-02-19Add The Obelisk GateJune McEnroe 2020-02-17Add Four Tet — HandsJune McEnroe One from the cafe that caught my attention. 2020-02-12Simplify macOS notify-sendJune McEnroe 2020-02-12Add imbox and notemap to pageJune McEnroe 2020-02-12Collapse simple linksJune McEnroe 2020-02-12Move catgirl up the pageJune McEnroe 2020-02-12Update catgirl pty grabJune McEnroe 2020-02-12Link to cgit /about pages where appropriateJune McEnroe 2020-02-11Separate LINKS from BINS for html to workJune McEnroe 2020-02-11Add margin to Bl-bullet itemsJune McEnroe 2020-02-10Match URLs inside parens or with paired parens insideJune McEnroe 2020-02-10Duplicate effective URL before passing it back to curlJune McEnroe Apparently sometimes it didn't like receiving its own internal storage to parse again. Understandable. 2020-02-09Add To Be Taught, If FortunateJune McEnroe 2020-02-04Add The Future of Another TimelineJune McEnroe Wow. One of the best I've read. 2020-01-31Reorganize the Makefile for the umpteenth timeJune McEnroe Broke out LDLIBS for each bin, and made everything more uniform. 2020-01-28Change scout sensitivity to 1.4June McEnroe idk it seems to work. 2020-01-28Import shows.txtJune McEnroe