/*
- * spost.c -- feed messages to sendmail
- *
- * This is a simpler, faster, replacement for "post" for use
- * when "sendmail" is the transport system.
- *
- * This code is Copyright (c) 2002, by the authors of nmh. See the
- * COPYRIGHT file in the root directory of the nmh distribution for
- * complete copyright information.
- */
+** spost.c -- feed messages to sendmail
+**
+** This is a simpler, faster, replacement for "post" for use
+** when "sendmail" is the transport system.
+**
+** This code is Copyright (c) 2002, by the authors of nmh. See the
+** COPYRIGHT file in the root directory of the nmh distribution for
+** complete copyright information.
+*/
#include <h/mh.h>
#include <signal.h>
extern char *sendmail;
/*
- * external prototypes
- */
-extern char *getfullname (void);
-extern char *getusername (void);
+** external prototypes
+*/
+extern char *getfullname(void);
+extern char *getusername(void);
extern boolean draft_from_masquerading; /* defined in mts.c */
/*
- * static prototypes
- */
-static void putfmt (char *, char *, FILE *);
-static void start_headers (void);
-static void finish_headers (FILE *);
-static int get_header (char *, struct headers *);
-static void putadr (char *, struct mailname *);
-static int putone (char *, int, int);
-static void insert_fcc (struct headers *, unsigned char *);
-static void file (char *);
-static void fcc (char *, char *);
+** static prototypes
+*/
+static void putfmt(char *, char *, FILE *);
+static void start_headers(void);
+static void finish_headers(FILE *);
+static int get_header(char *, struct headers *);
+static void putadr(char *, struct mailname *);
+static int putone(char *, int, int);
+static void insert_fcc(struct headers *, unsigned char *);
+static void file(char *);
+static void fcc(char *, char *);
#if 0
-static void die (char *, char *, ...);
-static void make_bcc_file (void);
+static void die(char *, char *, ...);
+static void make_bcc_file(void);
#endif
int
-main (int argc, char **argv)
+main(int argc, char **argv)
{
int state, i, pid, compnum;
char *cp, *msg = NULL, **argp, **arguments;
#ifdef LOCALE
setlocale(LC_ALL, "");
#endif
- invo_name = r1bindex (argv[0], '/');
+ invo_name = mhbasename(argv[0]);
/* foil search of user profile/context */
- if (context_foil (NULL) == -1)
- done (1);
+ if (context_foil(NULL) == -1)
+ done(1);
- mts_init (invo_name);
- arguments = getarguments (invo_name, argc, argv, 0);
+ mts_init(invo_name);
+ arguments = getarguments(invo_name, argc, argv, 0);
argp = arguments;
while ((cp = *argp++)) {
if (*cp == '-') {
- switch (smatch (++cp, switches)) {
+ switch (smatch(++cp, switches)) {
case AMBIGSW:
- ambigsw (cp, switches);
- done (1);
+ ambigsw(cp, switches);
+ done(1);
case UNKWNSW:
- adios (NULL, "-%s unknown", cp);
+ adios(NULL, "-%s unknown", cp);
case HELPSW:
- snprintf (buf, sizeof(buf), "%s [switches] file", invo_name);
- print_help (buf, switches, 1);
- done (1);
+ snprintf(buf, sizeof(buf), "%s [switches] file", invo_name);
+ print_help(buf, switches, 1);
+ done(1);
case VERSIONSW:
print_version(invo_name);
- done (1);
+ done(1);
case DEBUGSW:
debug++;
continue;
case FILTSW:
- if (!(filter = *argp++) || *filter == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ if (!(filter = *argp++) ||
+ *filter == '-')
+ adios(NULL, "missing argument to %s", argp[-2]);
continue;
case NFILTSW:
filter = NULL;
case ALIASW:
if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
- if (aliasflg < 0)
- alias (AliasFile);/* load default aka's */
+ adios(NULL, "missing argument to %s", argp[-2]);
+ if (aliasflg < 0) {
+ /* load default aka's */
+ alias(AliasFile);
+ }
aliasflg = 1;
if ((state = alias(cp)) != AK_OK)
- adios (NULL, "aliasing error in file %s - %s",
- cp, akerror(state) );
+ adios(NULL, "aliasing error in file %s - %s", cp, akerror(state) );
continue;
case NALIASW:
aliasflg = 0;
case WIDTHSW:
if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
- outputlinelen = atoi (cp);
+ adios(NULL, "missing argument to %s", argp[-2]);
+ outputlinelen = atoi(cp);
if (outputlinelen <= 10)
outputlinelen = 72;
continue;
case LIBSW:
if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ adios(NULL, "missing argument to %s", argp[-2]);
/* create a minimal context */
- if (context_foil (cp) == -1)
+ if (context_foil(cp) == -1)
done(1);
continue;
case ANNOSW:
/* -idanno switch ignored */
if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ adios(NULL, "missing argument to %s", argp[-2]);
continue;
}
}
if (msg)
- adios (NULL, "only one message at a time!");
+ adios(NULL, "only one message at a time!");
else
msg = cp;
}
if (aliasflg < 0)
- alias (AliasFile); /* load default aka's */
+ alias(AliasFile); /* load default aka's */
if (!msg)
- adios (NULL, "usage: %s [switches] file", invo_name);
+ adios(NULL, "usage: %s [switches] file", invo_name);
- if ((in = fopen (msg, "r")) == NULL)
- adios (msg, "unable to open");
+ if ((in = fopen(msg, "r")) == NULL)
+ adios(msg, "unable to open");
- start_headers ();
+ start_headers();
if (debug) {
verbose++;
out = stdout;
}
else {
#ifdef HAVE_MKSTEMP
- if ((out = fdopen( mkstemp (tmpfil), "w" )) == NULL )
- adios (tmpfil, "unable to create");
+ if ((out = fdopen( mkstemp(tmpfil), "w" )) == NULL )
+ adios(tmpfil, "unable to create");
#else
- mktemp (tmpfil);
- if ((out = fopen (tmpfil, "w")) == NULL)
- adios (tmpfil, "unable to create");
- chmod (tmpfil, 0600);
+ mktemp(tmpfil);
+ if ((out = fopen(tmpfil, "w")) == NULL)
+ adios(tmpfil, "unable to create");
+ chmod(tmpfil, 0600);
#endif
}
hdrtab = (msgstate == normal) ? NHeaders : RHeaders;
for (compnum = 1, state = FLD;;) {
- switch (state = m_getfld (state, name, buf, sizeof(buf), in)) {
+ switch (state = m_getfld(state, name, buf, sizeof(buf), in)) {
case FLD:
compnum++;
- putfmt (name, buf, out);
+ putfmt(name, buf, out);
continue;
case FLDPLUS:
compnum++;
- cp = add (buf, cp);
+ cp = add(buf, cp);
while (state == FLDPLUS) {
- state = m_getfld (state, name, buf, sizeof(buf), in);
- cp = add (buf, cp);
+ state = m_getfld(state, name, buf,
+ sizeof(buf), in);
+ cp = add(buf, cp);
}
- putfmt (name, cp, out);
- free (cp);
+ putfmt(name, cp, out);
+ free(cp);
continue;
case BODY:
- finish_headers (out);
- fprintf (out, "\n%s", buf);
+ finish_headers(out);
+ fprintf(out, "\n%s", buf);
while (state == BODY) {
- state = m_getfld (state, name, buf, sizeof(buf), in);
- fputs (buf, out);
+ state = m_getfld(state, name, buf,
+ sizeof(buf), in);
+ fputs(buf, out);
}
break;
case FILEEOF:
- finish_headers (out);
+ finish_headers(out);
break;
case LENERR:
case FMTERR:
- adios (NULL, "message format error in component #%d",
- compnum);
+ adios(NULL, "message format error in component #%d", compnum);
default:
- adios (NULL, "getfld() returned %d", state);
+ adios(NULL, "getfld() returned %d", state);
}
break;
}
- fclose (in);
+ fclose(in);
if (backflg) {
- strncpy (buf, m_backup (msg), sizeof(buf));
- if (rename (msg, buf) == NOTOK)
- advise (buf, "unable to rename %s to", msg);
+ strncpy(buf, m_backup(msg), sizeof(buf));
+ if (rename(msg, buf) == NOTOK)
+ advise(buf, "unable to rename %s to", msg);
}
if (debug) {
- done (0);
+ done(0);
}
else
- fclose (out);
+ fclose(out);
- file (tmpfil);
+ file(tmpfil);
/*
- * re-open the temp file, unlink it and exec sendmail, giving it
- * the msg temp file as std in.
- */
- if ( freopen( tmpfil, "r", stdin) == NULL)
- adios (tmpfil, "can't reopen for sendmail");
+ ** re-open the temp file, unlink it and exec sendmail, giving it
+ ** the msg temp file as std in.
+ */
+ if (freopen(tmpfil, "r", stdin) == NULL)
+ adios(tmpfil, "can't reopen for sendmail");
if (rmflg)
- unlink (tmpfil);
+ unlink(tmpfil);
argp = sargv;
*argp++ = "send-mail";
sleep(5);
switch (pid) {
case NOTOK:
- fprintf (verbose ? stdout : stderr, "%s: can't fork to %s\n",
- invo_name, sendmail);
+ fprintf(verbose ? stdout : stderr,
+ "%s: can't fork to %s\n",
+ invo_name, sendmail);
exit(-1);
case OK:
/* we're the child .. */
exit(0);
}
}
- execv ( sendmail, sargv);
- adios ( sendmail, "can't exec");
+ execv(sendmail, sargv);
+ adios(sendmail, "can't exec");
return 0; /* dead code to satisfy the compiler */
}
/* DRAFT GENERATION */
static void
-putfmt (char *name, char *str, FILE *out)
+putfmt(char *name, char *str, FILE *out)
{
int i;
char *cp, *pp;
while (*str == ' ' || *str == '\t')
str++;
- if ((i = get_header (name, hdrtab)) == NOTOK) {
- fprintf (out, "%s: %s", name, str);
+ if ((i = get_header(name, hdrtab)) == NOTOK) {
+ fprintf(out, "%s: %s", name, str);
return;
}
if (hdr->flags & HIGN)
return;
if (hdr->flags & HBAD) {
- advise (NULL, "illegal header line -- %s:", name);
+ advise(NULL, "illegal header line -- %s:", name);
badmsg++;
return;
}
msgflags |= hdr->set;
if (hdr->flags & HSUB)
- subject = subject ? add (str, add ("\t", subject)) : getcpy (str);
+ subject = subject ? add(str, add("\t", subject)) :
+ getcpy(str);
if (hdr->flags & HFCC) {
if ((cp = strrchr(str, '\n')))
*cp = 0;
for (cp = pp = str; (cp = strchr(pp, ',')); pp = cp) {
*cp++ = 0;
- insert_fcc (hdr, pp);
+ insert_fcc(hdr, pp);
}
- insert_fcc (hdr, pp);
+ insert_fcc(hdr, pp);
return;
}
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
- * getname we have to put all the addresses into a list.
- * We then let putadr munch on that list, possibly
- * expanding aliases.
- */
+ /*
+ ** this header contains address(es) that we have to do
+ ** alias expansion on. Because of the saved state in
+ ** getname we have to put all the addresses into a
+ ** list. We then let putadr munch on that list,
+ ** possibly expanding aliases.
+ **/
register struct mailname *f = 0;
register struct mailname *mp = 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 <dan-nmh@dilvish.speed.net>
- */
- fprintf (out, "%s: %s", name, str );
+ ** 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 <dan-nmh@dilvish.speed.net>
+ */
+ fprintf(out, "%s: %s", name, str );
}
}
}
static void
-start_headers (void)
+start_headers(void)
{
char *cp;
char sigbuf[BUFSIZ];
strncpy(from, getusername(), sizeof(from));
- if ((cp = getfullname ()) && *cp) {
- strncpy (sigbuf, cp, sizeof(sigbuf));
- snprintf (signature, sizeof(signature), "%s <%s>", sigbuf, from);
+ if ((cp = getfullname()) && *cp) {
+ strncpy(sigbuf, cp, sizeof(sigbuf));
+ snprintf(signature, sizeof(signature), "%s <%s>",
+ sigbuf, from);
} else
- snprintf (signature, sizeof(signature), "%s", from);
+ snprintf(signature, sizeof(signature), "%s", from);
}
static void
-finish_headers (FILE *out)
+finish_headers(FILE *out)
{
switch (msgstate) {
case normal:
if (!(msgflags & MDAT))
- fprintf (out, "Date: %s\n", dtimenow (0));
+ fprintf(out, "Date: %s\n", dtimenow(0));
if (msgflags & MFRM) {
- /* There was already a From: in the draft. Don't add one. */
+ /*
+ ** There was already a From: in the draft.
+ ** Don't add one.
+ */
if (!draft_from_masquerading)
/*
- * mts.conf didn't contain
- * "masquerade:[...]draft_from[...]"
- * so we'll reveal the user's
- * actual account@thismachine
- * address in a Sender: header
- * (and use it as the envelope
- * From: later).
- */
- fprintf (out, "Sender: %s\n", from);
+ ** mts.conf didn't contain
+ ** "masquerade:[...]draft_from[...]"
+ ** so we'll reveal the user's
+ ** actual account@thismachine
+ ** address in a Sender: header
+ ** (and use it as the envelope
+ ** From: later).
+ */
+ fprintf(out, "Sender: %s\n", from);
} else
- fprintf (out, "From: %s\n", signature);
+ fprintf(out, "From: %s\n", signature);
#ifdef notdef
if (!(msgflags & MVIS))
- fprintf (out, "Bcc: Blind Distribution List: ;\n");
+ fprintf(out, "Bcc: Blind Distribution List: ;\n");
#endif /* notdef */
break;
case resent:
if (!(msgflags & MRDT))
- fprintf (out, "Resent-Date: %s\n", dtimenow(0));
+ fprintf(out, "Resent-Date: %s\n", dtimenow(0));
if (msgflags & MRFM) {
- /* There was already a Resent-From: in draft. Don't add one. */
+ /*
+ ** There was already a Resent-From: in draft.
+ ** Don't add one.
+ */
if (!draft_from_masquerading)
/*
- * mts.conf didn't contain
- * "masquerade:[...]draft_from[...]"
- * so we'll reveal the user's
- * actual account@thismachine
- * address in a Sender: header
- * (and use it as the envelope
- * From: later).
- */
- fprintf (out, "Resent-Sender: %s\n", from);
+ ** mts.conf didn't contain
+ ** "masquerade:[...]draft_from[...]"
+ ** so we'll reveal the user's
+ ** actual account@thismachine
+ ** address in a Sender: header
+ ** (and use it as the envelope
+ ** From: later).
+ */
+ fprintf(out, "Resent-Sender: %s\n",
+ from);
} else
/* Construct a Resent-From: header. */
- fprintf (out, "Resent-From: %s\n", signature);
+ fprintf(out, "Resent-From: %s\n", signature);
#ifdef notdef
if (!(msgflags & MVIS))
- fprintf (out, "Resent-Bcc: Blind Re-Distribution List: ;\n");
+ fprintf(out, "Resent-Bcc: Blind Re-Distribution List: ;\n");
#endif /* notdef */
break;
}
if (badmsg)
- adios (NULL, "re-format message and try again");
+ adios(NULL, "re-format message and try again");
}
static int
-get_header (char *header, struct headers *table)
+get_header(char *header, struct headers *table)
{
struct headers *h;
for (h = table; h->value; h++)
- if (!mh_strcasecmp (header, h->value))
+ if (!mh_strcasecmp(header, h->value))
return (h - table);
return NOTOK;
/*
- * output the address list for header "name". The address list
- * is a linked list of mailname structs. "nl" points to the head
- * of the list. Alias substitution should be done on nl.
- */
+** output the address list for header "name". The address list
+** is a linked list of mailname structs. "nl" points to the head
+** of the list. Alias substitution should be done on nl.
+*/
static void
-putadr (char *name, struct mailname *nl)
+putadr(char *name, struct mailname *nl)
{
register struct mailname *mp, *mp2;
register int linepos;
register char *cp;
int namelen;
- fprintf (out, "%s: ", name);
+ fprintf(out, "%s: ", name);
namelen = strlen(name) + 2;
linepos = namelen;
for (mp = nl; mp; ) {
if (linepos > MAX_SM_FIELD) {
- fprintf (out, "\n%s: ", name);
- linepos = namelen;
+ fprintf(out, "\n%s: ", name);
+ linepos = namelen;
}
if (mp->m_nohost) {
/* a local name - see if it's an alias */
cp = akvalue(mp->m_mbox);
if (cp == mp->m_mbox)
/* wasn't an alias - use what the user typed */
- linepos = putone( mp->m_text, linepos, namelen );
+ linepos = putone(mp->m_text, linepos, namelen);
else
/* an alias - expand it */
while ((cp = getname(cp))) {
if (linepos > MAX_SM_FIELD) {
- fprintf (out, "\n%s: ", name);
+ fprintf(out, "\n%s: ", name);
linepos = namelen;
}
mp2 = getm( cp, NULL, 0, AD_HOST, NULL);
}
static int
-putone (char *adr, int pos, int indent)
+putone(char *adr, int pos, int indent)
{
register int len;
static int linepos;
len = strlen( adr );
if (pos == indent)
linepos = pos;
- else if ( linepos+len > outputlinelen ) {
- fprintf ( out, ",\n%*s", indent, "");
+ else if (linepos+len > outputlinelen) {
+ fprintf( out, ",\n%*s", indent, "");
linepos = indent;
pos += indent + 2;
- }
- else {
+ } else {
fputs( ", ", out );
linepos += 2;
pos += 2;
static void
-insert_fcc (struct headers *hdr, unsigned char *pp)
+insert_fcc(struct headers *hdr, unsigned char *pp)
{
unsigned char *cp;
- for (cp = pp; isspace (*cp); cp++)
+ for (cp = pp; isspace(*cp); cp++)
continue;
- for (pp += strlen (pp) - 1; pp > cp && isspace (*pp); pp--)
+ for (pp += strlen(pp) - 1; pp > cp && isspace(*pp); pp--)
continue;
if (pp >= cp)
*++pp = 0;
return;
if (fccind >= FCCS)
- adios (NULL, "too many %ss", hdr->value);
- fccfold[fccind++] = getcpy (cp);
+ adios(NULL, "too many %ss", hdr->value);
+ fccfold[fccind++] = getcpy(cp);
}
#if 0
/* BCC GENERATION */
static void
-make_bcc_file (void)
+make_bcc_file(void)
{
pid_t child_id;
int fd, i, status;
#ifdef HAVE_MKSTEMP
fd = mkstemp(bccfil);
if (fd == -1 || (out = fdopen(fd, "w")) == NULL)
- adios (bccfil, "unable to create");
+ adios(bccfil, "unable to create");
#else
- mktemp (bccfil);
- if ((out = fopen (bccfil, "w")) == NULL)
- adios (bccfil, "unable to create");
+ mktemp(bccfil);
+ if ((out = fopen(bccfil, "w")) == NULL)
+ adios(bccfil, "unable to create");
#endif
- chmod (bccfil, 0600);
+ chmod(bccfil, 0600);
- fprintf (out, "Date: %s\n", dtimenow (0));
+ fprintf(out, "Date: %s\n", dtimenow(0));
if (msgflags & MFRM) {
/* There was already a From: in the draft. Don't add one. */
if (!draft_from_masquerading)
/*
- * mts.conf didn't contain "masquerade:[...]draft_from[...]"
- * so we'll reveal the user's actual account@thismachine
- * address in a Sender: header (and use it as the envelope
- * From: later).
- */
- fprintf (out, "Sender: %s\n", from);
+ ** mts.conf didn't contain "masquerade:[...]draft_from[...]"
+ ** so we'll reveal the user's actual account@thismachine
+ ** address in a Sender: header (and use it as the envelope
+ ** From: later).
+ */
+ fprintf(out, "Sender: %s\n", from);
} else
- /* Construct a From: header. */
- fprintf (out, "From: %s\n", signature);
+ /* Construct a From: header. */
+ fprintf(out, "From: %s\n", signature);
if (subject)
- fprintf (out, "Subject: %s", subject);
- fprintf (out, "BCC:\n\n------- Blind-Carbon-Copy\n\n");
- fflush (out);
+ fprintf(out, "Subject: %s", subject);
+ fprintf(out, "BCC:\n\n------- Blind-Carbon-Copy\n\n");
+ fflush(out);
if (filter == NULL) {
- if ((fd = open (tmpfil, O_RDONLY)) == NOTOK)
- adios (NULL, "unable to re-open");
- cpydgst (fd, fileno (out), tmpfil, bccfil);
- close (fd);
+ if ((fd = open(tmpfil, O_RDONLY)) == NOTOK)
+ adios(NULL, "unable to re-open");
+ cpydgst(fd, fileno(out), tmpfil, bccfil);
+ close(fd);
} else {
- vec[0] = r1bindex (mhlproc, '/');
+ vec[0] = mhbasename(mhlproc);
for (i = 0; (child_id = vfork()) == NOTOK && i < 5; i++)
- sleep (5);
+ sleep(5);
switch (child_id) {
case NOTOK:
- adios ("vfork", "unable to");
+ adios("vfork", "unable to");
case OK:
- dup2 (fileno (out), 1);
+ dup2(fileno(out), 1);
i = 1;
vec[i++] = "-forward";
vec[i++] = tmpfil;
vec[i] = NULL;
- execvp (mhlproc, vec);
- adios (mhlproc, "unable to exec");
+ execvp(mhlproc, vec);
+ adios(mhlproc, "unable to exec");
default:
if (status = pidwait(child_id, OK))
- admonish (NULL, "%s lost (status=0%o)", vec[0], status);
+ admonish(NULL, "%s lost (status=0%o)",
+ vec[0], status);
break;
}
}
- fseek (out, 0L, SEEK_END);
- fprintf (out, "\n------- End of Blind-Carbon-Copy\n");
- fclose (out);
+ fseek(out, 0L, SEEK_END);
+ fprintf(out, "\n------- End of Blind-Carbon-Copy\n");
+ fclose(out);
}
#endif /* if 0 */
/* FCC INTERACTION */
static void
-file (char *path)
+file(char *path)
{
int i;
return;
for (i = 0; i < fccind; i++)
- fcc (path, fccfold[i]);
+ fcc(path, fccfold[i]);
}
static void
-fcc (char *file, char *folder)
+fcc(char *file, char *folder)
{
pid_t child_id;
int i, status;
char fold[BUFSIZ];
if (verbose)
- printf ("%sFcc: %s\n", msgstate == resent ? "Resent-" : "", folder);
- fflush (stdout);
+ printf("%sFcc: %s\n", msgstate == resent ? "Resent-" : "",
+ folder);
+ fflush(stdout);
for (i = 0; (child_id = vfork()) == NOTOK && i < 5; i++)
- sleep (5);
+ sleep(5);
switch (child_id) {
case NOTOK:
if (!verbose)
- fprintf (stderr, " %sFcc %s: ",
- msgstate == resent ? "Resent-" : "", folder);
- fprintf (verbose ? stdout : stderr, "no forks, so not ok\n");
+ fprintf(stderr, " %sFcc %s: ",
+ msgstate == resent ?
+ "Resent-" : "", folder);
+ fprintf(verbose ? stdout : stderr, "no forks, so not ok\n");
break;
case OK:
- snprintf (fold, sizeof(fold), "%s%s",
+ snprintf(fold, sizeof(fold), "%s%s",
*folder == '+' || *folder == '@' ? "" : "+", folder);
- execlp (fileproc, r1bindex (fileproc, '/'),
+ execlp(fileproc, mhbasename(fileproc),
"-link", "-file", file, fold, NULL);
- _exit (-1);
+ _exit(-1);
default:
if ((status = pidwait(child_id, OK))) {
if (!verbose)
- fprintf (stderr, " %sFcc %s: ",
- msgstate == resent ? "Resent-" : "", folder);
- fprintf (verbose ? stdout : stderr,
- " errored (0%o)\n", status);
+ fprintf(stderr, " %sFcc %s: ",
+ msgstate == resent ?
+ "Resent-" : "",
+ folder);
+ fprintf(verbose ? stdout : stderr,
+ " errored (0%o)\n", status);
}
}
- fflush (stdout);
+ fflush(stdout);
}
#if 0
/*
- * TERMINATION
- */
+** TERMINATION
+*/
static void
-die (char *what, char *fmt, ...)
+die(char *what, char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
- advertise (what, NULL, fmt, ap);
+ advertise(what, NULL, fmt, ap);
va_end(ap);
- done (1);
+ done(1);
}
#endif