From 03ca389550d97f2c3408bf02eeb818e38b656dd4 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Mon, 26 Nov 2007 12:02:35 +0000 Subject: [PATCH] inetcomm: Unfold headers. --- dlls/inetcomm/mimeole.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c index 5d335374556..8e4df7076a1 100644 --- a/dlls/inetcomm/mimeole.c +++ b/dlls/inetcomm/mimeole.c @@ -228,6 +228,31 @@ static header_t *read_prop(MimeBody *body, char **ptr) return ret; } +static void unfold_header(char *header, int len) +{ + char *start = header, *cp = header; + + do { + while(*cp == ' ' || *cp == '\t') + { + cp++; + len--; + } + if(cp != start) + memmove(start, cp, len + 1); + + cp = strstr(start, "\r\n"); + len -= (cp - start); + start = cp; + *start = ' '; + start++; + len--; + cp += 2; + } while(*cp == ' ' || *cp == '\t'); + + *(start - 1) = '\0'; +} + static void read_value(header_t *header, char **cur) { char *end = *cur, *value; @@ -243,6 +268,9 @@ static void read_value(header_t *header, char **cur) memcpy(value, *cur, len); value[len] = '\0'; + unfold_header(value, len); + TRACE("value %s\n", debugstr_a(value)); + header->value.vt = VT_LPSTR; header->value.pszVal = value; -- 2.11.4.GIT