X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fali.c;h=d4c6c7fb20e98371bc1ac9a43d66c82f40610fb9;hp=4d7617bff7802022721c0569e5ded3118b6854b9;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=fede6e42d81ce34fd5c1bbe7fb2757b281c2573a diff --git a/uip/ali.c b/uip/ali.c index 4d7617b..d4c6c7f 100644 --- a/uip/ali.c +++ b/uip/ali.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include /* ** maximum number of names @@ -38,6 +40,8 @@ static struct swit switches[] = { { NULL, 0 } }; +char *version=VERSION; + static int pos = 1; extern struct aka *akahead; @@ -72,25 +76,25 @@ main(int argc, char **argv) switch (smatch(++cp, switches)) { case AMBIGSW: ambigsw(cp, switches); - /* sysexits.h EX_USAGE */ - exit(1); + exit(EX_USAGE); case UNKWNSW: - adios(NULL, "-%s unknown", cp); + adios(EX_USAGE, NULL, "-%s unknown", cp); case HELPSW: snprintf(buf, sizeof(buf), "%s [switches] aliases ...", invo_name); print_help(buf, switches, 1); - exit(0); + exit(argc == 2 ? EX_OK : EX_USAGE); case VERSIONSW: print_version(invo_name); - exit(0); + exit(argc == 2 ? EX_OK : EX_USAGE); case FILESW: - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", argp[-2]); + if (!(cp = *argp++) || *cp == '-') { + adios(EX_USAGE, NULL, "missing argument to %s", argp[-2]); + } if ((i = alias(cp)) != AK_OK) - adios(NULL, "aliasing error in %s: %s", cp, akerror(i)); + adios(EX_USAGE, NULL, "aliasing error in %s: %s", cp, akerror(i)); deffiles = 0; continue; @@ -123,15 +127,15 @@ main(int argc, char **argv) if (deffiles && (cp = context_find("Aliasfile"))) { char *dp = NULL; - for (ap = brkstring(dp=getcpy(cp), " ", "\n"); + for (ap = brkstring(dp=mh_xstrdup(cp), " ", "\n"); ap && *ap; ap++) { if ((i = alias(etcpath(*ap))) != AK_OK) { - adios(NULL, "aliasing error in %s: %s", + adios(EX_DATAERR, NULL, "aliasing error in %s: %s", *ap, akerror(i)); } } if (dp) { - free(dp); + mh_free0(&dp); } } @@ -140,13 +144,13 @@ main(int argc, char **argv) */ if (inverted) { if (vecp == 0) - adios(NULL, "usage: %s -user addresses ... (you forgot the addresses)", + adios(EX_USAGE, NULL, "usage: %s -user addresses ... (you forgot the addresses)", invo_name); for (i = 0; i < vecp; i++) print_usr(vec[i], list, normalize); - exit(0); + exit(EX_OK); } if (vecp) { @@ -162,7 +166,7 @@ main(int argc, char **argv) } } - return 0; + return EX_OK; } static void @@ -208,14 +212,14 @@ print_aka(char *p, int list, int margin) static void print_usr(char *s, int list, int norm) { - register char *cp, *pp, *vp; - register struct aka *ak; - register struct mailname *mp, *np; + char *cp, *pp, *vp; + struct aka *ak; + struct mailname *mp, *np; if ((pp = getname(s)) == NULL) - adios(NULL, "no address in \"%s\"", s); + adios(EX_DATAERR, NULL, "no address in \"%s\"", s); if ((mp = getm(pp, NULL, 0, norm, NULL)) == NULL) - adios(NULL, "bad address \"%s\"", s); + adios(EX_DATAERR, NULL, "bad address \"%s\"", s); while (getname("")) continue; @@ -228,7 +232,7 @@ print_usr(char *s, int list, int norm) if (!mh_strcasecmp(mp->m_host, np->m_host) && !mh_strcasecmp(mp->m_mbox, np->m_mbox)) { vp = vp ? add(ak->ak_name, add(",", vp)) - : getcpy(ak->ak_name); + : mh_xstrdup(ak->ak_name); mnfree(np); while (getname("")) continue; @@ -242,5 +246,5 @@ print_usr(char *s, int list, int norm) print_aka(vp ? vp : s, list, 0); if (vp) - free(vp); + mh_free0(&vp); }