/*
* repl.c -- reply to a message
*
- * $Id$
- *
* 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/utils.h>
static struct swit switches[] = {
{ "help", 0 },
#define FILESW 27
{ "file file", 4 }, /* interface from msh */
-
-#ifdef MHE
#define BILDSW 28
{ "build", 5 }, /* interface from mhe */
-#endif
+#define ATFILESW 29
+ { "atfile", 0 },
+#define NOATFILESW 30
+ { "noatfile", 0 },
+#define FMTPROCSW 31
+ { "fmtproc program", 0 },
+#define NFMTPROCSW 32
+ { "nofmtproc", 0 },
{ NULL, 0 }
};
int i, isdf = 0;
int anot = 0, inplace = 1;
int nedit = 0, nwhat = 0;
+ int atfile = 1;
+ int fmtproc = -1;
char *cp, *cwd, *dp, *maildir, *file = NULL;
char *folder = NULL, *msg = NULL, *dfolder = NULL;
char *dmsg = NULL, *ed = NULL, drft[BUFSIZ], buf[BUFSIZ];
struct stat st;
FILE *in;
-#ifdef MHE
int buildsw = 0;
-#endif /* MHE */
#ifdef LOCALE
setlocale(LC_ALL, "");
adios (NULL, "missing argument to %s", argp[-2]);
nwhat = 0;
continue;
-#ifdef MHE
case BILDSW:
buildsw++; /* fall... */
-#endif /* MHE */
case NWHATSW:
nwhat++;
continue;
dfolder = NULL;
isdf = NOTOK;
continue;
+
+ case ATFILESW:
+ atfile++;
+ continue;
+ case NOATFILESW:
+ atfile = 0;
+ continue;
+
+ case FMTPROCSW:
+ if (!(formatproc = *argp++) || *formatproc == '-')
+ adios (NULL, "missing argument to %s", argp[-2]);
+ fmtproc = 1;
+ continue;
+ case NFMTPROCSW:
+ fmtproc = 0;
+ continue;
}
}
if (*cp == '+' || *cp == '@') {
if (folder)
adios (NULL, "only one folder at a time!");
else
- folder = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
+ folder = pluspath (cp);
} else {
if (msg)
adios (NULL, "only one message at a time!");
try_it_again:
-#ifdef MHE
strncpy (drft, buildsw ? m_maildir ("reply")
: m_draft (dfolder, NULL, NOUSE, &isdf), sizeof(drft));
/* Check if a draft exists */
if (!buildsw && stat (drft, &st) != NOTOK) {
-#else
- strncpy (drft, m_draft (dfolder, dmsg, NOUSE, &isdf), sizeof(drft));
-
- /* Check if a draft exists */
- if (stat (drft, &st) != NOTOK) {
-#endif /* MHE */
printf ("Draft \"%s\" exists (%ld bytes).", drft, (long) st.st_size);
for (i = LISTDSW; i != YESW;) {
if (!(argp = getans ("\nDisposition? ", isdf ? aqrnl : aqrl)))
form = etcpath (replcomps);
}
- replout (in, msg, drft, mp, outputlinelen, mime, form, filter, fcc);
+ replout (in, msg, drft, mp, outputlinelen, mime, form, filter,
+ fcc, fmtproc);
fclose (in);
if (nwhat)
done (0);
- what_now (ed, nedit, NOUSE, drft, msg, 0, mp,
- anot ? "Replied" : NULL, inplace, cwd);
- return done (1);
+ what_now (ed, nedit, NOUSE, drft, msg, 0, mp, anot ? "Replied" : NULL,
+ inplace, cwd, atfile);
+ done (1);
+ return 1;
}
void