X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/61e09274bb3338efbd9c50f797751853c99dba3b..e19df85ee3edbc78b6029aa2344bb62bf4270747:/uip/aliasbr.c diff --git a/uip/aliasbr.c b/uip/aliasbr.c index a696e8a6..0f6b1909 100644 --- a/uip/aliasbr.c +++ b/uip/aliasbr.c @@ -41,7 +41,6 @@ static char *seekp (char *, char *, char **); static int addfile (struct aka *, char *); static int addgroup (struct aka *, char *); static int addmember (struct aka *, char *); -static int addall (struct aka *); static char *getalias (char *); static void add_aka (struct aka *, char *); static struct aka *akalloc (char *); @@ -104,6 +103,12 @@ akval (struct aka *ak, char *s) if (!s) return s; /* XXX */ + /* It'd be tempting to check for a trailing semicolon and remove + it. But that would break the EXMH alias parser on what would + then be valid expressions: + http://lists.gnu.org/archive/html/nmh-workers/2012-10/msg00039.html + */ + for (; ak; ak = ak->ak_next) { if (aleq (s, ak->ak_name)) { return akresult (ak); @@ -120,7 +125,7 @@ akval (struct aka *ak, char *s) if (name) { /* s is of the form "Blind list: address". If address is an alias, expand it. */ - struct mailname *mp = getm (name, NULL, 0, AD_NAME, NULL); + struct mailname *mp = getm (name, NULL, 0, NULL, 0); if (mp && mp->m_ingrp) { char *gname = add (mp->m_gname, NULL); @@ -265,10 +270,6 @@ alias (char *file) } break; - case '*': /* Everyone */ - addall (ak); - break; - default: /* list */ while ((cp = getalias (pp))) add_aka (ak, cp); @@ -433,26 +434,6 @@ addmember (struct aka *ak, char *grp) } -static int -addall (struct aka *ak) -{ - int noshell = NoShell == NULL || *NoShell == 0; - register struct home *hm; - - init_pw (); - - if (Everyone < 0) - Everyone = EVERYONE; - - for (hm = homehead; hm; hm = hm->h_next) - if ((int) hm->h_uid > Everyone - && (noshell || strcmp (hm->h_shell, NoShell))) - add_aka (ak, hm->h_name); - - return homehead != NULL; -} - - static char * getalias (char *addrs) {