Huw Davies : inetcomm: Unfold headers.
Alexandre Julliard
julliard at winehq.org
Tue Nov 27 09:54:26 CST 2007
Module: wine
Branch: master
Commit: 03ca389550d97f2c3408bf02eeb818e38b656dd4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=03ca389550d97f2c3408bf02eeb818e38b656dd4
Author: Huw Davies <huw at codeweavers.com>
Date: Mon Nov 26 12:02:35 2007 +0000
inetcomm: Unfold headers.
---
dlls/inetcomm/mimeole.c | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c
index 5d33537..8e4df70 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;
More information about the wine-cvs
mailing list