-
-/*
- * whatnowsbr.c -- the WhatNow shell
+/* whatnowsbr.c -- the WhatNow shell
*
* 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 <fcntl.h>
#include <h/mime.h>
#include <h/utils.h>
-
#ifdef OAUTH_SUPPORT
# include <h/oauth.h>
#endif
+#include "sbr/m_maildir.h"
+#include "sbr/m_mktemp.h"
+#include "sbr/mime_type.h"
#define WHATNOW_SWITCHES \
X("draftfolder +folder", 0, DFOLDSW) \
X("prompt string", 4, PRMPTSW) \
X("version", 0, VERSIONSW) \
X("help", 0, HELPSW) \
- X("attach header-field-name", -6, ATTACHSW) \
- X("noattach", -8, NOATTACHSW) \
#define X(sw, minchars, id) id,
if (!(myprompt = *argp++) || *myprompt == '-')
adios (NULL, "missing argument to %s", argp[-2]);
continue;
-
- case ATTACHSW:
- inform("The -attach switch is deprecated");
- continue;
-
- case NOATTACHSW:
- inform("The -noattach switch is deprecated");
- continue;
}
}
if (drft)
adios (NULL, "only one draft at a time!");
- else
- drft = cp;
+ drft = cp;
}
if ((drft == NULL && (drft = getenv ("mhdraft")) == NULL) || *drft == 0)
}
if (altmsg) {
if (mp)
- m_putenv ("mhfolder", mp->foldpath);
- m_putenv ("editalt", altpath);
+ setenv("mhfolder", mp->foldpath, 1);
+ setenv("editalt", altpath, 1);
}
vec = argsplit(*ed, &prog, &vecp);
sendfile (char **arg, char *file, int pushsw)
{
pid_t child_id;
- int i, vecp;
+ int vecp;
char *cp, *sp, **vec, *program;
/*
context_save (); /* save the context file */
fflush (stdout);
- for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
- sleep (5);
+ child_id = fork();
switch (child_id) {
case NOTOK:
inform("unable to fork, so sending directly...");
X("saslmech", SASLminc(5), SASLMECHSW) \
X("authservice", SASLminc(0), AUTHSERVICESW) \
X("user username", SASLminc(4), USERSW) \
- X("attach fieldname", 6, SNDATTACHSW) \
- X("noattach", 0, SNDNOATTACHSW) \
- X("attachformat", 7, SNDATTACHFORMAT) \
X("port server-port-name/number", 4, PORTSW) \
X("tls", TLSminc(-3), TLSSW) \
X("initialtls", TLSminc(-10), INITTLSSW) \
inform("missing argument to %s", argp[-2]);
return;
}
- /* FALLTHRU */
- case SNDRFSW:
- continue;
-
- case SNDATTACHSW:
- inform("The -attach switch is deprecated");
- continue;
- case SNDNOATTACHSW:
- inform("The -noattach switch is deprecated");
continue;
-
- case SNDATTACHFORMAT:
- inform("The -attachformat switch is deprecated");
+ case SNDRFSW:
continue;
}
}
if ((cp = getenv ("SIGNATURE")) == NULL || *cp == 0)
if ((cp = context_find ("signature")) && *cp)
- m_putenv ("SIGNATURE", cp);
+ setenv("SIGNATURE", cp, 1);
if ((annotext = getenv ("mhannotate")) == NULL || *annotext == 0)
annotext = NULL;
checkmimeheader (char *drft)
{
FILE *f;
- m_getfld_state_t gstate = 0;
- char buf[BUFSIZ], name[NAMESZ];
+ m_getfld_state_t gstate;
+ char buf[NMH_BUFSIZ], name[NAMESZ];
int state, retval = 0;
if ((f = fopen(drft, "r")) == NULL) {
return (0);
}
+ gstate = m_getfld_state_init(f);
for (;;) {
int bufsz = sizeof(buf);
- switch (state = m_getfld(&gstate, name, buf, &bufsz, f)) {
+ switch (state = m_getfld2(&gstate, name, buf, &bufsz)) {
case FLD:
case FLDPLUS:
if (strcasecmp(name, VRSN_FIELD) == 0) {