* complete copyright information.
*/
-#include <h/mh.h>
+#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 <fcntl.h>
-#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/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 <h/utils.h>
+#include "h/utils.h"
#include "sbr/m_maildir.h"
#include "sbr/m_mktemp.h"
#include "mhfree.h"
int debugsw = 0;
-int listsw = 0;
-int rfc934sw = 0;
-int contentidsw = 1;
+bool listsw;
+bool rfc934sw;
+bool contentidsw = true;
/*
* Temporary files
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];
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;
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 == '-') {
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);
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:
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;
}
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;
header_encoding = CE_8BIT;
break;
default:
- adios (NULL, "Internal error: algorithm %s", cp);
+ die("Internal error: algorithm %s", cp);
}
continue;
}
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;
}
/* 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));
/* 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);
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 {
/* 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));