X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b56c88e2847c582f9b18ae5bbda44f033cd49c42..5be8db81:/uip/mhbuild.c?ds=inline diff --git a/uip/mhbuild.c b/uip/mhbuild.c index b0ef72ae..06577740 100644 --- a/uip/mhbuild.c +++ b/uip/mhbuild.c @@ -35,15 +35,19 @@ X("norfc934mode", 0, NRFC934SW) \ X("verbose", 0, VERBSW) \ X("noverbose", 0, NVERBSW) \ + X("disposition", 0, DISPOSW) \ + X("nodisposition", 0, NDISPOSW) \ X("rcache policy", 0, RCACHESW) \ X("wcache policy", 0, WCACHESW) \ X("contentid", 0, CONTENTIDSW) \ X("nocontentid", 0, NCONTENTIDSW) \ X("headerencoding encoding-algorithm", 0, HEADERENCSW) \ X("autoheaderencoding", 0, AUTOHEADERENCSW) \ + X("maxunencoded", 0, MAXUNENCSW) \ X("version", 0, VERSIONSW) \ X("help", 0, HELPSW) \ X("debug", -5, DEBUGSW) \ + X("dist", -4, DISTSW) \ #define X(sw, minchars, id) id, DEFINE_SWITCH_ENUM(MHBUILD); @@ -72,7 +76,6 @@ extern char *cache_public; extern char *cache_private; int debugsw = 0; -int verbosw = 0; int listsw = 0; int rfc934sw = 0; @@ -93,14 +96,13 @@ static void unlink_done (int) NORETURN; int output_message (CT, char *); int output_message_fp (CT, FILE *, char*); -/* mhlistsbr.c */ -int list_all_messages (CT *, int, int, int, int); - int main (int argc, char **argv) { - int sizesw = 1, headsw = 1, directives = 1, autobuild = 0; + int sizesw = 1, headsw = 1, directives = 1, autobuild = 0, dist = 0; + int verbosw = 0, dispo = 0; + size_t maxunencoded = MAXTEXTPERLN; int *icachesw; char *cp, buf[BUFSIZ]; char buffer[BUFSIZ], *compfile = NULL; @@ -252,15 +254,33 @@ main (int argc, char **argv) header_encoding = CE_UNKNOWN; continue; + case MAXUNENCSW: + if (!(cp = *argp++) || *cp == '-') + adios (NULL, "missing argument to %s", argp[-2]); + if ((maxunencoded = atoi(cp)) < 1) + adios (NULL, "Invalid argument for %s: %s", argp[-2], cp); + if (maxunencoded > 998) + adios (NULL, "limit of -maxunencoded is 998"); + continue; + case VERBSW: verbosw++; continue; case NVERBSW: verbosw = 0; continue; + case DISPOSW: + dispo = 1; + continue; + case NDISPOSW: + dispo = 0; + continue; case DEBUGSW: debugsw = 1; continue; + case DISTSW: + dist = 1; + continue; } } if (compfile) @@ -322,7 +342,8 @@ main (int argc, char **argv) unlink_infile = 1; /* build the content structures for MIME message */ - ct = build_mime (infile, autobuild, directives, header_encoding); + ct = build_mime (infile, autobuild, dist, directives, header_encoding, + maxunencoded, verbosw); /* * If ct == NULL, that means that -auto was set and a MIME version @@ -341,7 +362,7 @@ main (int argc, char **argv) free_content (ct); } - unlink (infile); + (void) m_unlink (infile); unlink_infile = 0; done (0); @@ -352,7 +373,8 @@ main (int argc, char **argv) */ /* build the content structures for MIME message */ - ct = build_mime (compfile, autobuild, directives, header_encoding); + ct = build_mime (compfile, autobuild, dist, directives, header_encoding, + maxunencoded, verbosw); /* * If ct == NULL, that means -auto was set and we found a MIME version @@ -380,7 +402,7 @@ main (int argc, char **argv) * List the message info */ if (listsw) - list_all_messages (cts, headsw, sizesw, verbosw, debugsw); + list_all_messages (cts, headsw, sizesw, verbosw, debugsw, dispo); /* Rename composition draft */ snprintf (buffer, sizeof(buffer), "%s.orig", m_backup (compfile)); @@ -410,9 +432,9 @@ unlink_done (int status) * temporary files. */ if (unlink_infile) - unlink (infile); + (void) m_unlink (infile); if (unlink_outfile) - unlink (outfile); + (void) m_unlink (outfile); exit (status); }