X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fnew.c;h=976337664d2909e3de4a9209130924f35a843cde;hp=60bb80637d7fe0690b46c0e2afff2c656d5ed3ba;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=a87df3543d3bc128ba4079d1f95638476ba5ca50 diff --git a/uip/new.c b/uip/new.c index 60bb806..9763376 100644 --- a/uip/new.c +++ b/uip/new.c @@ -33,6 +33,8 @@ static struct swit switches[] = { { NULL, 0 } }; +char *version=VERSION; + static enum { NEW, FNEXT, FPREV, UNSEEN } run_mode = NEW; /* @@ -55,7 +57,7 @@ count_messages(char *field) int j, k; char *cp, **ap; - field = getcpy(field); + field = mh_xstrdup(field); /* copied from seq_read.c:seq_init */ for (ap = brkstring(field, " ", "\n"); *ap; ap++) { @@ -68,7 +70,7 @@ count_messages(char *field) } } - free(field); + mh_free0(&field); return total; } @@ -96,7 +98,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; @@ -108,6 +110,10 @@ get_msgnums(char *folder, char *sequences[]) for (state = FLD2;;) { switch (state = m_getfld2(state, &f, fp)) { + case LENERR2: + state = FLD2; + /* FALL */ + case FLD2: /* ** if it's in a sequence we want, @@ -121,9 +127,9 @@ get_msgnums(char *folder, char *sequences[]) old_msgnums = msgnums; msgnums = concat(old_msgnums, " ", this_msgnums, - (void *)NULL); - free(old_msgnums); - free(this_msgnums); + NULL); + mh_free0(&old_msgnums); + mh_free0(&this_msgnums); } } continue; @@ -158,9 +164,9 @@ check_folder(char *folder, size_t len, struct list_state *b) if (is_cur || msgnums != NULL) { if (*b->first == NULL) { - *b->first = b->node = mh_xmalloc(sizeof(*b->node)); + *b->first = b->node = mh_xcalloc(1, sizeof(*b->node)); } else { - b->node->n_next = mh_xmalloc(sizeof(*b->node)); + b->node->n_next = mh_xcalloc(1, sizeof(*b->node)); b->node = b->node->n_next; } b->node->n_name = folder; @@ -229,7 +235,7 @@ check_folders(struct node **first, struct node **last, while (vfgets(fp, &line) == OK) { len = strlen(line) - 1; line[len] = '\0'; - check_folder(getcpy(line), len, &b); + check_folder(mh_xstrdup(line), len, &b); } fclose(fp); } @@ -251,7 +257,7 @@ join_sequences(char *sequences[]) for (i = 0; sequences[i] != NULL; i++) { len += strlen(sequences[i]) + 1; } - result = mh_xmalloc(len + 1); + result = mh_xcalloc(len + 1, sizeof(char)); for (i = 0, cp = result; sequences[i] != NULL; i++, cp += len + 1) { len = strlen(sequences[i]); @@ -485,7 +491,7 @@ main(int argc, char **argv) } else { unseen = seq_unseen; /* use default */ } - dp = getcpy(unseen); + dp = mh_xstrdup(unseen); for (ap = brkstring(dp, " ", "\n"); *ap; ap++) { sequences[i++] = *ap; }