|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T s ┃
Length: 1749 (0x6d5) Types: TextFile Names: »svbinmail.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦this⟧ »EUUGD11/euug-87hel/sec8/smail/src/svbinmail.c«
#ifndef lint static char *sccsid = "@(#)svbinmail.c 2.2 (smail) 1/26/87"; #endif /* */ /* This program will be used in place of /bin/mail on SVR2 sites. /* It looks at the arguments and decides whether to call /* SENDER for sending mail, or READER for reading mail. /* /* before installing as /bin/mail, move the stock /bin/mail to /bin/lmail /* /* */ #include <stdio.h> #include "defs.h" #ifdef BSD #include <strings.h> #else #include <string.h> #endif #ifdef SENDMAIL #define SENDER SENDMAIL #else #define SENDER "/bin/rmail" #endif #define READER "/bin/lmail" #define TRUE 1 #define FALSE 0 char prog[128]; void perror(), exit(), usage(); main(argc, argv) int argc; char *argv[]; { extern int optind; extern char *optarg; int i, j, c; int reading, sending; reading = sending = FALSE; (void) strcpy(prog, argv[0]); if(argc == 1) { reading = TRUE; } else { while((c = getopt(argc, argv, "epqrtf:")) != EOF) { switch(c) { case 'e': case 'p': case 'q': case 'r': case 'f': reading = TRUE; break; case 't': sending = TRUE; break; default: usage(); return(1); } } } /* any arguments left over -> sending */ if(argc > optind) { sending = TRUE; } if((reading == TRUE) && (sending == TRUE)) { usage(); return(1); } if(sending == TRUE) { argv[0] = SENDER; for(i = 1, j = optind; j < argc; i++, j++) { argv[i] = argv[j]; } argv[i] = NULL; } else { argv[0] = READER; } (void) execvp(argv[0], argv); (void) fprintf(stderr, "%s: execvp(\"%s\", argv) failed: ", prog, argv[0]); perror(""); return(1); } void usage() { (void) fprintf(stderr, "usage:\t%s [ -epqr ] [ -f file ]\n", prog); (void) fprintf(stderr, "\t%s [ -t ] persons\n", prog); }