use more ad-hoc list handling function, and avoid to muck with ->next
[apps/madmutt.git] / muttlib.c
index fbd4564..d607b4f 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
@@ -402,35 +402,36 @@ char *_mutt_expand_path (char *s, ssize_t slen, int rx)
 
 char *mutt_get_parameter (const char *s, PARAMETER * p)
 {
 
 char *mutt_get_parameter (const char *s, PARAMETER * p)
 {
-  for (; p; p = p->next)
-    if (ascii_strcasecmp (s, p->attribute) == 0)
-      return (p->value);
+    while (p) {
+        if (!ascii_strcasecmp(s, p->attribute))
+            return (p->value);
+        p = p->next;
+    }
 
 
-  return NULL;
+    return NULL;
 }
 
 void mutt_set_parameter (const char *attribute, const char *value,
                          PARAMETER ** p)
 {
 }
 
 void mutt_set_parameter (const char *attribute, const char *value,
                          PARAMETER ** p)
 {
-  PARAMETER *q;
+    PARAMETER *q;
 
 
-  if (!value) {
-    mutt_delete_parameter (attribute, p);
-    return;
-  }
+    if (!value) {
+        mutt_delete_parameter (attribute, p);
+        return;
+    }
 
 
-  for (q = *p; q; q = q->next) {
-    if (ascii_strcasecmp (attribute, q->attribute) == 0) {
-      m_strreplace(&q->value, value);
-      return;
+    for (q = *p; q; q = q->next) {
+        if (ascii_strcasecmp (attribute, q->attribute) == 0) {
+            m_strreplace(&q->value, value);
+            return;
+        }
     }
     }
-  }
 
 
-  q = parameter_new();
-  q->attribute = m_strdup(attribute);
-  q->value = m_strdup(value);
-  q->next = *p;
-  *p = q;
+    q = parameter_new();
+    q->attribute = m_strdup(attribute);
+    q->value = m_strdup(value);
+    parameter_list_push(p, q);
 }
 
 void mutt_delete_parameter (const char *attribute, PARAMETER ** p)
 }
 
 void mutt_delete_parameter (const char *attribute, PARAMETER ** p)