X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1e18bf0ab892a2ae9d3151c248b652898f7d7116..fcaa3047b2a23fc0c36be518d1ca1ea0b0cb3b66:/uip/aliasbr.c diff --git a/uip/aliasbr.c b/uip/aliasbr.c index 489b707b..aaf0c7f1 100644 --- a/uip/aliasbr.c +++ b/uip/aliasbr.c @@ -5,10 +5,13 @@ * complete copyright information. */ -#include -#include -#include -#include +#include "h/mh.h" +#include "sbr/concat.h" +#include "sbr/vfgets.h" +#include "sbr/getcpy.h" +#include "h/aliasbr.h" +#include "h/addrsbr.h" +#include "h/utils.h" #include static int akvis; @@ -20,15 +23,9 @@ struct aka *akatail = NULL; /* * prototypes */ -int alias (char *); -int akvisible (void); -char *akresult (struct aka *); -char *akvalue (char *); -char *akerror (int); - static char *akval (struct aka *, char *); -static int aleq (char *, char *); -static char *scanp (char *); +static bool aleq (char *, char *) PURE; +static char *scanp (char *) PURE; static char *getp (char *); static char *seekp (char *, char *, char **); static int addfile (struct aka *, char *); @@ -120,7 +117,7 @@ akval (struct aka *ak, char *s) struct mailname *mp = getm (name, NULL, 0, NULL, 0); if (mp && mp->m_ingrp) { - char *gname = add (mp->m_gname, NULL); + char *gname = mh_xstrdup(FENDNULL(mp->m_gname)); /* FIXME: gname must be true; add() never returns NULL. * Is some other test required? */ @@ -147,20 +144,20 @@ akval (struct aka *ak, char *s) } -static int +static bool aleq (char *string, char *aliasent) { char c; while ((c = *string++)) { if (*aliasent == '*') - return 1; + return true; if (tolower((unsigned char)c) != tolower((unsigned char)*aliasent)) - return 0; + return false; aliasent++; } - return (*aliasent == 0 || *aliasent == '*'); + return *aliasent == 0 || *aliasent == '*'; } @@ -184,7 +181,7 @@ alias (char *file) while (vfgets (fp, &ap) == OK) { bp = ap; switch (*(pp = scanp (bp))) { - case '<': /* recurse a level */ + case '<': /* recurse a level */ if (!*(cp = getp (pp + 1))) { akerrst = "'<' without alias-file"; fclose (fp); @@ -195,8 +192,8 @@ alias (char *file) return i; } continue; - case ':': /* comment */ - case ';': + case ':': /* comment */ + case ';': case '#': case 0: continue; @@ -213,11 +210,11 @@ alias (char *file) } switch (lc) { case ':': - ak->ak_visible = 0; + ak->ak_visible = false; break; case ';': - ak->ak_visible = 1; + ak->ak_visible = true; break; default: @@ -226,11 +223,11 @@ alias (char *file) } switch (*(pp = scanp (ap))) { - case 0: /* EOL */ + case 0: /* EOL */ fclose (fp); return AK_ERROR; - case '<': /* read values from file */ + case '<': /* read values from file */ if (!*(cp = getp (pp + 1))) { fclose (fp); return AK_ERROR; @@ -241,7 +238,7 @@ alias (char *file) } break; - default: /* list */ + default: /* list */ while ((cp = getalias (pp))) add_aka (ak, cp); break; @@ -348,15 +345,14 @@ getalias (char *addrs) if (cp == NULL) cp = addrs; - else - if (*cp == 0) - return (cp = NULL); + else if (*cp == 0) + return cp = NULL; /* Remove leading any space from the address. */ for (pp = cp; isspace ((unsigned char) *pp); pp++) continue; if (*pp == 0) - return (cp = NULL); + return cp = NULL; /* Find the end of the address. */ for (qp = pp; *qp != 0 && *qp != ','; qp++) continue; @@ -402,7 +398,7 @@ akalloc (char *id) NEW(p); p->ak_name = getcpy (id); - p->ak_visible = 0; + p->ak_visible = false; p->ak_addr = NULL; p->ak_next = NULL; if (akatail != NULL)