/*
- * repl.c -- reply to a message
- *
- * 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.
- */
+** repl.c -- reply to a message
+**
+** 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>
{ "cc all|to|cc|me", 0 },
#define NCCSW 5
{ "nocc type", 0 },
-#define DFOLDSW 6
- { "draftfolder +folder", 0 },
-#define DMSGSW 7
- { "draftmessage msg", 0 },
-#define NDFLDSW 8
- { "nodraftfolder", 0 },
-#define EDITRSW 9
+#define EDITRSW 6
{ "editor editor", 0 },
-#define NEDITSW 10
+#define NEDITSW 7
{ "noedit", 0 },
-#define FCCSW 11
+#define FCCSW 8
{ "fcc folder", 0 },
-#define FILTSW 12
+#define FILTSW 9
{ "filter filterfile", 0 },
-#define FORMSW 13
+#define FORMSW 10
{ "form formfile", 0 },
-#define FRMTSW 14
+#define FRMTSW 11
{ "format", 5 },
-#define NFRMTSW 15
+#define NFRMTSW 12
{ "noformat", 7 },
-#define INPLSW 16
+#define INPLSW 13
{ "inplace", 0 },
-#define NINPLSW 17
+#define NINPLSW 14
{ "noinplace", 0 },
-#define MIMESW 18
+#define MIMESW 15
{ "mime", 0 },
-#define NMIMESW 19
+#define NMIMESW 16
{ "nomime", 0 },
-#define QURYSW 20
+#define QURYSW 17
{ "query", 0 },
-#define NQURYSW 21
+#define NQURYSW 18
{ "noquery", 0 },
-#define WHATSW 22
+#define WHATSW 19
{ "whatnowproc program", 0 },
-#define NWHATSW 23
+#define NWHATSW 20
{ "nowhatnowproc", 0 },
-#define WIDTHSW 24
+#define WIDTHSW 21
{ "width columns", 0 },
-#define VERSIONSW 25
+#define VERSIONSW 22
{ "version", 0 },
-#define HELPSW 26
+#define HELPSW 23
{ "help", 0 },
-#define FILESW 27
+#define FILESW 24
{ "file file", 4 }, /* interface from msh */
#ifdef MHE
-#define BILDSW 28
+#define BILDSW 25
{ "build", 5 }, /* interface from mhe */
#endif
{ NULL, 0 }
};
-static struct swit aqrnl[] = {
-#define NOSW 0
- { "quit", 0 },
-#define YESW 1
- { "replace", 0 },
-#define LISTDSW 2
- { "list", 0 },
-#define REFILSW 3
- { "refile +folder", 0 },
-#define NEWSW 4
- { "new", 0 },
- { NULL, 0 }
-};
-
-static struct swit aqrl[] = {
- { "quit", 0 },
- { "replace", 0 },
- { "list", 0 },
- { "refile +folder", 0 },
- { NULL, 0 }
-};
-
short ccto = -1; /* global for replsbr */
short cccc = -1;
short ccme = -1;
/*
- * prototypes
- */
+** prototypes
+*/
void docc (char *, int);
int
main (int argc, char **argv)
{
- int i, isdf = 0;
int anot = 0, inplace = 1;
int nedit = 0, nwhat = 0;
char *cp, *cwd, *dp, *maildir, *file = NULL;
- char *folder = NULL, *msg = NULL, *dfolder = NULL;
- char *dmsg = NULL, *ed = NULL, drft[BUFSIZ], buf[BUFSIZ];
+ char *folder = NULL, *msg = NULL;
+ char *ed = NULL, drft[BUFSIZ], buf[BUFSIZ];
char **argp, **arguments;
struct msgs *mp = NULL;
- struct stat st;
FILE *in;
#ifdef MHE
adios (NULL, "-%s unknown", cp);
case HELPSW:
- snprintf (buf, sizeof(buf), "%s: [+folder] [msg] [switches]",
- invo_name);
+ snprintf (buf, sizeof(buf), "%s: [+folder] [msg] [switches]", invo_name);
print_help (buf, switches, 1);
done (0);
case VERSIONSW:
continue;
case WHATSW:
- if (!(whatnowproc = *argp++) || *whatnowproc == '-')
+ if (!(whatnowproc = *argp++) ||
+ *whatnowproc == '-')
adios (NULL, "missing argument to %s", argp[-2]);
nwhat = 0;
continue;
adios (NULL, "missing argument to %s", argp[-2]);
dp = NULL;
if (*cp == '@')
- cp = dp = path (cp + 1, TSUBCWF);
+ cp = dp = path (cp + 1,
+ TSUBCWF);
if (fcc)
fcc = add (", ", fcc);
fcc = add (cp, fcc);
if ((outputlinelen = atoi (cp)) < 10)
adios (NULL, "impossible width %d", outputlinelen);
continue;
-
- case DFOLDSW:
- if (dfolder)
- adios (NULL, "only one draft folder at a time!");
- if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
- dfolder = path (*cp == '+' || *cp == '@' ? cp + 1 : cp,
- *cp != '@' ? TFOLDER : TSUBCWF);
- continue;
- case DMSGSW:
- if (dmsg)
- adios (NULL, "only one draft message at a time!");
- if (!(dmsg = *argp++) || *dmsg == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
- continue;
- case NDFLDSW:
- dfolder = NULL;
- isdf = NOTOK;
- continue;
}
}
if (*cp == '+' || *cp == '@') {
if (file && (msg || folder))
adios (NULL, "can't mix files and folders/msgs");
-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) {
+ : m_draft("new"), sizeof(drft));
#else
- strncpy (drft, m_draft (dfolder, dmsg, NOUSE, &isdf), sizeof(drft));
-
- /* Check if a draft exists */
- if (stat (drft, &st) != NOTOK) {
+ strncpy (drft, m_draft("new"), sizeof(drft));
#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)))
- done (1);
- switch (i = smatch (*argp, isdf ? aqrnl : aqrl)) {
- case NOSW:
- done (0);
- case NEWSW:
- dmsg = NULL;
- goto try_it_again;
- case YESW:
- break;
- case LISTDSW:
- showfile (++argp, drft);
- break;
- case REFILSW:
- if (refile (++argp, drft) == 0)
- i = YESW;
- break;
- default:
- advise (NULL, "say what?");
- break;
- }
- }
- }
if (file) {
/*
- * We are replying to a file.
- */
+ ** We are replying to a file.
+ */
anot = 0; /* we don't want to annotate a file */
} else {
/*
- * We are replying to a message.
- */
+ ** We are replying to a message.
+ */
if (!msg)
msg = "cur";
if (!folder)
if (mp->numsel > 1)
adios (NULL, "only one message at a time!");
- context_replace (pfolder, folder); /* update current folder */
+ context_replace (pfolder, folder); /* update current folder */
seq_setcur (mp, mp->lowsel); /* update current message */
seq_save (mp); /* synchronize sequences */
context_save (); /* save the context file */
ambigsw (cp, ccswitches);
done (1);
case UNKWNSW:
- adios (NULL, "-%scc %s unknown", ccflag ? "" : "no", cp);
+ adios (NULL, "-%scc %s unknown",
+ ccflag ? "" : "no", cp);
case CTOSW:
ccto = ccflag;