X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0509728c8a506f287fa3483d8e8ffaf8fb66d41d..64a40afc7d83e7b1280905fce7bdfd3a2ec7f01a:/uip/whatnowsbr.c?ds=sidebyside diff --git a/uip/whatnowsbr.c b/uip/whatnowsbr.c index cd7011c0..51836508 100644 --- a/uip/whatnowsbr.c +++ b/uip/whatnowsbr.c @@ -44,8 +44,9 @@ #ifdef OAUTH_SUPPORT # include #endif -#include "../sbr/m_maildir.h" -#include "../sbr/m_mktemp.h" +#include "sbr/m_maildir.h" +#include "sbr/m_mktemp.h" +#include "sbr/mime_type.h" #define WHATNOW_SWITCHES \ X("draftfolder +folder", 0, DFOLDSW) \ @@ -198,8 +199,7 @@ WhatNow (int argc, char **argv) } if (drft) adios (NULL, "only one draft at a time!"); - else - drft = cp; + drft = cp; } if ((drft == NULL && (drft = getenv ("mhdraft")) == NULL) || *drft == 0) @@ -722,7 +722,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, execvp (prog, vec); fprintf (stderr, "unable to exec "); perror (*ed); - _exit (-1); + _exit(1); default: if ((status = pidwait (pid, NOTOK))) { @@ -801,7 +801,7 @@ static int sendfile (char **arg, char *file, int pushsw) { pid_t child_id; - int i, vecp; + int vecp; char *cp, *sp, **vec, *program; /* @@ -818,12 +818,11 @@ sendfile (char **arg, char *file, int pushsw) 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..."); - /* FALLTHRU */ + adios("fork", "failed:"); + case OK: vec = argsplit(sendproc, &program, &vecp); if (pushsw) @@ -837,7 +836,7 @@ sendfile (char **arg, char *file, int pushsw) execvp (program, vec); fprintf (stderr, "unable to exec "); perror (sendproc); - _exit (-1); + _exit(1); default: if (pidwait(child_id, OK) == 0) @@ -883,7 +882,7 @@ buildfile (char **argp, char *file) i = editfile (&ed, args, file, NOUSE, NULL, NULL, NULL, 0, 0); free (args); - return (i ? NOTOK : OK); + return i ? NOTOK : OK; } @@ -980,10 +979,6 @@ sendit (char *sp, char **arg, char *file, int pushed) int snoop = 0; struct stat st; -#ifndef lint - int distsw = 0; -#endif - /* * Make sure these are defined. In particular, we need * savearg[1] to be NULL, in case "arg" is NULL below. It @@ -1173,7 +1168,7 @@ sendit (char *sp, char **arg, char *file, int pushed) inform("missing argument to %s", argp[-2]); return; } - /* FALLTHRU */ + continue; case SNDRFSW: continue; } @@ -1206,9 +1201,7 @@ sendit (char *sp, char **arg, char *file, int pushed) if ((cp = getenv ("mhdist")) && *cp -#ifndef lint - && (distsw = atoi (cp)) -#endif /* not lint */ + && atoi(cp) && altmsg) { vec[vecp++] = "-dist"; if ((cp = m_mktemp2(altmsg, invo_name, NULL, NULL)) == NULL) { @@ -1281,10 +1274,10 @@ whomfile (char **arg, char *file) execvp (program, vec); fprintf (stderr, "unable to exec "); perror (whomproc); - _exit (-1); /* NOTREACHED */ + _exit(1); /* NOTREACHED */ default: - return (pidwait (pid, NOTOK) & 0377 ? 1 : 0); + return pidwait(pid, NOTOK) & 0377 ? 1 : 0; } } @@ -1311,18 +1304,19 @@ static int checkmimeheader (char *drft) { FILE *f; - m_getfld_state_t gstate = 0; + m_getfld_state_t gstate; char buf[NMH_BUFSIZ], name[NAMESZ]; int state, retval = 0; if ((f = fopen(drft, "r")) == NULL) { admonish(drft, "unable to read draft"); - return (0); + 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) {