/*
- * viamail.c -- send multiple files in a MIME message
- *
- * 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.
- */
+** viamail.c -- send multiple files in a MIME message
+**
+** 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 <fcntl.h>
{ "description text", 0 },
#define COMMENTSW 5
{ "comment text", 0 },
-#define DELAYSW 6
- { "delay seconds", 0 },
-#define VERBSW 7
+#define VERBSW 6
{ "verbose", 0 },
-#define NVERBSW 8
+#define NVERBSW 7
{ "noverbose", 0 },
-#define VERSIONSW 9
+#define VERSIONSW 8
{ "version", 0 },
-#define HELPSW 10
+#define HELPSW 9
{ "help", 0 },
-#define DEBUGSW 11
+#define DEBUGSW 10
{ "debug", -5 },
{ NULL, 0 }
};
extern int debugsw;
-extern int splitsw;
extern int verbsw;
int ebcdicsw = 0; /* hack for linking purposes */
/* mhmisc.c */
-void set_endian (void);
+void set_endian(void);
/* mhoutsbr.c */
-int writeBase64aux (FILE *, FILE *);
+int writeBase64aux(FILE *, FILE *);
/*
- * static prototypes
- */
-static int via_mail (char *, char *, char *, char *, char *, int, char *);
+** static prototypes
+*/
+static int via_mail(char *, char *, char *, char *, char *, char *);
int
-main (int argc, char **argv)
+main(int argc, char **argv)
{
- int delay = 0;
char *f1 = NULL, *f2 = NULL, *f3 = NULL;
char *f4 = NULL, *f5 = NULL, *f7 = NULL;
char *cp, buf[BUFSIZ];
#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);
- arguments = getarguments (invo_name, argc, argv, 0);
+ 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]", invo_name);
- print_help (buf, switches, 1);
- done (1);
+ snprintf(buf, sizeof(buf), "%s [switches]",
+ invo_name);
+ print_help(buf, switches, 1);
+ done(1);
case VERSIONSW:
print_version(invo_name);
- done (1);
+ done(1);
case TOSW:
if (!(f1 = *argp++))
- adios (NULL, "missing argument to %s", argp[-2]);
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
continue;
case SUBJECTSW:
if (!(f2 = *argp++))
- adios (NULL, "missing argument to %s", argp[-2]);
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
continue;
case PARAMSW:
if (!(f3 = *argp++))
- adios (NULL, "missing argument to %s", argp[-2]);
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
continue;
case DESCRIPTSW:
if (!(f4 = *argp++))
- adios (NULL, "missing argument to %s", argp[-2]);
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
continue;
case COMMENTSW:
if (!(f5 = *argp++))
- adios (NULL, "missing argument to %s", argp[-2]);
- continue;
- case DELAYSW:
- if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
-
- /*
- * If there is an error, just reset the
- * delay parameter to -1. We will set
- * a default delay later.
- */
- if (sscanf (cp, "%d", &delay) != 1)
- delay = -1;
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
continue;
case FROMSW:
if (!(f7 = *argp++))
- adios (NULL, "missing argument to %s", argp[-2]);
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
continue;
case VERBSW:
}
}
- set_endian ();
+ set_endian();
if (!f1)
- adios (NULL, "missing -viamail \"mailpath\" switch");
+ adios(NULL, "missing -viamail \"mailpath\" switch");
- via_mail (f1, f2, f3, f4, f5, delay, f7);
+ via_mail(f1, f2, f3, f4, f5, f7);
return 0; /* dead code to satisfy the compiler */
}
/*
- * VIAMAIL
- */
+** VIAMAIL
+*/
static int
-via_mail (char *mailsw, char *subjsw, char *parmsw, char *descsw,
- char *cmntsw, int delay, char *fromsw)
+via_mail(char *mailsw, char *subjsw, char *parmsw, char *descsw,
+ char *cmntsw, char *fromsw)
{
int status, vecp = 1;
char tmpfil[BUFSIZ];
FILE *fp;
char *tfile = NULL;
- umask (~m_gmprot ());
+ umask(~m_gmprot());
tfile = m_mktemp2(NULL, invo_name, NULL, &fp);
- if (tfile == NULL) adios("viamail", "unable to create temporary file");
+ if (tfile == NULL)
+ adios("viamail", "unable to create temporary file");
chmod(tfile, 0600);
- strncpy (tmpfil, tfile, sizeof(tmpfil));
+ strncpy(tmpfil, tfile, sizeof(tmpfil));
if (!strchr(mailsw, '@'))
- mailsw = concat (mailsw, "@", LocalName (), NULL);
- fprintf (fp, "To: %s\n", mailsw);
+ mailsw = concat(mailsw, "@", LocalName(), NULL);
+ fprintf(fp, "To: %s\n", mailsw);
if (subjsw)
- fprintf (fp, "Subject: %s\n", subjsw);
+ fprintf(fp, "Subject: %s\n", subjsw);
if (fromsw) {
if (!strchr(fromsw, '@'))
- fromsw = concat (fromsw, "@", LocalName (), NULL);
- fprintf (fp, "From: %s\n", fromsw);
+ fromsw = concat(fromsw, "@", LocalName(), NULL);
+ fprintf(fp, "From: %s\n", fromsw);
}
- fprintf (fp, "%s: %s\n", VRSN_FIELD, VRSN_VALUE);
- fprintf (fp, "%s: application/octet-stream", TYPE_FIELD);
+ fprintf(fp, "%s: %s\n", VRSN_FIELD, VRSN_VALUE);
+ fprintf(fp, "%s: application/octet-stream", TYPE_FIELD);
if (parmsw)
- fprintf (fp, "; %s", parmsw);
+ fprintf(fp, "; %s", parmsw);
if (cmntsw)
- fprintf (fp, "\n\t(%s)", cmntsw);
+ fprintf(fp, "\n\t(%s)", cmntsw);
if (descsw)
- fprintf (fp, "\n%s: %s", DESCR_FIELD, descsw);
-
- fprintf (fp, "\n%s: %s\n\n", ENCODING_FIELD, "base64");
+ fprintf(fp, "\n%s: %s", DESCR_FIELD, descsw);
- if (fflush (fp))
- adios (tmpfil, "error writing to");
+ fprintf(fp, "\n%s: %s\n\n", ENCODING_FIELD, "base64");
- writeBase64aux (stdin, fp);
- if (fflush (fp))
- adios (tmpfil, "error writing to");
+ if (fflush(fp))
+ adios(tmpfil, "error writing to");
- if (fstat (fileno (fp), &st) == NOTOK)
- adios ("failed", "fstat of %s", tmpfil);
+ writeBase64aux(stdin, fp);
+ if (fflush(fp))
+ adios(tmpfil, "error writing to");
- if (delay < 0)
- splitsw = 10;
- else
- splitsw = delay;
+ if (fstat(fileno(fp), &st) == NOTOK)
+ adios("failed", "fstat of %s", tmpfil);
status = 0;
- vec[0] = r1bindex (postproc, '/');
+ vec[0] = mhbasename(postproc);
if (verbsw)
vec[vecp++] = "-verbose";
- switch (sendsbr (vec, vecp, tmpfil, &st, 0, (char *)0, 0)) {
- case DONE:
- case NOTOK:
- status++;
- break;
- case OK:
- break;
+ switch (sendsbr(vec, vecp, tmpfil, &st, 0)) {
+ case DONE:
+ case NOTOK:
+ status++;
+ break;
+ case OK:
+ break;
}
- fclose (fp);
- if (unlink (tmpfil) == -1)
- advise (NULL, "unable to remove temp file %s", tmpfil);
- done (status);
+ fclose(fp);
+ if (unlink(tmpfil) == -1)
+ advise(NULL, "unable to remove temp file %s", tmpfil);
+ done(status);
return 1;
}