X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/95f51977ddc18faa2e212f30c00a39540b39f325..ca67e7b465996afb3821d6a075c4dc6a7f0f5d52:/usr/src/usr.lib/sendmail/aux/praliases.c diff --git a/usr/src/usr.lib/sendmail/aux/praliases.c b/usr/src/usr.lib/sendmail/aux/praliases.c index fe97622e0b..fb1dc4f9b7 100644 --- a/usr/src/usr.lib/sendmail/aux/praliases.c +++ b/usr/src/usr.lib/sendmail/aux/praliases.c @@ -1,42 +1,76 @@ -# include "sendmail.h" +/* + * Copyright (c) 1983 Eric P. Allman + * Copyright (c) 1988 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ -static char sccsid[] = "%W% %G%"; +#ifndef lint +char copyright[] = +"@(#) Copyright (c) 1988 Regents of the University of California.\n\ + All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +static char sccsid[] = "@(#)praliases.c 5.4 (Berkeley) 6/29/88"; +#endif /* not lint */ + +#include + +typedef struct { + char *dptr; + int dsize; +} datum; -typedef struct { char *dptr; int dsize; } datum; -datum firstkey(), nextkey(), fetch(); -char *filename = ALIASFILE; main(argc, argv) char **argv; { - datum content, key; + extern char *optarg; + extern int optind; + static char *filename = "/usr/lib/aliases"; + datum content, key, firstkey(), nextkey(), fetch(); + int ch; - if (argc > 2 && strcmp(argv[1], "-f") == 0) - { - argv++; - filename = *++argv; - argc -= 2; - } + while ((ch = getopt(argc, argv, "f:")) != EOF) + switch((char)ch) { + case 'f': + filename = optarg; + break; + case '?': + default: + fputs("usage: praliases [-f file]\n", stderr); + exit(EX_USAGE); + } + argc -= optind; + argv += optind; if (dbminit(filename) < 0) exit(EX_OSFILE); - argc--, argv++; - if (argc == 0) { + if (!argc) for (key = firstkey(); key.dptr; key = nextkey(key)) { content = fetch(key); - printf("\n%s:%s\n", key.dptr, content.dptr); + printf("%s:%s\n", key.dptr, content.dptr); } - exit(EX_OK); - } - while (argc) { + else for (; *argv; ++argv) { key.dptr = *argv; - key.dsize = strlen(*argv)+1; + key.dsize = strlen(*argv) + 1; content = fetch(key); - if (content.dptr == 0) - printf("%s: No such key\n"); + if (!content.dptr) + printf("%s: No such key\n", key.dptr); else - printf("\n%s:%s\n", key.dptr, content.dptr); - argc--, argv++; + printf("%s:%s\n", key.dptr, content.dptr); } exit(EX_OK); }