about summary refs log tree commit diff
path: root/contrib/malternative
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/malternative')
-rwxr-xr-xcontrib/malternative16
1 files changed, 16 insertions, 0 deletions
diff --git a/contrib/malternative b/contrib/malternative
new file mode 100755
index 0000000..db54841
--- /dev/null
+++ b/contrib/malternative
@@ -0,0 +1,16 @@
+#!/bin/sh
+# malternative - multipart/alternative decoding policy
+
+{
+	echo "Content-Type: $PIPE_CONTENTTYPE"
+	echo
+	cat
+} | mshow -t /dev/stdin | awk '
+	BEGIN { split("", ct) }
+	/^    [0-9]/ { ct[++n] = $2 }
+	function prefer(t) { for (i in ct) if (ct[i] == t) exit(64+i) }
+	END {
+		prefer("text/plain")
+		prefer("text/html")
+		exit 64+1  # default to first part
+	}'