X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0ea1e09365a5fc1d401a6a7df4e2278820c09d23..cf57870921b26703aad420c6741c524b33736ff1:/sbr/mf.c diff --git a/sbr/mf.c b/sbr/mf.c index fa281766..a604ce91 100644 --- a/sbr/mf.c +++ b/sbr/mf.c @@ -26,25 +26,24 @@ static int my_lex (char *); int isfrom(const char *string) { - return (strncmp (string, "From ", 5) == 0 - || strncmp (string, ">From ", 6) == 0); + return (has_prefix(string, "From ") + || has_prefix(string, ">From ")); } int lequal (const char *a, const char *b) { - for (; *a; a++, b++) + char c1, c2; + + for (; *a; a++, b++) { if (*b == 0) return FALSE; - else { - char c1 = islower ((unsigned char) *a) ? - toupper ((unsigned char) *a) : *a; - char c2 = islower ((unsigned char) *b) ? - toupper ((unsigned char) *b) : *b; - if (c1 != c2) - return FALSE; - } + c1 = toupper((unsigned char)*a); + c2 = toupper((unsigned char)*b); + if (c1 != c2) + return FALSE; + } return (*b == 0); } @@ -53,10 +52,8 @@ lequal (const char *a, const char *b) static int isat (const char *p) { - return (strncmp (p, " AT ", 4) - && strncmp (p, " At ", 4) - && strncmp (p, " aT ", 4) - && strncmp (p, " at ", 4) ? FALSE : TRUE); + return has_prefix(p, " AT ") || has_prefix(p, " At ") || + has_prefix(p, " aT ") || has_prefix(p, " at "); } @@ -181,18 +178,12 @@ getadrx (const char *addrs, int eai) char *bp; struct adrx *adrxp = &adrxs2; - if (pers) - free (pers); - if (mbox) - free (mbox); - if (host) - free (host); - if (path) - free (path); - if (grp) - free (grp); - if (note) - free (note); + mh_xfree(pers); + mh_xfree(mbox); + mh_xfree(host); + mh_xfree(path); + mh_xfree(grp); + mh_xfree(note); pers = mbox = host = path = grp = note = NULL; err[0] = 0; @@ -297,11 +288,10 @@ again: ; strcpy (err, "extraneous semi-colon"); return NOTOK; } + /* FALLTHRU */ case LX_COMA: - if (note) { - free (note); - note = NULL; - } + mh_xfree(note); + note = NULL; goto again; case LX_END: @@ -402,6 +392,7 @@ again: ; strcpy (err, "extraneous semi-colon"); return NOTOK; } + /* FALLTHRU */ case LX_COMA: case LX_END: return OK; @@ -634,6 +625,7 @@ my_lex (char *buffer) continue; case '(': i++; + /* FALLTHRU */ default: ADDCHR(c); continue; @@ -661,6 +653,7 @@ my_lex (char *buffer) cp = NULL; return (last_lex = LX_ERR); } + /* FALLTHRU */ default: ADDCHR(c); continue; @@ -684,6 +677,7 @@ my_lex (char *buffer) cp = NULL; return (last_lex = LX_ERR); } + /* FALLTHRU */ default: ADDCHR(c); continue; @@ -792,7 +786,8 @@ mfgets (FILE *in, char **bp) case '\t': *cp++ = '\n'; break; - } /* fall into default case */ + } + /* FALLTHRU */ default: *cp++ = i;