-/* mhn.c -- display, list, cache, or store the contents of MIME messages
+/* mhn.c -- display, list, or store the contents of MIME messages
*
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
* complete copyright information.
*/
-#include <h/mh.h>
+#include "h/mh.h"
+#include "sbr/m_name.h"
+#include "sbr/m_gmprot.h"
+#include "sbr/getarguments.h"
+#include "sbr/seq_setprev.h"
+#include "sbr/seq_setcur.h"
+#include "sbr/seq_save.h"
+#include "sbr/smatch.h"
+#include "sbr/m_convert.h"
+#include "sbr/getfolder.h"
+#include "sbr/folder_read.h"
+#include "sbr/context_save.h"
+#include "sbr/context_replace.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/signals.h>
-#include <h/md5.h>
-#include <h/mts.h>
-#include <h/tws.h>
-#include <h/fmt_scan.h>
-#include <h/mime.h>
-#include <h/mhparse.h>
-#include <h/mhcachesbr.h>
+#include "h/signals.h"
+#include "h/mts.h"
+#include "h/tws.h"
+#include "h/fmt_scan.h"
+#include "h/mime.h"
+#include "h/mhparse.h"
#include "h/done.h"
-#include <h/utils.h>
+#include "h/utils.h"
#include "mhmisc.h"
#include "sbr/m_maildir.h"
#include "mhfree.h"
#define MHN_SWITCHES \
X("auto", 0, AUTOSW) \
X("noauto", 0, NAUTOSW) \
- X("cache", 0, CACHESW) \
- X("nocache", 0, NCACHESW) \
- X("check", 0, CHECKSW) \
- X("nocheck", 0, NCHECKSW) \
+ X("check", -5, CHECKSW) \
+ X("nocheck", -7, NCHECKSW) \
X("headers", 0, HEADSW) \
X("noheaders", 0, NHEADSW) \
X("list", 0, LISTSW) \
X("form formfile", 0, FORMSW) \
X("part number", 0, PARTSW) \
X("type content", 0, TYPESW) \
- X("rcache policy", 0, RCACHESW) \
- X("wcache policy", 0, WCACHESW) \
X("version", 0, VERSIONSW) \
X("help", 0, HELPSW) \
/* \
/*
* variables for mhbuild (mhn -build)
*/
-static int buildsw = 0;
+static bool buildsw;
static int rfc934sw = 0;
/*
* what action to take?
*/
-static int cachesw = 0;
-static int listsw = 0;
-static int showsw = 0;
-static int storesw = 0;
+static bool listsw;
+static bool showsw;
+static bool storesw;
#define quitser pipeser
int
main (int argc, char **argv)
{
- int sizesw = 1, headsw = 1, autosw = 0;
- int msgnum, *icachesw;
+ bool sizesw = true;
+ bool headsw = true;
+ bool autosw = false;
+ int msgnum;
char *cp, *file = NULL, *folder = NULL;
char *maildir, buf[100], **argp;
char **arguments;
done (0);
case AUTOSW:
- autosw++;
+ autosw = true;
continue;
case NAUTOSW:
- autosw = 0;
- continue;
-
- case CACHESW:
- cachesw++;
- continue;
- case NCACHESW:
- cachesw = 0;
- continue;
-
- case RCACHESW:
- icachesw = &rcachesw;
- goto do_cache;
- case WCACHESW:
- icachesw = &wcachesw;
-do_cache:
- if (!(cp = *argp++) || *cp == '-')
- die("missing argument to %s", argp[-2]);
- switch (*icachesw = smatch (cp, cache_policy)) {
- case AMBIGSW:
- ambigsw (cp, cache_policy);
- done (1);
- case UNKWNSW:
- die("%s unknown", cp);
- default:
- break;
- }
+ autosw = false;
continue;
case CHECKSW:
- checksw++;
- continue;
case NCHECKSW:
- checksw = 0;
+ /* Currently a NOP */
continue;
case HEADSW:
- headsw = 1;
+ headsw = true;
continue;
case NHEADSW:
- headsw = 0;
+ headsw = false;
continue;
case LISTSW:
- listsw = 1;
+ listsw = true;
continue;
case NLISTSW:
- listsw = 0;
+ listsw = false;
continue;
case SHOWSW:
- showsw = 1;
+ showsw = true;
continue;
case NSHOWSW:
- showsw = 0;
+ showsw = false;
continue;
case SIZESW:
- sizesw = 1;
+ sizesw = true;
continue;
case NSIZESW:
- sizesw = 0;
+ sizesw = false;
continue;
case STORESW:
- storesw = 1;
+ storesw = true;
continue;
case NSTORESW:
- storesw = 0;
+ storesw = false;
continue;
case PARTSW:
* Switches for mhbuild
*/
case BUILDSW:
- buildsw = 1;
+ buildsw = true;
continue;
case NBUILDSW:
- buildsw = 0;
+ buildsw = false;
continue;
case RFC934SW:
rfc934sw = 1;
fclose (fp);
}
- /* Check for public cache location */
- if ((cache_public = context_find (nmhcache)) && *cache_public != '/')
- cache_public = NULL;
-
- /* Check for private cache location */
- if (!(cache_private = context_find (nmhprivcache)))
- cache_private = ".cache";
- cache_private = mh_xstrdup(m_maildir(cache_private));
-
/*
* Cache the current directory before we do any chdirs()'s.
*/
char *vec[MAXARGS];
int vecp;
- if (showsw || storesw || cachesw)
- die("cannot use -build with -show, -store, -cache");
+ if (showsw || storesw)
+ die("cannot use -build with -show, -store");
if (msgs.size < 1)
die("need to specify a %s composition file", invo_name);
if (msgs.size > 1)
/*
* Process a mhn composition file (old MH style)
*/
- if (msgs.size == 1 && !folder && !npart && !cachesw
+ if (msgs.size == 1 && !folder && !npart
&& !showsw && !storesw && !ntype && !file
&& (cp = getenv ("mhdraft"))
&& strcmp (cp, msgs.msgs[0]) == 0) {
* You can't give more than one of these flags
* at a time.
*/
- if (showsw + listsw + storesw + cachesw > 1)
- die("can only use one of -show, -list, -store, -cache at same time");
+ if (showsw + listsw + storesw > 1)
+ die("can only use one of -show, -list, -store at same time");
/* If no action is specified, assume -show */
- if (!listsw && !showsw && !storesw && !cachesw)
- showsw = 1;
+ if (!listsw && !showsw && !storesw)
+ showsw = true;
- userrs = 1;
+ userrs = true;
SIGNAL (SIGQUIT, quitser);
SIGNAL (SIGPIPE, pipeser);
* Store the message content
*/
if (storesw) {
- info = mhstoreinfo_create (cts, cwd, "always", autosw, verbosw);;
+ info = mhstoreinfo_create (cts, cwd, "always", autosw, verbosw);
store_all_messages (info);
mhstoreinfo_free (info);
}
context_save (); /* save the context file */
}
- /*
- * Cache the message content
- */
- if (cachesw)
- cache_all_messages (cts);
-
/*
* Show the message content
*/