X("verbose", 0, VERBSW) \
X("noverbose", 0, NVERBSW) \
X("file file", 0, FILESW) /* interface from show */ \
+ X("outfile outfile", 0, OUTFILESW) \
X("part number", 0, PARTSW) \
X("type content", 0, TYPESW) \
X("rcache policy", 0, RCACHESW) \
int save_clobber_policy (const char *);
extern int files_not_clobbered;
-/* mhparse.c */
-extern char *tmp; /* directory to place temp files */
-
/* mhcachesbr.c */
extern int rcachesw;
extern int wcachesw;
main (int argc, char **argv)
{
int msgnum, *icachesw;
- char *cp, *file = NULL, *folder = NULL;
+ char *cp, *file = NULL, *outfile = NULL, *folder = NULL;
char *maildir, buf[100], **argp;
char **arguments;
struct msgs_array msgs = { 0, 0, NULL };
CT ct, *ctp;
FILE *fp;
- done=freects_done;
-
-#ifdef LOCALE
- setlocale(LC_ALL, "");
-#endif
- invo_name = r1bindex (argv[0], '/');
+ if (nmh_init(argv[0], 1)) { return 1; }
- /* read user profile/context */
- context_read();
+ done=freects_done;
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
file = *cp == '-' ? cp : path (cp, TFILE);
continue;
+ case OUTFILESW:
+ if (!(cp = *argp++) || (*cp == '-' && cp[1]))
+ adios (NULL, "missing argument to %s", argp[-2]);
+ outfile = *cp == '-' ? cp : path (cp, TFILE);
+ continue;
+
case VERBSW:
verbosw = 1;
continue;
*/
cwd = getcpy (pwd());
- /*
- * Check for storage directory. If specified,
- * then store temporary files there. Else we
- * store them in standard nmh directory.
- */
- if ((cp = context_find (nmhstorage)) && *cp)
- tmp = concat (cp, "/", invo_name, NULL);
- else
- tmp = add (m_maildir (invo_name), NULL);
-
if (!context_find ("path"))
free (path ("./", TFOLDER));
adios (NULL, "out of memory");
ctp = cts;
- if ((ct = parse_mime (file)))
+ if ((ct = parse_mime (file))) {
*ctp++ = ct;
+ if (outfile) {
+ ct->c_storage = outfile;
+ }
+ }
} else {
/*
* message(s) are coming from a folder
char *msgnam;
msgnam = m_name (msgnum);
- if ((ct = parse_mime (msgnam)))
+ if ((ct = parse_mime (msgnam))) {
*ctp++ = ct;
+ if (outfile) {
+ ct->c_storage = add (outfile, NULL);
+ }
+ }
}
}
}