X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhparse.c;h=2b72e7bc277cbd7e34f2569ddf7cf166d23b38d0;hb=refs%2Fheads%2Fpick;hp=a478b4271f98ff3c4a31aa40ba3d9220fc772e18;hpb=143328edd5842208e53d3f2427a6059d604eb78e;p=mmh diff --git a/uip/mhparse.c b/uip/mhparse.c index a478b42..2b72e7b 100644 --- a/uip/mhparse.c +++ b/uip/mhparse.c @@ -234,6 +234,7 @@ get_content(FILE *in, char *file, int toplevel) enum state state; struct field f = {{0}}; int compnum; + char *buf; CT ct; HF hp; @@ -259,8 +260,17 @@ get_content(FILE *in, char *file, int toplevel) } compnum++; + /* decode rfc2047 */ + buf = mh_xcalloc(sizeof(char *), f.valuelen); + if (!decode_rfc2047(f.value, buf, f.valuelen)) { + mh_free0(&buf); + buf = mh_xstrdup(f.value); + } + /* add the header data to the list */ - add_header(ct, mh_xstrdup(f.name), mh_xstrdup(f.value)); + add_header(ct, mh_xstrdup(f.name), buf); + + buf = NULL; ct->c_begin = ftell(in) + 1; continue;