mhl and mhbuild ignore to long lines
[mmh] / uip / mhparse.c
index a478b42..2b72e7b 100644 (file)
@@ -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;