Revert "add free_field as standard for struct field"
authorPhilipp Takacs <philipp@bureaucracy.de>
Sun, 13 Dec 2015 16:14:38 +0000 (17:14 +0100)
committerPhilipp Takacs <philipp@bureaucracy.de>
Sun, 13 Dec 2015 16:14:38 +0000 (17:14 +0100)
This is not necesary, because the compieler have to take care
about NULL != (void*)0

This reverts commit a87df3543d3bc128ba4079d1f95638476ba5ca50.

18 files changed:
h/mh.h
sbr/m_getfld2.c
sbr/readconfig.c
sbr/seq_read.c
uip/distsbr.c
uip/mhbuild.c
uip/mhl.c
uip/mhparse.c
uip/new.c
uip/pick.c
uip/prompter.c
uip/rcvdist.c
uip/repl.c
uip/scansbr.c
uip/slocal.c
uip/sortm.c
uip/spost.c
uip/whom.c

diff --git a/h/mh.h b/h/mh.h
index 481f2f1..8f6fad1 100644 (file)
--- a/h/mh.h
+++ b/h/mh.h
@@ -212,8 +212,6 @@ struct field {
        size_t alloclen;
 };
 
-extern struct field free_field;
-
 /* m_getfld2() states */
 enum state {
        LENERR2 = -2,      /* Line too long */
index 74d25e4..18ad812 100644 (file)
@@ -26,8 +26,6 @@ static enum threestate is_falted(FILE *);
 static size_t copyname(char *, char *);
 static bool is_separator(char *);
 
-struct field free_field = { "\0", 0, NULL, 0, 0 };
-
 
 /*
 ** FLD2:       We read a (complete) header field
@@ -57,7 +55,7 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                nchars = getline(&tmpline, &len, msg);
                if (nchars < 1) {
                        free(f->value);
-                       *f = free_field;
+                       *f = (struct field) { "\0", 0, NULL, 0, 0 };
                        if (feof(msg)) {
                                return FILEEOF2;
                        } else {
@@ -132,12 +130,15 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                return ret;
 
        case BODY2:
-               free(f->value);
-               *f = free_field;
+               *f->name = '\0';
+               f->namelen = 0;
 
                nchars = getline(&tmpline, &len, msg);
                if (nchars < 1) {
-                       free(tmpline);
+                       free(f->value);
+                       f->value = NULL;
+                       f->valuelen = 0;
+                       f->alloclen = 0;
                        if (feof(msg)) {
                                return FILEEOF2;
                        } else {
@@ -149,6 +150,7 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                        ret = LENERR2;
                }
 
+               free(f->value);
                f->value = tmpline;
                f->valuelen = nchars;
                f->alloclen = len;
index 645a9ef..ccdf867 100644 (file)
@@ -37,7 +37,7 @@ void
 readconfig(struct node **npp, FILE *ib, char *file, int ctx)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        struct node *np;
        struct procstr *ps;
 
index 68351ac..1929b26 100644 (file)
@@ -56,7 +56,7 @@ static void
 seq_public(struct msgs *mp)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        char seqfile[PATH_MAX];
        FILE *fp;
 
index 21b42a5..9c20fda 100644 (file)
@@ -25,7 +25,7 @@ int
 distout(char *drft, char *msgnam, char *backup)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        unsigned char *dp;
        int resent = 0;
        FILE *ifp, *ofp;
@@ -123,7 +123,7 @@ static int
 ready_msg(char *msgnam)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        char tmpfil[BUFSIZ];
        int out;
        FILE *ifp, *ofp;
index c4b1c60..ec5623a 100644 (file)
@@ -313,7 +313,7 @@ static CT
 build_mime(char *infile)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        int compnum;
        char buf[BUFSIZ];
        char *cp, *np, *vp;
index 20f5d31..8becba9 100644 (file)
--- a/uip/mhl.c
+++ b/uip/mhl.c
@@ -599,7 +599,7 @@ static void
 mhlfile(FILE *fp, char *mname, int ofilen, int ofilec)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        struct mcomp *c1, *c2, *c3;
        char **ip;
 
index 04333f4..257bc66 100644 (file)
@@ -232,7 +232,7 @@ static CT
 get_content(FILE *in, char *file, int toplevel)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        int compnum;
        CT ct;
        HF hp;
index 60bb806..a2be29b 100644 (file)
--- a/uip/new.c
+++ b/uip/new.c
@@ -96,7 +96,7 @@ static char *
 get_msgnums(char *folder, char *sequences[])
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        char *seqfile = concat(toabsdir(folder), "/", mh_seq, (void *)NULL);
        FILE *fp = fopen(seqfile, "r");
        char *msgnums = NULL, *this_msgnums, *old_msgnums;
index 03af15a..993527b 100644 (file)
@@ -1242,7 +1242,7 @@ TWSaction(params)
 plist
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        char *bp;
        struct tws *tw;
 
index c715cb7..c7eb957 100644 (file)
@@ -57,7 +57,7 @@ main(int argc, char **argv)
        int fdi, fdo, i;
        char *cp, *drft = NULL;
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        char buffer[BUFSIZ], tmpfil[BUFSIZ];
        char **arguments, **argp;
        FILE *in, *out;
index b54bc39..8292a20 100644 (file)
@@ -154,7 +154,7 @@ rcvdistout(FILE *inb, char *form, char *addrs)
 {
        int char_read = 0, format_len, i;
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        char **ap;
        char *cp, *scanl;
        struct comp *cptr;
index bbc3cfe..d71f27b 100644 (file)
@@ -378,7 +378,7 @@ replout(FILE *inb, char *drft, struct msgs *mp,
        int mime, char *form, char *filter)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        int i;
        struct comp *cptr;
        char **ap;
index 8281c7b..50b250e 100644 (file)
@@ -50,7 +50,7 @@ scan(FILE *inb, int innum, int outnum, char *fmtstr, int width, int curflg,
        static int slwidth;
        int compnum, i;
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        char *cp;
        struct comp *cptr;
        char *scnmsg = NULL;
index 3b5007d..c3b45e8 100644 (file)
@@ -725,7 +725,7 @@ static int
 parse(int fd)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        int i, fd1;
        char *cp, *dp, *lp;
        struct pair *p, *q;
index 6d45d35..61953e1 100644 (file)
@@ -321,7 +321,7 @@ static int
 get_fields(char *datesw, int msg, struct smsg *smsg)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        int compnum;
        char *msgnam;
        struct tws *tw;
index b8ae562..04479a1 100644 (file)
@@ -144,7 +144,7 @@ int
 main(int argc, char **argv)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        int compnum;
        char *cp, *msg = NULL, **argp, **arguments;
        char **sargv, buf[BUFSIZ];
index c4e7e8f..a72c84f 100644 (file)
@@ -204,7 +204,7 @@ static int
 process(char *file)
 {
        enum state state;
-       struct field f = free_field;
+       struct field f = {{0}};
        int compnum;
        FILE *in;