X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1d08c1e0c0de0d321883ece1c36bce851fe893c7..63621a81d16ab743de6b57d47578a9a2c670ad22:/uip/mhbuild.c diff --git a/uip/mhbuild.c b/uip/mhbuild.c index a0903c57..3b17f356 100644 --- a/uip/mhbuild.c +++ b/uip/mhbuild.c @@ -1,6 +1,4 @@ - -/* - * 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 @@ -16,6 +14,10 @@ #include #include #include +#include "sbr/m_maildir.h" +#include "sbr/m_mktemp.h" +#include "mhfree.h" +#include "mhoutsbr.h" #define MHBUILD_SWITCHES \ X("auto", 0, AUTOSW) \ @@ -56,9 +58,11 @@ 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); @@ -68,12 +72,6 @@ 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; @@ -91,10 +89,6 @@ static int unlink_outfile = 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) @@ -112,7 +106,7 @@ 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; @@ -123,8 +117,7 @@ main (int argc, char **argv) if (cp[0] == '-' && cp[1] == '\0') { if (compfile) adios (NULL, "cannot specify both standard input and a file"); - else - compfile = cp; + compfile = cp; listsw = 0; /* turn off -list if using standard in/out */ verbosw = 0; /* turn off -verbose listings */ break; @@ -167,9 +160,9 @@ main (int argc, char **argv) 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); @@ -244,6 +237,9 @@ main (int argc, char **argv) case QUOTEDPRINTSW: header_encoding = CE_QUOTED; break; + case UTF8SW: + header_encoding = CE_8BIT; + break; default: adios (NULL, "Internal error: algorithm %s", cp); } @@ -285,8 +281,7 @@ main (int argc, char **argv) } if (compfile) adios (NULL, "only one composition file allowed"); - else - compfile = cp; + compfile = cp; } /* @@ -294,7 +289,7 @@ main (int argc, char **argv) */ if ((cp = getenv ("MHBUILD"))) { if ((fp = fopen (cp, "r"))) { - readconfig ((struct node **) 0, fp, cp, 0); + readconfig(NULL, fp, cp, 0); fclose (fp); } else { admonish ("", "unable to read $MHBUILD profile (%s)", cp); @@ -305,7 +300,7 @@ main (int argc, char **argv) * Read the standard profile setup */ if ((fp = fopen (cp = etcpath ("mhn.defaults"), "r"))) { - readconfig ((struct node **) 0, fp, cp, 0); + readconfig(NULL, fp, cp, 0); fclose (fp); } @@ -429,7 +424,7 @@ main (int argc, char **argv) } -static void +static void NORETURN unlink_done (int status) { /*