X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/2d5d9e243c91784909b11948894e3ba0989107c0..c8caafcb4a39516eaec330f9ea229ea52e5fe46b:/uip/aliasbr.c?ds=inline diff --git a/uip/aliasbr.c b/uip/aliasbr.c index 65cd5e44..ab2130ef 100644 --- a/uip/aliasbr.c +++ b/uip/aliasbr.c @@ -1,6 +1,4 @@ - -/* - * aliasbr.c -- new aliasing mechanism +/* aliasbr.c -- new aliasing mechanism * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -51,7 +49,7 @@ static struct home *hmalloc (struct passwd *); char * akvalue (char *s) { - register char *v; + char *v; if (akahead == NULL) alias (AliasFile); @@ -74,8 +72,8 @@ akvisible (void) char * akresult (struct aka *ak) { - register char *cp = NULL, *dp, *pp; - register struct adr *ad; + char *cp = NULL, *dp, *pp; + struct adr *ad; for (ad = ak->ak_addr; ad; ad = ad->ad_next) { pp = ad->ad_local ? akval (ak->ak_next, ad->ad_text) @@ -112,7 +110,9 @@ akval (struct aka *ak, char *s) for (; ak; ak = ak->ak_next) { if (aleq (s, ak->ak_name)) { return akresult (ak); - } else if (strchr (s, ':')) { + } + + if (strchr (s, ':')) { /* The first address in a blind list will contain the alias name, so try to match, but just with just the address (not including the list name). If there's a @@ -130,6 +130,8 @@ akval (struct aka *ak, char *s) if (mp && mp->m_ingrp) { char *gname = add (mp->m_gname, NULL); + /* FIXME: gname must be true; add() never returns NULL. + * Is some other test required? */ if (gname && aleq (name, ak->ak_name)) { /* Will leak cp. */ cp = concat (gname, akresult (ak), NULL); @@ -149,23 +151,22 @@ akval (struct aka *ak, char *s) } } - return getcpy (s); + return mh_xstrdup(s); } static int aleq (char *string, char *aliasent) { - register char c; + char c; - while ((c = *string++)) + while ((c = *string++)) { if (*aliasent == '*') return 1; - else - if ((c | 040) != (*aliasent | 040)) - return 0; - else - aliasent++; + if (tolower((unsigned char)c) != tolower((unsigned char)*aliasent)) + return 0; + aliasent++; + } return (*aliasent == 0 || *aliasent == '*'); } @@ -175,13 +176,13 @@ int alias (char *file) { int i; - register char *bp, *cp, *pp; + char *bp, *cp, *pp; char lc, *ap; - register struct aka *ak = NULL; - register FILE *fp; + struct aka *ak = NULL; + FILE *fp; if (*file != '/' - && (strncmp (file, "./", 2) && strncmp (file, "../", 3))) + && !has_prefix(file, "./") && !has_prefix(file, "../")) file = etcpath (file); if ((fp = fopen (file, "r")) == NULL) { akerrst = file; @@ -201,7 +202,7 @@ alias (char *file) fclose (fp); return i; } - + /* FALLTHRU */ case ':': /* comment */ case ';': case '#': @@ -355,9 +356,9 @@ seekp (char *p, char *c, char **a) static int addfile (struct aka *ak, char *file) { - register char *cp; + char *cp; char buffer[BUFSIZ]; - register FILE *fp; + FILE *fp; if (!(fp = fopen (etcpath (file), "r"))) { akerrst = file; @@ -376,9 +377,9 @@ addfile (struct aka *ak, char *file) static int addgroup (struct aka *ak, char *grp) { - register char *gp; - register struct group *gr = getgrnam (grp); - register struct home *hm = NULL; + char *gp; + struct group *gr = getgrnam (grp); + struct home *hm = NULL; if (!gr) gr = getgrgid (atoi (grp)); @@ -410,8 +411,8 @@ static int addmember (struct aka *ak, char *grp) { gid_t gid; - register struct group *gr = getgrnam (grp); - register struct home *hm = NULL; + struct group *gr = getgrnam (grp); + struct home *hm = NULL; if (gr) gid = gr->gr_gid; @@ -472,14 +473,14 @@ getalias (char *addrs) static void add_aka (struct aka *ak, char *pp) { - register struct adr *ad, *ld; + struct adr *ad, *ld; for (ad = ak->ak_addr, ld = NULL; ad; ld = ad, ad = ad->ad_next) if (!strcmp (pp, ad->ad_text)) return; NEW(ad); - ad->ad_text = getcpy (pp); + ad->ad_text = mh_xstrdup(pp); ad->ad_local = strchr(pp, '@') == NULL && strchr(pp, '!') == NULL; ad->ad_next = NULL; if (ak->ak_addr) @@ -492,7 +493,7 @@ add_aka (struct aka *ak, char *pp) void init_pw (void) { - register struct passwd *pw; + struct passwd *pw; static int init; if (!init) @@ -517,7 +518,7 @@ init_pw (void) static struct aka * akalloc (char *id) { - register struct aka *p; + struct aka *p; NEW(p); p->ak_name = getcpy (id); @@ -537,7 +538,7 @@ akalloc (char *id) static struct home * hmalloc (struct passwd *pw) { - register struct home *p; + struct home *p; NEW(p); p->h_name = getcpy (pw->pw_name);