/*
- * mhbuild.c -- expand/translate MIME composition files
- *
- * 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.
- */
+** mhbuild.c -- expand/translate MIME composition files
+**
+** 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>
int contentidsw = 1;
/*
- * Temporary files
- */
+** Temporary files
+*/
static char infile[BUFSIZ];
static int unlink_infile = 0;
static char outfile[BUFSIZ];
static int unlink_outfile = 0;
-static void unlink_done (int) NORETURN;
+static void unlink_done(int) NORETURN;
/* mhbuildsbr.c */
-CT build_mime (char *);
-int output_message (CT, char *);
-int output_message_fp (CT, FILE *, char*);
+CT build_mime(char *);
+int output_message(CT, char *);
+int output_message_fp(CT, FILE *, char*);
/* mhlistsbr.c */
-int list_all_messages (CT *, int, int, int, int);
+int list_all_messages(CT *, int, int, int, int);
/* mhmisc.c */
-void set_endian (void);
+void set_endian(void);
/* mhfree.c */
-void free_content (CT);
+void free_content(CT);
int
-main (int argc, char **argv)
+main(int argc, char **argv)
{
int sizesw = 1, headsw = 1;
int *icachesw;
#ifdef LOCALE
setlocale(LC_ALL, "");
#endif
- invo_name = r1bindex (argv[0], '/');
+ invo_name = mhbasename(argv[0]);
/* read user profile/context */
context_read();
- arguments = getarguments (invo_name, argc, argv, 1);
+ arguments = getarguments(invo_name, argc, argv, 1);
argp = arguments;
while ((cp = *argp++)) {
if (cp[0] == '-' && cp[1] == '\0') {
if (compfile)
- adios (NULL, "cannot specify both standard input and a file");
+ adios(NULL, "cannot specify both standard input and a file");
else
compfile = cp;
- listsw = 0; /* turn off -list if using standard in/out */
+ listsw = 0; /* turn off -list if using std in/out */
verbosw = 0; /* turn off -verbose listings */
break;
}
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 RCACHESW:
icachesw = &rcachesw;
icachesw = &wcachesw;
do_cache: ;
if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
- switch (*icachesw = smatch (cp, caches)) {
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ switch (*icachesw = smatch(cp, caches)) {
case AMBIGSW:
- ambigsw (cp, caches);
- done (1);
+ ambigsw(cp, caches);
+ done(1);
case UNKWNSW:
- adios (NULL, "%s unknown", cp);
+ adios(NULL, "%s unknown", cp);
default:
break;
}
}
}
if (compfile)
- adios (NULL, "only one composition file allowed");
+ adios(NULL, "only one composition file allowed");
else
compfile = cp;
}
- set_endian ();
+ set_endian();
- if ((cp = getenv ("MM_NOASK")) && !strcmp (cp, "1"))
+ if ((cp = getenv("MM_NOASK")) && strcmp(cp, "1")==0)
listsw = 0;
/*
- * Check if we've specified an additional profile
- */
- if ((cp = getenv ("MHBUILD"))) {
- if ((fp = fopen (cp, "r"))) {
- readconfig ((struct node **) 0, fp, cp, 0);
- fclose (fp);
+ ** Check if we've specified an additional profile
+ */
+ if ((cp = getenv("MHBUILD"))) {
+ if ((fp = fopen(cp, "r"))) {
+ readconfig((struct node **) 0, fp, cp, 0);
+ fclose(fp);
} else {
- admonish ("", "unable to read $MHBUILD profile (%s)", cp);
+ admonish("", "unable to read $MHBUILD profile (%s)",
+ cp);
}
}
/*
- * Read the standard profile setup
- */
- if ((fp = fopen (cp = etcpath ("mhn.defaults"), "r"))) {
- readconfig ((struct node **) 0, fp, cp, 0);
- fclose (fp);
+ ** Read the standard profile setup
+ */
+ if ((fp = fopen(cp = etcpath("mhn.defaults"), "r"))) {
+ readconfig((struct node **) 0, fp, cp, 0);
+ fclose(fp);
}
/* Check for public cache location */
- if ((cache_public = context_find (nmhcache)) && *cache_public != '/')
+ if ((cache_public = context_find(nmhcache)) && *cache_public != '/')
cache_public = NULL;
/* Check for private cache location */
- if (!(cache_private = context_find (nmhprivcache)))
+ if (!(cache_private = context_find(nmhprivcache)))
cache_private = ".cache";
- cache_private = getcpy (m_maildir (cache_private));
+ cache_private = getcpy(toabsdir(cache_private));
/*
- * Check for storage directory. If defined, we
- * will store temporary files there. Else we
- * store them in standard nmh directory.
- */
- if ((cp = context_find (nmhstorage)) && *cp)
- tmp = concat (cp, "/", invo_name, NULL);
+ ** Check for storage directory. If defined, we
+ ** will store temporary files there. Else we
+ ** store them in standard nmh directory.
+ */
+ if ((cp = context_find(nmhstorage)) && *cp)
+ tmp = concat(cp, "/", invo_name, NULL);
else
- tmp = add (m_maildir (invo_name), NULL);
-
- if (!context_find ("path"))
- free (path ("./", TFOLDER));
+ tmp = getcpy(toabsdir(invo_name));
/* Check if we have a file to process */
if (!compfile)
- adios (NULL, "need to specify a %s composition file", invo_name);
+ adios(NULL, "need to specify a %s composition file",
+ invo_name);
/*
- * Process the composition file from standard input.
- */
+ ** Process the composition file from standard input.
+ */
if (compfile[0] == '-' && compfile[1] == '\0') {
/* copy standard input to temporary file */
- strncpy (infile, m_mktemp(invo_name, NULL, &fp), sizeof(infile));
- while (fgets (buffer, BUFSIZ, stdin))
- fputs (buffer, fp);
- fclose (fp);
+ strncpy(infile, m_mktemp(invo_name, NULL, &fp),
+ sizeof(infile));
+ while (fgets(buffer, BUFSIZ, stdin))
+ fputs(buffer, fp);
+ fclose(fp);
unlink_infile = 1;
/* build the content structures for MIME message */
- ct = build_mime (infile);
+ ct = build_mime(infile);
cts[0] = ct;
cts[1] = NULL;
/* output MIME message to this temporary file */
- strncpy (outfile, m_mktemp(invo_name, NULL, &fp_out), sizeof(outfile));
+ strncpy(outfile, m_mktemp(invo_name, NULL, &fp_out),
+ sizeof(outfile));
unlink_outfile = 1;
/* output the message */
- output_message_fp (ct, fp_out, outfile);
+ output_message_fp(ct, fp_out, outfile);
fclose(fp_out);
/* output the temp file to standard output */
- if ((fp = fopen (outfile, "r")) == NULL)
- adios (outfile, "unable to open");
- while (fgets (buffer, BUFSIZ, fp))
- fputs (buffer, stdout);
- fclose (fp);
+ if ((fp = fopen(outfile, "r")) == NULL)
+ adios(outfile, "unable to open");
+ while (fgets(buffer, BUFSIZ, fp))
+ fputs(buffer, stdout);
+ fclose(fp);
- unlink (infile);
+ unlink(infile);
unlink_infile = 0;
- unlink (outfile);
+ unlink(outfile);
unlink_outfile = 0;
- free_content (ct);
- done (0);
+ free_content(ct);
+ done(0);
}
/*
- * Process the composition file from a file.
- */
+ ** Process the composition file from a file.
+ */
/* build the content structures for MIME message */
- ct = build_mime (compfile);
+ ct = build_mime(compfile);
cts[0] = ct;
cts[1] = NULL;
unlink_outfile = 1;
/* output the message */
- output_message_fp (ct, fp_out, outfile);
+ output_message_fp(ct, fp_out, outfile);
fclose(fp_out);
/*
- * List the message info
- */
+ ** List the message info
+ */
if (listsw)
- list_all_messages (cts, headsw, sizesw, verbosw, debugsw);
+ list_all_messages(cts, headsw, sizesw, verbosw, debugsw);
/* Rename composition draft */
- snprintf (buffer, sizeof(buffer), "%s.orig", m_backup (compfile));
- if (rename (compfile, buffer) == NOTOK) {
- adios (compfile, "unable to rename comp draft %s to", buffer);
+ snprintf(buffer, sizeof(buffer), "%s.orig", m_backup(compfile));
+ if (rename(compfile, buffer) == NOTOK) {
+ adios(compfile, "unable to rename comp draft %s to", buffer);
}
/* Rename output file to take its place */
- if (rename (outfile, compfile) == NOTOK) {
- advise (outfile, "unable to rename output %s to", compfile);
- rename (buffer, compfile);
- done (1);
+ if (rename(outfile, compfile) == NOTOK) {
+ advise(outfile, "unable to rename output %s to", compfile);
+ rename(buffer, compfile);
+ done(1);
}
unlink_outfile = 0;
- free_content (ct);
- done (0);
+ free_content(ct);
+ done(0);
return 1;
}
static void
-unlink_done (int status)
+unlink_done(int status)
{
/*
- * Check if we need to remove stray
- * temporary files.
- */
+ ** Check if we need to remove stray temporary files.
+ */
if (unlink_infile)
- unlink (infile);
+ unlink(infile);
if (unlink_outfile)
- unlink (outfile);
+ unlink(outfile);
- exit (status);
+ exit(status);
}