X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhmail.c;h=b3a9acb538f6ddbda27de29ab1cb842643c0252a;hp=2ab9cfd96b0c14fae712f8d495730c474e0ebee8;hb=ccf4f175ef4c4e7522f9510a4a1149c15d810dd9;hpb=d5b5e6e4813b7fd77dc1664df4304537f3002cf3 diff --git a/uip/mhmail.c b/uip/mhmail.c index 2ab9cfd..b3a9acb 100644 --- a/uip/mhmail.c +++ b/uip/mhmail.c @@ -15,7 +15,7 @@ static struct swit switches[] = { #define BODYSW 0 - { "body text", 0 }, + { "bodytext text", 0 }, #define CCSW 1 { "cc addrs ...", 0 }, #define FROMSW 2 @@ -23,13 +23,9 @@ static struct swit switches[] = { #define SUBJSW 3 { "subject text", 0 }, #define VERSIONSW 4 - { "version", 0 }, + { "Version", 0 }, #define HELPSW 5 { "help", 0 }, -#define RESNDSW 6 - { "resent", -6 }, -#define QUEUESW 7 - { "queued", -6 }, { NULL, 0 } }; @@ -46,17 +42,13 @@ main(int argc, char **argv) { pid_t child_id; int status, iscc = 0, nvec; - unsigned int i; - int queued = 0, resent = 0, somebody; char *cp, *tolist = NULL, *cclist = NULL, *subject = NULL; char *from = NULL, *body = NULL, **argp, **arguments; char *vec[5], buf[BUFSIZ]; FILE *out; char *tfile = NULL; -#ifdef LOCALE setlocale(LC_ALL, ""); -#endif invo_name = mhbasename(argv[0]); /* foil search of user profile/context */ @@ -111,14 +103,6 @@ main(int argc, char **argv) adios(NULL, "missing argument to %s", argp[-2]); continue; - - case RESNDSW: - resent++; - continue; - - case QUEUESW: - queued++; - continue; } } if (iscc) @@ -140,28 +124,35 @@ main(int argc, char **argv) SIGNAL2(SIGINT, intrser); - fprintf(out, "%sTo: %s\n", resent ? "Resent-" : "", tolist); + fprintf(out, "To: %s\n", tolist); if (cclist) - fprintf(out, "%sCc: %s\n", resent ? "Resent-" : "", cclist); + fprintf(out, "Cc: %s\n", cclist); if (subject) - fprintf(out, "%sSubject: %s\n", resent ? "Resent-" : "", subject); + fprintf(out, "Subject: %s\n", subject); if (from) - fprintf(out, "%sFrom: %s\n", resent ? "Resent-" : "", from); - if (!resent) - fputs("\n", out); + fprintf(out, "From: %s\n", from); + fputs("\n", out); if (body) { fprintf(out, "%s", body); - if (*body && *(body + strlen(body) - 1) != '\n') + if (*body && body[strlen(body) - 1] != '\n') fputs("\n", out); } else { - for (somebody = 0; (i = fread(buf, sizeof(*buf), sizeof(buf), - stdin)) > 0; somebody++) - if (fwrite(buf, sizeof(*buf), i, out) != i) + int empty = 1; + + while (fgets(buf, sizeof buf, stdin)) { + if (buf[0]=='.' && buf[1]=='\n') { + /* A period alone on a line means EOF. */ + break; + } + empty = 0; + if (fputs(buf, out) == EOF) { adios(tmpfil, "error writing"); - if (!somebody) { + } + } + if (empty) { unlink(tmpfil); - done(1); + adios(NULL, "not sending message with empty body"); } } fclose(out); @@ -169,10 +160,6 @@ main(int argc, char **argv) nvec = 0; vec[nvec++] = "spost"; vec[nvec++] = tmpfil; - if (resent) - vec[nvec++] = "-dist"; - if (queued) - vec[nvec++] = "-queued"; vec[nvec] = NULL; if ((child_id = fork()) == NOTOK) {