-
-/*
- * repl.c -- reply to a message
+/* 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
#include <h/mh.h>
#include <h/mime.h>
#include <h/utils.h>
+#include "sbr/m_maildir.h"
#define REPL_SWITCHES \
X("group", 0, GROUPSW) \
X("width columns", 0, WIDTHSW) \
X("version", 0, VERSIONSW) \
X("help", 0, HELPSW) \
- X("file file", 4, FILESW) /* interface from msh */ \
+ X("file file", 4, FILESW) \
X("build", 5, BILDSW) /* interface from mhe */ \
X("atfile", 0, ATFILESW) \
X("noatfile", 0, NOATFILESW) \
nwhat = 0;
continue;
case BILDSW:
- buildsw++; /* fall... */
+ buildsw++;
+ /* FALLTHRU */
case NWHATSW:
nwhat++;
continue;
if (fcc)
fcc = add (", ", fcc);
fcc = add (cp, fcc);
- if (dp)
- free (dp);
+ free(dp);
continue;
case FILESW:
if (*cp == '+' || *cp == '@') {
if (folder)
adios (NULL, "only one folder at a time!");
- else
- folder = pluspath (cp);
+ folder = pluspath (cp);
} else {
if (msg)
adios (NULL, "only one message at a time!");
- else
- msg = cp;
+ msg = cp;
}
}
if (ccme == -1)
ccme = groupreply;
- cwd = getcpy (pwd ());
+ cwd = mh_xstrdup(pwd ());
if (!context_find ("path"))
free (path ("./", TFOLDER));
if (!buildsw && stat (drft, &st) != NOTOK) {
printf ("Draft \"%s\" exists (%ld bytes).", drft, (long) st.st_size);
for (i = LISTDSW; i != YESW;) {
- if (!(argp = getans ("\nDisposition? ", isdf ? aqrnl : aqrl)))
+ if (!(argp = read_switch_multiword ("\nDisposition? ",
+ isdf ? aqrnl : aqrl)))
done (1);
switch (i = smatch (*argp, isdf ? aqrnl : aqrl)) {
case NOSW:
i = YESW;
break;
default:
- advise (NULL, "say what?");
+ inform("say what?");
break;
}
}
context_save (); /* save the context file */
}
- msg = file ? file : getcpy (m_name (mp->lowsel));
+ msg = file ? file : mh_xstrdup(m_name (mp->lowsel));
if ((in = fopen (msg, "r")) == NULL)
adios (msg, "unable to open");
fclose (in);
{
- char *filename = concat (mp->foldpath, "/", msg, NULL);
+ char *filename = file ? file : concat (mp->foldpath, "/", msg, NULL);
for (n = 0; n < svector_size (convert_types); ++n) {
add_convert_header (svector_at (convert_types, n),
svector_at (convert_args, n),
filename, drft);
}
- free (filename);
+ if (! file) {
+ free (filename);
+ }
}
if (nwhat)