From 248ed48727433736fdb37feee4968d9f5e38ce41 Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Sat, 16 Jul 2016 22:18:46 +0200 Subject: rfc2045: add blaze822_mime_parameter --- rfc2045.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'rfc2045.c') diff --git a/rfc2045.c b/rfc2045.c index c34d03f..881bd5f 100644 --- a/rfc2045.c +++ b/rfc2045.c @@ -58,6 +58,47 @@ blaze822_mime_body(struct message *msg, return 1; } +int +blaze822_mime_parameter(char *s, char *name, char **starto, char **stopo) +{ + s = strchr(s, ';'); + if (!s) + return 0; + s++; + + size_t namelen = strlen(name); + + while (*s) { + while (iswsp(*s)) + s++; + if (strncasecmp(s, name, namelen) == 0 && s[namelen] == '=') { + s += namelen + 1; + break; + } + s = strchr(s+1, ';'); + if (!s) + return 0; + s++; + } + if (!s || !*s) + return 0; + char *e; + if (*s == '"') { + s++; + e = strchr(s, '"'); + if (!e) + return 0; + } else { + e = s; + while (*e && !iswsp(*e) && *e != ';') + e++; + } + + *starto = s; + *stopo = e; + return 1; +} + int blaze822_multipart(struct message *msg, struct message **imsg) { -- cgit 1.4.1