-
-/*
- * mhbuild.c -- expand/translate MIME composition files
+/* 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
#include <h/mh.h>
#include <fcntl.h>
-#include <h/signals.h>
#include <h/md5.h>
#include <h/mts.h>
#include <h/tws.h>
#include <h/mhparse.h>
#include <h/mhcachesbr.h>
#include <h/utils.h>
+#include "../sbr/m_maildir.h"
+#include "../sbr/m_mktemp.h"
+#include "mhfree.h"
+#include "mhoutsbr.h"
#define MHBUILD_SWITCHES \
X("auto", 0, AUTOSW) \
X("version", 0, VERSIONSW) \
X("help", 0, HELPSW) \
X("debug", -5, DEBUGSW) \
- X("dist", -4, DISTSW) \
+ X("dist", 0, DISTSW) \
#define X(sw, minchars, id) id,
DEFINE_SWITCH_ENUM(MHBUILD);
DEFINE_SWITCH_ARRAY(MHBUILD, switches);
#undef X
+/* utf-8 is for Email Address Internationalization, using SMTPUTF8. */
#define MIMEENCODING_SWITCHES \
X("base64", 0, BASE64SW) \
X("quoted-printable", 0, QUOTEDPRINTSW) \
+ X("utf-8", 0, UTF8SW) \
#define X(sw, minchars, id) id,
DEFINE_SWITCH_ENUM(MIMEENCODING);
DEFINE_SWITCH_ARRAY(MIMEENCODING, encodingswitches);
#undef X
-/* mhcachesbr.c */
-extern int rcachesw;
-extern int wcachesw;
-extern char *cache_public;
-extern char *cache_private;
-
int debugsw = 0;
int listsw = 0;
static void unlink_done (int) NORETURN;
-/* mhbuildsbr.c */
-int output_message (CT, char *);
-int output_message_fp (CT, FILE *, char*);
-
int
main (int argc, char **argv)
int header_encoding = CE_UNKNOWN;
size_t n;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], 2)) { return 1; }
done=unlink_done;
do_cache: ;
if (!(cp = *argp++) || *cp == '-')
adios (NULL, "missing argument to %s", argp[-2]);
- switch (*icachesw = smatch (cp, caches)) {
+ switch (*icachesw = smatch (cp, cache_policy)) {
case AMBIGSW:
- ambigsw (cp, caches);
+ ambigsw (cp, cache_policy);
done (1);
case UNKWNSW:
adios (NULL, "%s unknown", cp);
case QUOTEDPRINTSW:
header_encoding = CE_QUOTED;
break;
+ case UTF8SW:
+ header_encoding = CE_8BIT;
+ break;
default:
adios (NULL, "Internal error: algorithm %s", cp);
}
}
-static void
+static void NORETURN
unlink_done (int status)
{
/*