X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fspost.c;h=fe2e34b5347ab42059151435a76f9788af00f03e;hb=3e017a7abbdf69bf0dff7a4073275961eda1ded8;hp=369f03e24341150d731ff0df1700bf4ede912597;hpb=412b2e54251ff6e20537f83b95c8ee76ea8c5c40;p=mmh diff --git a/uip/spost.c b/uip/spost.c index 369f03e..fe2e34b 100644 --- a/uip/spost.c +++ b/uip/spost.c @@ -19,33 +19,23 @@ #define MAX_SM_FIELD 1476 /* < largest hdr field sendmail will accept */ -struct swit switches[] = { +static struct swit switches[] = { #define VERBSW 0 { "verbose", 0 }, #define NVERBSW 1 - { "noverbose", 0 }, -#define WATCSW 2 - { "watch", 0 }, -#define NWATCSW 3 - { "nowatch", 0 }, -#define ALIASW 4 + { "noverbose", 2 }, +#define ALIASW 2 { "alias aliasfile", 0 }, -#define NALIASW 5 - { "noalias", 0 }, -#define VERSIONSW 6 - { "version", 0 }, -#define HELPSW 7 +#define NALIASW 3 + { "noalias", 2 }, +#define VERSIONSW 4 + { "Version", 0 }, +#define HELPSW 5 { "help", 0 }, -#define DEBUGSW 8 +#define DEBUGSW 6 { "debug", -5 }, -#define DISTSW 9 +#define DISTSW 7 { "dist", -4 }, /* interface from dist */ -#define PUSHSW 10 /* fork to sendmail then exit */ - { "push", -4 }, -#define NPUSHSW 11 /* exec sendmail */ - { "nopush", -6 }, -#define LIBSW 12 - { "library directory", -7 }, { NULL, 0 } }; @@ -109,11 +99,9 @@ static struct headers RHeaders[] = { }; -static int badmsg = 0; /* message has bad semantics */ -static int verbose = 0; /* spell it out */ -static int debug = 0; /* debugging post */ -static int watch = 0; /* watch the delivery process */ -static int pushflg = 0; /* if going to fork to sendmail */ +static int badmsg = 0; +static int verbose = 0; +static int debug = 0; static int aliasflg = 0; /* if going to process aliases */ static unsigned msgflags = 0; /* what we've seen */ @@ -152,14 +140,10 @@ main(int argc, char **argv) char *sargv[16], buf[BUFSIZ], name[NAMESZ]; FILE *in; -#ifdef LOCALE setlocale(LC_ALL, ""); -#endif invo_name = mhbasename(argv[0]); - /* foil search of user profile/context */ - if (context_foil(NULL) == -1) - done(1); + context_read(); arguments = getarguments(invo_name, argc, argv, 0); argp = arguments; @@ -198,20 +182,6 @@ main(int argc, char **argv) verbose = 0; continue; - case WATCSW: - watch++; - continue; - case NWATCSW: - watch = 0; - continue; - - case PUSHSW: - pushflg++; - continue; - case NPUSHSW: - pushflg = 0; - continue; - case ALIASW: if (!(cp = *argp++) || *cp == '-') adios(NULL, "missing argument to %s", @@ -223,15 +193,6 @@ main(int argc, char **argv) case NALIASW: aliasflg = 0; continue; - - case LIBSW: - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", - argp[-2]); - /* create a minimal context */ - if (context_foil(cp) == -1) - done(1); - continue; } } if (msg) @@ -312,17 +273,6 @@ main(int argc, char **argv) fcc(tmpfil, fccs); } - argp = sargv; - *argp++ = "send-mail"; - *argp++ = "-m"; /* send to me too */ - *argp++ = "-t"; /* read msg for recipients */ - *argp++ = "-i"; /* don't stop on "." */ - if (watch || verbose) { - *argp++ = "-v"; - pushflg = 0; - } - *argp = NULL; - if (bccs) { process_bccs(tmpfil); if (!(msgflags & MVIS)) { @@ -341,21 +291,15 @@ main(int argc, char **argv) } unlink(tmpfil); - if (pushflg) { - /* fork to a child to run sendmail */ - switch (fork()) { - case NOTOK: - fprintf(verbose ? stdout : stderr, - "%s: can't fork to %s\n", - invo_name, sendmail); - exit(-1); - case OK: - /* we're the child .. */ - break; - default: - exit(0); - } + argp = sargv; + *argp++ = "send-mail"; + *argp++ = "-m"; /* send to me too */ + *argp++ = "-t"; /* read msg for recipients */ + *argp++ = "-i"; /* don't stop on "." */ + if (verbose) { + *argp++ = "-v"; } + *argp = NULL; execv(sendmail, sargv); adios(sendmail, "can't exec"); return -1; @@ -694,8 +638,7 @@ process_bccs(char *origmsg) fprintf(out, "------------\n"); fclose(out); - snprintf(buf, sizeof buf, "send%s %s", - pushflg ? " -push" : "", bccdraft); + snprintf(buf, sizeof buf, "send %s", bccdraft); if (system(buf) != 0) { admonish(invo_name, "Problems to send Bcc to %s", mp->m_text);