summaryrefslogtreecommitdiffstats
path: root/rfc2045/rfc2045searchcontenttype.c
diff options
context:
space:
mode:
authorSam Varshavchik2013-08-19 16:39:41 -0400
committerSam Varshavchik2013-08-25 14:43:51 -0400
commit9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch)
tree7a81a04cb51efb078ee350859a64be2ebc6b8813 /rfc2045/rfc2045searchcontenttype.c
parenta9520698b770168d1f33d6301463bb70a19655ec (diff)
downloadcourier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2
Initial checkin
Imported from subversion report, converted to git. Updated all paths in scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'rfc2045/rfc2045searchcontenttype.c')
-rw-r--r--rfc2045/rfc2045searchcontenttype.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/rfc2045/rfc2045searchcontenttype.c b/rfc2045/rfc2045searchcontenttype.c
new file mode 100644
index 0000000..50ce267
--- /dev/null
+++ b/rfc2045/rfc2045searchcontenttype.c
@@ -0,0 +1,41 @@
+/*
+** Copyright 2000 Double Precision, Inc. See COPYING for
+** distribution information.
+*/
+
+#include "rfc2045_config.h"
+#include "rfc2045.h"
+
+
+/*
+** This function is generally called to find the "primary" text/plain
+** section in a MIME message which, presumably, contains the main message
+** text.
+**
+** Still the content type is set as a parameter in the event, I guess, we'll
+** ever be able to grok text/html.
+**
+** We'll return a NULL pointer if we can't find it.
+*/
+
+struct rfc2045 *rfc2045_searchcontenttype(struct rfc2045 *rfc, const char *ct)
+{
+ const char *content_type, *dummy;
+ struct rfc2045 *p;
+
+ rfc2045_mimeinfo(rfc, &content_type, &dummy, &dummy);
+ if (strcmp(content_type, ct) == 0)
+ return (rfc);
+
+ for (p=rfc->firstpart; p; p=p->next)
+ {
+ if (p->isdummy) continue;
+ rfc2045_mimeinfo(p, &content_type, &dummy, &dummy);
+ if (strcmp(content_type, ct) == 0)
+ break;
+ if (strncmp(content_type, "multipart/", 10) == 0)
+ return(rfc2045_searchcontenttype(p, ct));
+ }
+
+ return (p);
+}