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 *);
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);
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);
}
break;
- case '*': /* Everyone */
- addall (ak);
- break;
-
default: /* list */
while ((cp = getalias (pp)))
add_aka (ak, cp);
}
-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)
{