X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/177f020f122827214159c46dcfe7ded1e3c8d1c3..4a56a28ac:/sbr/mf.c?ds=sidebyside diff --git a/sbr/mf.c b/sbr/mf.c index 4d04abb6..cf5b6d81 100644 --- a/sbr/mf.c +++ b/sbr/mf.c @@ -5,6 +5,7 @@ * complete copyright information. */ +#include #include #include @@ -24,8 +25,10 @@ static int my_lex (char *); static int isat (const char *p) { - return has_prefix(p, " AT ") || has_prefix(p, " At ") || - has_prefix(p, " aT ") || has_prefix(p, " at "); + return *p == ' ' && + (p[1] == 'a' || p[1] == 'A') && + (p[2] == 't' || p[2] == 'T') && + p[3] == ' '; } @@ -134,7 +137,7 @@ static char *ap = NULL; static char *pers = NULL; static char *mbox = NULL; static char *host = NULL; -static char *path = NULL; +static char *routepath = NULL; static char *grp = NULL; static char *note = NULL; static char err[BUFSIZ]; @@ -153,14 +156,14 @@ getadrx (const char *addrs, int eai) mh_xfree(pers); mh_xfree(mbox); mh_xfree(host); - mh_xfree(path); + mh_xfree(routepath); mh_xfree(grp); mh_xfree(note); - pers = mbox = host = path = grp = note = NULL; + pers = mbox = host = routepath = grp = note = NULL; err[0] = 0; if (dp == NULL) { - dp = cp = strdup (addrs ? addrs : ""); + dp = cp = strdup (FENDNULL(addrs)); glevel = 0; } else @@ -200,7 +203,7 @@ getadrx (const char *addrs, int eai) */ if (contains8bit(mbox, NULL) || contains8bit(host, NULL) || - contains8bit(path, NULL) || contains8bit(grp, NULL)) { + contains8bit(routepath, NULL) || contains8bit(grp, NULL)) { strcpy(err, "Address contains 8-bit characters"); } } @@ -232,7 +235,7 @@ getadrx (const char *addrs, int eai) adrxp->pers = pers; adrxp->mbox = mbox; adrxp->host = host; - adrxp->path = path; + adrxp->path = routepath; adrxp->grp = grp; adrxp->ingrp = ingrp; adrxp->note = note; @@ -364,7 +367,7 @@ again: ; strcpy (err, "extraneous semi-colon"); return NOTOK; } - /* FALLTHRU */ + return OK; case LX_COMA: case LX_END: return OK; @@ -506,13 +509,13 @@ domain (char *buffer) static int route (char *buffer) { - path = mh_xstrdup ("@"); + routepath = mh_xstrdup ("@"); for (;;) { switch (my_lex (buffer)) { case LX_ATOM: case LX_DLIT: - path = add (buffer, path); + routepath = add (buffer, routepath); break; default: @@ -521,14 +524,14 @@ route (char *buffer) } switch (my_lex (buffer)) { case LX_COMA: - path = add (buffer, path); + routepath = add (buffer, routepath); for (;;) { switch (my_lex (buffer)) { case LX_COMA: continue; case LX_AT: - path = add (buffer, path); + routepath = add (buffer, routepath); break; default: @@ -541,11 +544,11 @@ route (char *buffer) case LX_AT: /* XXX */ case LX_DOT: - path = add (buffer, path); + routepath = add (buffer, routepath); continue; case LX_COLN: - path = add (buffer, path); + routepath = add (buffer, routepath); return OK; default: