X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fspost.c;h=78c300c692ce54c477b1b7a12b502d06c0982e2d;hp=c5b27a08b6f0f051cc6bc32f41d30cee21354417;hb=dee387b53ab0d42922f857b60d6f980c9e79d16f;hpb=0ccd1945560c715e4cc4063209bd0d68b75d5470 diff --git a/uip/spost.c b/uip/spost.c index c5b27a0..78c300c 100644 --- a/uip/spost.c +++ b/uip/spost.c @@ -13,7 +13,8 @@ #include #include #include -#include +#include +#include #define uptolow(c) ((isalpha(c) && isupper (c)) ? tolower (c) : c) @@ -54,7 +55,7 @@ struct swit switches[] = { #define VERSIONSW 15 { "version", 0 }, #define HELPSW 16 - { "help", 4 }, + { "help", 0 }, #define DEBUGSW 17 { "debug", -5 }, #define DISTSW 18 @@ -347,13 +348,14 @@ main (int argc, char **argv) } else { #ifdef HAVE_MKSTEMP - mkstemp (tmpfil); + if ((out = fdopen( mkstemp (tmpfil), "w" )) == NULL ) + adios (tmpfil, "unable to create"); #else mktemp (tmpfil); -#endif if ((out = fopen (tmpfil, "w")) == NULL) adios (tmpfil, "unable to create"); chmod (tmpfil, 0600); +#endif } hdrtab = (msgstate == normal) ? NHeaders : RHeaders; @@ -454,6 +456,7 @@ main (int argc, char **argv) } execv ( sendmail, sargv); adios ( sendmail, "can't exec"); + return 0; /* dead code to satisfy the compiler */ } /* DRAFT GENERATION */ @@ -489,7 +492,7 @@ putfmt (char *name, char *str, FILE *out) if (hdr->flags & HFCC) { if ((cp = strrchr(str, '\n'))) *cp = 0; - for (cp = pp = str; cp = strchr(pp, ','); pp = cp) { + for (cp = pp = str; (cp = strchr(pp, ',')); pp = cp) { *cp++ = 0; insert_fcc (hdr, pp); } @@ -504,7 +507,7 @@ putfmt (char *name, char *str, FILE *out) } #endif /* notdef */ - if (*str != '\n' && *str != '\0') + if (*str != '\n' && *str != '\0') { if (aliasflg && hdr->flags & HTRY) { /* this header contains address(es) that we have to do * alias expansion on. Because of the saved state in @@ -529,8 +532,21 @@ putfmt (char *name, char *str, FILE *out) f = mp->m_next; mp->m_next = 0; putadr( name, f ); } else { + /* The author(s) of spost decided that alias substitution wasn't + necessary for the non-HTRY headers. Unfortunately, one of those + headers is "From:", and having alias substitution work on that is + extremely useful for someone with a lot of POP3 email accounts or + aliases. post supports aliasing of "From:"... + + Since "From:"-processing is incompletely implemented in this + unsupported and undocumented spost backend, I'm not going to take + the time to implement my new draft-From:-based email address + masquerading. If I do ever implement it here, I'd almost + certainly want to implement "From:" line alias processing as + well. -- Dan Harkless */ fprintf (out, "%s: %s", name, str ); } + } } @@ -711,9 +727,15 @@ make_bcc_file (void) char *vec[6]; FILE * in, *out; +#ifdef HAVE_MKSTEMP + fd = mkstemp(bccfil); + if (fd == -1 || (out = fdopen(fd, "w")) == NULL) + adios (bccfil, "unable to create"); +#else mktemp (bccfil); if ((out = fopen (bccfil, "w")) == NULL) adios (bccfil, "unable to create"); +#endif chmod (bccfil, 0600); fprintf (out, "Date: %s\n", dtimenow (0));