X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Freadconfig.c;h=2fe2d7d3f6082bc610e7241f468c18b0f1f83399;hb=a8984c0e490cda653615bc0e1d4743ad8fe7a2a7;hp=71fff7adb301261e2fefc088f65a0d87c1b26b22;hpb=dfa0332c4e6144699dedd5c9795219adc0f9c0d2;p=mmh diff --git a/sbr/readconfig.c b/sbr/readconfig.c index 71fff7a..2fe2d7d 100644 --- a/sbr/readconfig.c +++ b/sbr/readconfig.c @@ -7,6 +7,7 @@ ** complete copyright information. */ +#include #include #include @@ -17,18 +18,14 @@ struct procstr { static struct procstr procs[] = { { "attachment-header", &attach_hdr }, + { "sign-header", &sign_hdr }, + { "enc-header", &enc_hdr }, { "context", &context }, { "mh-sequences", &mh_seq }, - { "backup-prefix", &backup_prefix }, { "draft-folder", &draftfolder }, - { "altmsg-link", &altmsglink }, - { "fileproc", &fileproc }, { "listproc", &listproc }, - { "mailproc", &mailproc }, - { "postproc", &postproc }, - { "rmmproc", &rmmproc }, { "sendmail", &sendmail }, - { "sendproc", &sendproc }, + { "trash-folder", &trashfolder }, { "whatnowproc", &whatnowproc }, { NULL, NULL } }; @@ -39,11 +36,11 @@ static struct node **opp = NULL; void readconfig(struct node **npp, FILE *ib, char *file, int ctx) { - register int state; - register char *cp; + int state; + char *cp; char name[NAMESZ], field[BUFSIZ]; - register struct node *np; - register struct procstr *ps; + struct node *np; + struct procstr *ps; if (npp == NULL && (npp = opp) == NULL) { admonish(NULL, "bug: readconfig called but pump not primed"); @@ -55,20 +52,19 @@ readconfig(struct node **npp, FILE *ib, char *file, int ctx) ib)) { case FLD: case FLDPLUS: - case FLDEOF: - np = (struct node *) mh_xmalloc(sizeof(*np)); + np = mh_xcalloc(1, sizeof(*np)); *npp = np; *(npp = &np->n_next) = NULL; - np->n_name = getcpy(name); + np->n_name = mh_xstrdup(name); if (state == FLDPLUS) { - cp = getcpy(field); + cp = mh_xstrdup(field); while (state == FLDPLUS) { state = m_getfld(state, name, field, sizeof(field), ib); cp = add(field, cp); } np->n_field = trimcpy(cp); - free(cp); + mh_free0(&cp); } else { np->n_field = trimcpy(field); } @@ -84,20 +80,17 @@ readconfig(struct node **npp, FILE *ib, char *file, int ctx) *ps->procnaddr = np->n_field; break; } - if (state == FLDEOF) - break; continue; case BODY: - case BODYEOF: - adios(NULL, "no blank lines are permitted in %s", + adios(EX_CONFIG, NULL, "no blank lines are permitted in %s", file); case FILEEOF: break; default: - adios(NULL, "%s is poorly formatted", file); + adios(EX_CONFIG, NULL, "%s is poorly formatted", file); } break; }