tmp
[apps/madmutt.git] / lib-mime / rfc2231.c
index 27c9c0e..760bf11 100644 (file)
@@ -128,24 +128,10 @@ rfc2231_list_insert(rfc2231_param **list, rfc2231_param *par)
     *list = par;
 }
 
-static void purge_empty_parameters(parameter_t **headp)
-{
-    while (*headp) {
-        parameter_t *p = *headp;
-
-        if (!p->attribute || !p->value) {
-            p = parameter_list_pop(headp);
-            parameter_delete(&p);
-        } else {
-            headp = &(*headp)->next;
-        }
-    }
-}
-
 /* process continuation parameters */
 /* XXX: MC: not read */
 static void
-rfc2231_join_continuations(parameter_t **head, rfc2231_param *par)
+rfc2231_join_continuations(parameters_t *head, rfc2231_param *par)
 {
     rfc2231_param *q;
 
@@ -158,7 +144,6 @@ rfc2231_join_continuations(parameter_t **head, rfc2231_param *par)
     size_t l, vl;
 
     while (par) {
-        value = NULL;
         l = 0;
 
         m_strcpy(attribute, sizeof(attribute), par->attribute);
@@ -184,15 +169,13 @@ rfc2231_join_continuations(parameter_t **head, rfc2231_param *par)
                 valp = par->value;
         } while (par && !m_strcmp(par->attribute, attribute));
 
-        if (value) {
-            if (encoded)
-                mutt_convert_string (&value, charset, mod_cset.charset, M_ICONV_HOOK_FROM);
-            *head = parameter_new();
-            (*head)->attribute = m_strdup(attribute);
-            (*head)->value = value;
-            head = &(*head)->next;
-        }
+        if (!value)
+            continue;
+        if (encoded)
+            mutt_convert_string (&value, charset, mod_cset.charset, M_ICONV_HOOK_FROM);
+        parameter_setval(head, attribute, value);
     }
+    p_delete(&value);
 }
 
 /****************************************************************************/
@@ -200,8 +183,9 @@ rfc2231_join_continuations(parameter_t **head, rfc2231_param *par)
 /****************************************************************************/
 
 /* XXX: MC: not read */
-void rfc2231_decode_parameters (parameter_t ** headp)
+void rfc2231_decode_parameters(parameters_t *headp)
 {
+#if 0
     parameter_t *head = NULL;
     parameter_t **last;
     parameter_t *p, *q;
@@ -219,7 +203,7 @@ void rfc2231_decode_parameters (parameter_t ** headp)
     if (!headp)
         return;
 
-    purge_empty_parameters (headp);
+    parameter_purge_empty(headp);
 
     for (last = &head, p = *headp; p; p = q) {
         q = p->next;
@@ -288,7 +272,8 @@ void rfc2231_decode_parameters (parameter_t ** headp)
     *headp = head;
 
     if (dirty)
-        purge_empty_parameters (headp);
+        parameter_purge_empty(headp);
+#endif
 }
 
 #define RFC2231_SPECIALS  "@.,;:<>[]\\\"()?/= \t*'%"