- }
-
- /* null terminate the list of acceptable parts/types */
- parts[npart] = NULL;
- types[ntype] = NULL;
-
- set_endian ();
-
- if (outfile == NULL)
- adios (NULL, "must specify output file");
-
- /* 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 = getcpy (m_maildir (cache_private));
-
- /*
- * 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));
-
- if (file && nummsgs)
- adios (NULL, "cannot specify msg and file at same time!");
-
- /*
- * check if message is coming from file
- */
- if (file) {
- if (!(cts = (CT *) calloc ((size_t) 2, sizeof(*cts))))
- adios (NULL, "out of memory");
- ctp = cts;
-
- if ((ct = parse_mime (file)));
- *ctp++ = ct;
- } else {
- /*
- * message(s) are coming from a folder
- */
- if (!nummsgs)
- msgs[nummsgs++] = "cur";
- if (!folder)
- folder = getfolder (1);
- maildir = m_maildir (folder);
-
- if (chdir (maildir) == NOTOK)
- adios (maildir, "unable to change directory to");
-
- /* read folder and create message structure */
- if (!(mp = folder_read (folder)))
- adios (NULL, "unable to read folder %s", folder);
-
- /* check for empty folder */
- if (mp->nummsg == 0)
- adios (NULL, "no messages in %s", folder);
-
- /* parse all the message ranges/sequences and set SELECTED */
- for (msgnum = 0; msgnum < nummsgs; msgnum++)
- if (!m_convert (mp, msgs[msgnum]))
- done (1);
- seq_setprev (mp); /* set the previous-sequence */