X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Frepl.c;h=cc8a86b9bda2e7e1ba9d27e413c12e47102bab2c;hb=706236baa4c4670b5a074092dec5dec63ff50663;hp=d3a8d078ad60d566fc5ddb8a126f1eb8ec81335e;hpb=264318e5898da32e9a0e3ec2b4c69185db89bb8a;p=mmh diff --git a/uip/repl.c b/uip/repl.c index d3a8d07..cc8a86b 100644 --- a/uip/repl.c +++ b/uip/repl.c @@ -2,10 +2,13 @@ /* * 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 +#include static struct swit switches[] = { @@ -62,14 +65,19 @@ static struct swit switches[] = { #define VERSIONSW 25 { "version", 0 }, #define HELPSW 26 - { "help", 4 }, + { "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 } }; @@ -134,6 +142,8 @@ main (int argc, char **argv) int i, isdf = 0; int anot = 0, inplace = 1; int nedit = 0, nwhat = 0; + int atfile = 0; + 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]; @@ -142,9 +152,7 @@ main (int argc, char **argv) struct stat st; FILE *in; -#ifdef MHE int buildsw = 0; -#endif /* MHE */ #ifdef LOCALE setlocale(LC_ALL, ""); @@ -173,7 +181,7 @@ main (int argc, char **argv) done (0); case VERSIONSW: print_version(invo_name); - done (1); + done (0); case GROUPSW: groupreply++; @@ -214,10 +222,8 @@ main (int argc, char **argv) adios (NULL, "missing argument to %s", argp[-2]); nwhat = 0; continue; -#ifdef MHE case BILDSW: buildsw++; /* fall... */ -#endif /* MHE */ case NWHATSW: nwhat++; continue; @@ -308,13 +314,29 @@ main (int argc, char **argv) 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!"); @@ -339,18 +361,11 @@ main (int argc, char **argv) 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))) @@ -430,14 +445,16 @@ try_it_again: 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