]> git.marmaro.de Git - mmh/commitdiff
add free_field as standard for struct field
authorPhilipp Takacs <philipp@bureaucracy.de>
Thu, 26 Nov 2015 22:24:18 +0000 (23:24 +0100)
committerPhilipp Takacs <philipp@bureaucracy.de>
Fri, 27 Nov 2015 01:01:17 +0000 (02:01 +0100)
this is a easy way to initializ a struct field. ``{{0}}''
can lead to bugs, because NULL is not necesary ``((void *)0)''

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 8f6fad1d78ec61172ca555f68e283b3727f70769..481f2f1ca16645124da2df5922dd68c2171c5385 100644 (file)
--- a/h/mh.h
+++ b/h/mh.h
@@ -212,6 +212,8 @@ struct field {
        size_t alloclen;
 };
 
+extern struct field free_field;
+
 /* m_getfld2() states */
 enum state {
        LENERR2 = -2,      /* Line too long */
index cd1c6bea09186849db1942434c796ffe0b99ec33..6545d0f7539632b54a6f50d92b43f151b4c12d71 100644 (file)
@@ -26,6 +26,8 @@ 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
@@ -55,7 +57,7 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                nchars = getline(&tmpline, &len, msg);
                if (nchars < 1) {
                        free(f->value);
-                       *f = (struct field) { "\0", 0, NULL, 0, 0 };
+                       *f = free_field;
                        if (feof(msg)) {
                                return FILEEOF2;
                        } else {
@@ -130,15 +132,12 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                return ret;
 
        case BODY2:
-               *f->name = '\0';
-               f->namelen = 0;
+               free(f->value);
+               *f = free_field;
 
                nchars = getline(&tmpline, &len, msg);
                if (nchars < 1) {
-                       free(f->value);
-                       f->value = NULL;
-                       f->valuelen = 0;
-                       f->alloclen = 0;
+                       free(tmpline);
                        if (feof(msg)) {
                                return FILEEOF2;
                        } else {
@@ -150,7 +149,6 @@ 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 ccdf867c63cec3d1c2988ed6feeef48846daf1bb..645a9efe269a0b4a0596d07a5b11d33a56fd42f6 100644 (file)
@@ -37,7 +37,7 @@ void
 readconfig(struct node **npp, FILE *ib, char *file, int ctx)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        struct node *np;
        struct procstr *ps;
 
index 1929b263f8400d392c4f93ee78b07e2861b57c1e..68351acb173bb6b26f6de49e22d72ab8f656c9e9 100644 (file)
@@ -56,7 +56,7 @@ static void
 seq_public(struct msgs *mp)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        char seqfile[PATH_MAX];
        FILE *fp;
 
index 9c20fdaded6a714ed896f1a6d767ebe15a63e6e0..21b42a5cf883c3b6e9f859ffc0e719ecba1f5879 100644 (file)
@@ -25,7 +25,7 @@ int
 distout(char *drft, char *msgnam, char *backup)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        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 = {{0}};
+       struct field f = free_field;
        char tmpfil[BUFSIZ];
        int out;
        FILE *ifp, *ofp;
index ec5623a6633dba52458fbeb8be97aa8c79ea11cf..c4b1c607e8df3d18cabda2c759f3151c85c3a55a 100644 (file)
@@ -313,7 +313,7 @@ static CT
 build_mime(char *infile)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        int compnum;
        char buf[BUFSIZ];
        char *cp, *np, *vp;
index 8becba9bb1a50ecd874d9b558431f9387e63c902..20f5d31f8bb5998e1655855ed57bcd78f3e58d2f 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 = {{0}};
+       struct field f = free_field;
        struct mcomp *c1, *c2, *c3;
        char **ip;
 
index 257bc66e914318154a612af0a0a77f26bfb6c2b0..04333f49b2f069943312b8f9ea9f9d090a692351 100644 (file)
@@ -232,7 +232,7 @@ static CT
 get_content(FILE *in, char *file, int toplevel)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        int compnum;
        CT ct;
        HF hp;
index a2be29bf0c2742cb6ecfaf68d050b7bf5c8c091f..60bb80637d7fe0690b46c0e2afff2c656d5ed3ba 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 = {{0}};
+       struct field f = free_field;
        char *seqfile = concat(toabsdir(folder), "/", mh_seq, (void *)NULL);
        FILE *fp = fopen(seqfile, "r");
        char *msgnums = NULL, *this_msgnums, *old_msgnums;
index 993527b471828578e444f703cdd7fd91419877bc..03af15aa690cb984f39203cb8e86a1917adbbb1c 100644 (file)
@@ -1242,7 +1242,7 @@ TWSaction(params)
 plist
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        char *bp;
        struct tws *tw;
 
index 24f2d9f07d2eae50e18e27526b1d276fa573cce2..21ec5ced30543a44a11a5d9afd63917c84a1c70f 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 = {{0}};
+       struct field f = free_field;
        char buffer[BUFSIZ], tmpfil[BUFSIZ];
        char **arguments, **argp;
        FILE *in, *out;
index 8292a20bac1ac2f262c7d490b68751cbf9ef06ba..b54bc39994b96f702f9c7a0f903272ccbbee20f9 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 = {{0}};
+       struct field f = free_field;
        char **ap;
        char *cp, *scanl;
        struct comp *cptr;
index d71f27b31f6f601a617928de19ee2a4cb058c878..bbc3cfe83be6a59f3d93ac5dc08ed2eddcc8fab7 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 = {{0}};
+       struct field f = free_field;
        int i;
        struct comp *cptr;
        char **ap;
index 50b250e558ec086590a99ac015c8f824a3b88868..8281c7bc0d49fe7df2bf3c5d653521d7eccc88b5 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 = {{0}};
+       struct field f = free_field;
        char *cp;
        struct comp *cptr;
        char *scnmsg = NULL;
index c3b45e87aaf8b3b7b8a068fa2a675bb28ebf4b00..3b5007db1db4cc08754406109f2c18a39dfcd3e4 100644 (file)
@@ -725,7 +725,7 @@ static int
 parse(int fd)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        int i, fd1;
        char *cp, *dp, *lp;
        struct pair *p, *q;
index 61953e17fbe7fbcb61737b22ee1c384d80992bf0..6d45d35dc4b0149a7b10bd724b966500d21dcebc 100644 (file)
@@ -321,7 +321,7 @@ static int
 get_fields(char *datesw, int msg, struct smsg *smsg)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        int compnum;
        char *msgnam;
        struct tws *tw;
index 04479a1f6247e2ebcd3afbd1c2bc721ea254b3d6..b8ae562984c347eaf98b85af944d6e89ca1da7a9 100644 (file)
@@ -144,7 +144,7 @@ int
 main(int argc, char **argv)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        int compnum;
        char *cp, *msg = NULL, **argp, **arguments;
        char **sargv, buf[BUFSIZ];
index a72c84f0977d88ad413c2d103018482a5676ba00..c4e7e8f87497fa1bee07e0ed603280babc472441 100644 (file)
@@ -204,7 +204,7 @@ static int
 process(char *file)
 {
        enum state state;
-       struct field f = {{0}};
+       struct field f = free_field;
        int compnum;
        FILE *in;