Fix uip/whom.c for C89 compatibility
[mmh] / uip / mhfree.c
index c9a0418..5378c35 100644 (file)
@@ -8,9 +8,11 @@
 */
 
 #include <h/mh.h>
+#include <h/utils.h>
 #include <errno.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
+#include <unistd.h>
 
 /* The list of top-level contents to display */
 CT *cts = NULL;
@@ -48,13 +50,13 @@ free_content(CT ct)
        free_header(ct);
 
        if (ct->c_partno)
-               free(ct->c_partno);
+               mh_free0(&(ct->c_partno));
 
        if (ct->c_vrsn)
-               free(ct->c_vrsn);
+               mh_free0(&(ct->c_vrsn));
 
        if (ct->c_ctline)
-               free(ct->c_ctline);
+               mh_free0(&(ct->c_ctline));
 
        free_ctinfo(ct);
 
@@ -79,39 +81,39 @@ free_content(CT ct)
        }
 
        if (ct->c_charset)
-               free(ct->c_charset);
+               mh_free0(&(ct->c_charset));
        if (ct->c_showproc)
-               free(ct->c_showproc);
+               mh_free0(&(ct->c_showproc));
        if (ct->c_storeproc)
-               free(ct->c_storeproc);
+               mh_free0(&(ct->c_storeproc));
 
        if (ct->c_celine)
-               free(ct->c_celine);
+               mh_free0(&(ct->c_celine));
 
        /* free structures for content encodings */
        free_encoding(ct, 1);
 
        if (ct->c_id)
-               free(ct->c_id);
+               mh_free0(&(ct->c_id));
        if (ct->c_descr)
-               free(ct->c_descr);
+               mh_free0(&(ct->c_descr));
        if (ct->c_dispo)
-               free(ct->c_dispo);
+               mh_free0(&(ct->c_dispo));
 
        if (ct->c_file) {
                if (ct->c_unlink)
                        unlink(ct->c_file);
-               free(ct->c_file);
+               mh_free0(&(ct->c_file));
        }
        if (ct->c_fp)
                fclose(ct->c_fp);
 
        if (ct->c_storage)
-               free(ct->c_storage);
+               mh_free0(&(ct->c_storage));
        if (ct->c_folder)
-               free(ct->c_folder);
+               mh_free0(&(ct->c_folder));
 
-       free(ct);
+       mh_free0(&ct);
 }
 
 
@@ -129,9 +131,9 @@ free_header(CT ct)
        while (hp1) {
                hp2 = hp1->next;
 
-               free(hp1->name);
-               free(hp1->value);
-               free(hp1);
+               mh_free0(&(hp1->name));
+               mh_free0(&(hp1->value));
+               mh_free0(&hp1);
 
                hp1 = hp2;
        }
@@ -149,24 +151,19 @@ free_ctinfo(CT ct)
 
        ci = &ct->c_ctinfo;
        if (ci->ci_type) {
-               free(ci->ci_type);
-               ci->ci_type = NULL;
+               mh_free0(&(ci->ci_type));
        }
        if (ci->ci_subtype) {
-               free(ci->ci_subtype);
-               ci->ci_subtype = NULL;
+               mh_free0(&(ci->ci_subtype));
        }
        for (ap = ci->ci_attrs; *ap; ap++) {
-               free(*ap);
-               *ap = NULL;
+               mh_free0(ap);
        }
        if (ci->ci_comment) {
-               free(ci->ci_comment);
-               ci->ci_comment = NULL;
+               mh_free0(&(ci->ci_comment));
        }
        if (ci->ci_magic) {
-               free(ci->ci_magic);
-               ci->ci_magic = NULL;
+               mh_free0(&(ci->ci_magic));
        }
 }
 
@@ -179,8 +176,7 @@ free_text(CT ct)
        if (!(t = (struct text *) ct->c_ctparams))
                return;
 
-       free((char *) t);
-       ct->c_ctparams = NULL;
+       mh_free0(&t);
 }
 
 
@@ -194,19 +190,17 @@ free_multi(CT ct)
                return;
 
        if (m->mp_start)
-               free(m->mp_start);
+               mh_free0(&(m->mp_start));
        if (m->mp_stop)
-               free(m->mp_stop);
+               mh_free0(&(m->mp_stop));
 
        for (part = m->mp_parts; part; part = next) {
                next = part->mp_next;
                free_content(part->mp_part);
-               free((char *) part);
+               mh_free0(&part);
        }
-       m->mp_parts = NULL;
 
-       free((char *) m);
-       ct->c_ctparams = NULL;
+       mh_free0(&m);
 }
 
 
@@ -219,10 +213,9 @@ free_partial(CT ct)
                return;
 
        if (p->pm_partid)
-               free(p->pm_partid);
+               mh_free0(&(p->pm_partid));
 
-       free((char *) p);
-       ct->c_ctparams = NULL;
+       mh_free0(&p);
 }
 
 
@@ -247,13 +240,11 @@ free_encoding(CT ct, int toplevel)
        if (ce->ce_file) {
                if (ce->ce_unlink)
                        unlink(ce->ce_file);
-               free(ce->ce_file);
-               ce->ce_file = NULL;
+               mh_free0(&(ce->ce_file));
        }
 
        if (toplevel) {
-               free((char *) ce);
-               ct->c_cefile = NULL;
+               mh_free0(&ce);
        } else {
                ct->c_ceopenfnx = NULL;
        }