{ "noedit", 0 },
#define FILTSW 8
{ "filter filterfile", 0 },
-#define FORMSW 9
+#define NFILTSW 9
+ { "nofilter", 0 },
+#define FORMSW 10
{ "form formfile", 0 },
-#define FRMTSW 10
- { "format", 5 },
-#define NFRMTSW 11
- { "noformat", 7 },
-#define MIMESW 12
+#define MIMESW 11
{ "mime", 0 },
-#define NMIMESW 13
+#define NMIMESW 12
{ "nomime", 0 },
-#define QURYSW 14
+#define QURYSW 13
{ "query", 0 },
-#define NQURYSW 15
+#define NQURYSW 14
{ "noquery", 0 },
-#define WHATSW 16
+#define WHATSW 15
{ "whatnowproc program", 0 },
-#define NWHATSW 17
+#define NWHATSW 16
{ "nowhatnowproc", 0 },
-#define VERSIONSW 18
+#define VERSIONSW 17
{ "version", 0 },
-#define HELPSW 19
+#define HELPSW 18
{ "help", 0 },
-#define FILESW 20
+#define FILESW 19
{ "file file", 4 }, /* interface from msh */
#ifdef MHE
-#define BILDSW 21
+#define BILDSW 20
{ "build", 5 }, /* interface from mhe */
#endif
int buildsw = 0;
#endif /* MHE */
+ filter = getcpy(etcpath(mhlreply));
+
#ifdef LOCALE
setlocale(LC_ALL, "");
#endif
argp[-2]);
file = getcpy(expanddir(cp));
continue;
- case FILTSW:
- if (!(cp = *argp++) || *cp == '-')
- adios(NULL, "missing argument to %s",
- argp[-2]);
- filter = getcpy(etcpath(cp));
- continue;
case FORMSW:
if (!(form = *argp++) || *form == '-')
adios(NULL, "missing argument to %s",
argp[-2]);
continue;
- case FRMTSW:
- filter = getcpy(etcpath(mhlreply));
+ case FILTSW:
+ if (!(cp = *argp++) || *cp == '-')
+ adios(NULL, "missing argument to %s",
+ argp[-2]);
+ filter = getcpy(etcpath(cp));
continue;
- case NFRMTSW:
+ case NFILTSW:
filter = NULL;
continue;
umask(mask);
/* get new format string */
- cp = new_fs(form, NULL, NULL);
+ cp = new_fs(form, NULL);
format_len = strlen(cp);
/* compile format string */
/* add an attachment header */
char buffer[BUFSIZ];
- snprintf(buffer, sizeof buffer, "+%s %s",
- mp->foldpath, m_name(mp->lowsel));
- annotate(drft, attach_hdr, buffer, 0, -2, 1);
+ snprintf(buffer, sizeof buffer, "anno -append -nodate '%s' "
+ "-comp '%s' -text '+%s %s'",
+ drft,
+ attach_hdr, mp->foldpath, m_name(mp->lowsel));
+ if (system(buffer) != 0) {
+ advise(NULL, "unable to add attachment header");
+ }
}
/* return dynamically allocated buffers */
/*
-** Call the mhlproc
+** Call mhl
**
** This function expects that argument out has been fflushed by the caller.
*/
-
static void
replfilter(FILE *in, FILE *out, char *filter)
{
- int pid;
- char *mhl;
+ int pid, n;
char *errstr;
if (filter == NULL)
if (access(filter, R_OK) == NOTOK)
adios(filter, "unable to read");
- mhl = mhbasename(mhlproc);
-
rewind(in);
lseek(fileno(in), (off_t) 0, SEEK_SET);
case OK:
dup2(fileno(in), fileno(stdin));
dup2(fileno(out), fileno(stdout));
- closefds(3);
+ for (n=3; n<OPEN_MAX; n++) {
+ close(n);
+ }
- execlp(mhlproc, mhl, "-form", filter, "-noclear", NULL);
+ execlp("mhl", "mhl", "-form", filter, NULL);
errstr = strerror(errno);
- write(2, "unable to exec ", 15);
- write(2, mhlproc, strlen(mhlproc));
- write(2, ": ", 2);
+ write(2, "unable to exec mhl: ", 20);
write(2, errstr, strlen(errstr));
write(2, "\n", 1);
_exit(-1);
default:
- if (pidXwait(pid, mhl))
+ if (pidXwait(pid, "mhl"))
done(1);
fseek(out, 0L, SEEK_END);
break;