X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/af9b66336bdbd198f3b1e7bca82e3d1278f27664..ec173fd2c:/uip/mhbuild.c?ds=inline diff --git a/uip/mhbuild.c b/uip/mhbuild.c index 07074d75..1ef84211 100644 --- a/uip/mhbuild.c +++ b/uip/mhbuild.c @@ -5,16 +5,26 @@ * complete copyright information. */ -#include +#include "h/mh.h" +#include "sbr/getarguments.h" +#include "sbr/smatch.h" +#include "sbr/m_backup.h" +#include "sbr/context_find.h" +#include "sbr/readconfig.h" +#include "sbr/ambigsw.h" +#include "sbr/path.h" +#include "sbr/print_version.h" +#include "sbr/print_help.h" +#include "sbr/error.h" #include -#include -#include -#include -#include -#include -#include +#include "h/md5.h" +#include "h/mts.h" +#include "h/tws.h" +#include "h/mime.h" +#include "h/mhparse.h" +#include "h/mhcachesbr.h" #include "h/done.h" -#include +#include "h/utils.h" #include "sbr/m_maildir.h" #include "sbr/m_mktemp.h" #include "mhfree.h" @@ -75,9 +85,9 @@ DEFINE_SWITCH_ARRAY(MIMEENCODING, encodingswitches); int debugsw = 0; -int listsw = 0; -int rfc934sw = 0; -int contentidsw = 1; +bool listsw; +bool rfc934sw; +bool contentidsw = true; /* * Temporary files @@ -89,8 +99,13 @@ static char outfile[BUFSIZ]; int main (int argc, char **argv) { - int sizesw = 1, headsw = 1, directives = 1, autobuild = 0, dist = 0; - int verbosw = 0, dispo = 0; + bool sizesw = true; + bool headsw = true; + bool directives = true; + bool autobuild = false; + bool dist = false; + bool verbosw = false; + bool dispo = false; size_t maxunencoded = MAXTEXTPERLN; int *icachesw; char *cp, buf[BUFSIZ]; @@ -102,7 +117,7 @@ main (int argc, char **argv) int header_encoding = CE_UNKNOWN; size_t n; - if (nmh_init(argv[0], 2)) { return 1; } + if (nmh_init(argv[0], true, false)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -110,10 +125,10 @@ main (int argc, char **argv) while ((cp = *argp++)) { if (cp[0] == '-' && cp[1] == '\0') { if (compfile) - adios (NULL, "cannot specify both standard input and a file"); + die("cannot specify both standard input and a file"); compfile = cp; - listsw = 0; /* turn off -list if using standard in/out */ - verbosw = 0; /* turn off -verbose listings */ + listsw = false; /* turn off -list if using standard in/out */ + verbosw = false; /* turn off -verbose listings */ break; } if (*cp == '-') { @@ -122,7 +137,7 @@ main (int argc, char **argv) ambigsw (cp, switches); done (1); case UNKWNSW: - adios (NULL, "-%s unknown", cp); + die("-%s unknown", cp); case HELPSW: snprintf (buf, sizeof(buf), "%s [switches] file", invo_name); @@ -134,16 +149,16 @@ main (int argc, char **argv) case AUTOSW: /* -auto implies -nodirectives */ - autobuild = 1; - directives = 0; + autobuild = true; + directives = false; continue; case NAUTOSW: /* * We're turning directives back on since this is likely here * to override a profile entry */ - autobuild = 0; - directives = 1; + autobuild = false; + directives = true; continue; case RCACHESW: @@ -153,13 +168,13 @@ main (int argc, char **argv) icachesw = &wcachesw; do_cache: ; if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); switch (*icachesw = smatch (cp, cache_policy)) { case AMBIGSW: ambigsw (cp, cache_policy); done (1); case UNKWNSW: - adios (NULL, "%s unknown", cp); + die("%s unknown", cp); default: break; } @@ -173,58 +188,58 @@ main (int argc, char **argv) continue; case HEADSW: - headsw++; + headsw = true; continue; case NHEADSW: - headsw = 0; + headsw = false; continue; case DIRECTIVES: - directives = 1; + directives = true; continue; case NDIRECTIVES: - directives = 0; + directives = false; continue; case LISTSW: - listsw++; + listsw = true; continue; case NLISTSW: - listsw = 0; + listsw = false; continue; case RFC934SW: - rfc934sw++; + rfc934sw = true; continue; case NRFC934SW: - rfc934sw = 0; + rfc934sw = false; continue; case SIZESW: - sizesw++; + sizesw = true; continue; case NSIZESW: - sizesw = 0; + sizesw = false; continue; case CONTENTIDSW: - contentidsw = 1; + contentidsw = true; continue; case NCONTENTIDSW: - contentidsw = 0; + contentidsw = false; continue; case HEADERENCSW: { int encoding; if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); switch (encoding = smatch (cp, encodingswitches)) { case AMBIGSW: ambigsw (cp, encodingswitches); done (1); case UNKWNSW: - adios (NULL, "%s unknown encoding algorithm", cp); + die("%s unknown encoding algorithm", cp); case BASE64SW: header_encoding = CE_BASE64; break; @@ -235,7 +250,7 @@ main (int argc, char **argv) header_encoding = CE_8BIT; break; default: - adios (NULL, "Internal error: algorithm %s", cp); + die("Internal error: algorithm %s", cp); } continue; } @@ -246,35 +261,35 @@ main (int argc, char **argv) case MAXUNENCSW: if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); if ((maxunencoded = atoi(cp)) < 1) - adios (NULL, "Invalid argument for %s: %s", argp[-2], cp); + die("Invalid argument for %s: %s", argp[-2], cp); if (maxunencoded > 998) - adios (NULL, "limit of -maxunencoded is 998"); + die("limit of -maxunencoded is 998"); continue; case VERBSW: - verbosw++; + verbosw = true; continue; case NVERBSW: - verbosw = 0; + verbosw = false; continue; case DISPOSW: - dispo = 1; + dispo = true; continue; case NDISPOSW: - dispo = 0; + dispo = false; continue; case DEBUGSW: debugsw = 1; continue; case DISTSW: - dist = 1; + dist = true; continue; } } if (compfile) - adios (NULL, "only one composition file allowed"); + die("only one composition file allowed"); compfile = cp; } @@ -312,14 +327,14 @@ main (int argc, char **argv) /* Check if we have a file to process */ if (!compfile) - adios (NULL, "need to specify a %s composition file", invo_name); + die("need to specify a %s composition file", invo_name); /* * Process the composition file from standard input. */ if (compfile[0] == '-' && compfile[1] == '\0') { if ((cp = m_mktemp2(NULL, invo_name, NULL, &fp)) == NULL) { - adios(NULL, "unable to create temporary file in %s", + die("unable to create temporary file in %s", get_temp_dir()); } strncpy (infile, cp, sizeof(infile)); @@ -327,7 +342,7 @@ main (int argc, char **argv) /* copy standard input to temporary file */ while ((n = fread(buffer, 1, sizeof(buffer), stdin)) > 0) { if (fwrite(buffer, 1, n, fp) != n) { - adios (NULL, "error copying to temporary file"); + die("error copying to temporary file"); } } fclose (fp); @@ -343,11 +358,11 @@ main (int argc, char **argv) if (!ct) { if (! (fp = fopen(infile, "r"))) { - adios(NULL, "Unable to open %s for reading", infile); + die("Unable to open %s for reading", infile); } while ((n = fread(buffer, 1, sizeof(buffer), fp)) > 0) { if (fwrite(buffer, 1, n, stdout) != n) { - adios(NULL, "error copying %s to stdout", infile); + die("error copying %s to stdout", infile); } } } else { @@ -380,7 +395,7 @@ main (int argc, char **argv) /* output MIME message to this temporary file */ if ((cp = m_mktemp2(compfile, invo_name, NULL, &fp_out)) == NULL) { - adios(NULL, "unable to create temporary file"); + die("unable to create temporary file"); } strncpy(outfile, cp, sizeof(outfile));