X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/ac153baba6893597d9bfc0e22469736fbc5e6821..42db3a2c36e26e0106b1e480407e32d3c8c09bef:/uip/whatnowsbr.c diff --git a/uip/whatnowsbr.c b/uip/whatnowsbr.c index 9092f0e4..e1729df7 100644 --- a/uip/whatnowsbr.c +++ b/uip/whatnowsbr.c @@ -37,12 +37,39 @@ * by attachment number. */ -#include +#include "h/mh.h" +#include "whatnowsbr.h" +#include "sendsbr.h" +#include "annosbr.h" +#include "sbr/m_getfld.h" +#include "sbr/getarguments.h" +#include "sbr/read_switch_multiword_via_readline.h" +#include "sbr/concat.h" +#include "sbr/showfile.h" +#include "sbr/smatch.h" +#include "sbr/r1bindex.h" +#include "sbr/refile.h" +#include "sbr/closefds.h" +#include "sbr/copyip.h" +#include "sbr/getcpy.h" +#include "sbr/m_draft.h" +#include "sbr/m_backup.h" +#include "sbr/geteditor.h" +#include "sbr/context_save.h" +#include "sbr/context_find.h" +#include "sbr/brkstring.h" +#include "sbr/ambigsw.h" +#include "sbr/push.h" +#include "sbr/path.h" +#include "sbr/print_version.h" +#include "sbr/print_help.h" +#include "sbr/arglist.h" +#include "sbr/error.h" #include -#include -#include +#include "h/mime.h" +#include "h/utils.h" #ifdef OAUTH_SUPPORT -# include +#include "h/oauth.h" #endif #include "h/done.h" #include "sbr/m_maildir.h" @@ -120,7 +147,9 @@ static int copyf (char *, char *); int WhatNow (int argc, char **argv) { - int isdf = 0, nedit = 0, use = 0, atfile = 1; + int isdf = 0; + bool nedit = false; + int use = 0, atfile = 1; char *cp, *dfolder = NULL, *dmsg = NULL; char *ed = NULL, *drft = NULL, *msgnam = NULL; char buf[BUFSIZ]; @@ -154,7 +183,7 @@ WhatNow (int argc, char **argv) ambigsw (cp, whatnowswitches); done (1); case UNKWNSW: - adios (NULL, "-%s unknown", cp); + die("-%s unknown", cp); case HELPSW: snprintf (buf, sizeof(buf), "%s [switches] [file]", invo_name); @@ -166,17 +195,17 @@ WhatNow (int argc, char **argv) case DFOLDSW: if (dfolder) - adios (NULL, "only one draft folder at a time!"); + die("only one draft folder at a time!"); if (!(cp = *argp++) || *cp == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("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!"); + die("only one draft message at a time!"); if (!(dmsg = *argp++) || *dmsg == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); continue; case NDFLDSW: dfolder = NULL; @@ -185,21 +214,21 @@ WhatNow (int argc, char **argv) case EDITRSW: if (!(ed = *argp++) || *ed == '-') - adios (NULL, "missing argument to %s", argp[-2]); - nedit = 0; + die("missing argument to %s", argp[-2]); + nedit = false; continue; case NEDITSW: - nedit++; + nedit = true; continue; case PRMPTSW: if (!(myprompt = *argp++) || *myprompt == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); continue; } } if (drft) - adios (NULL, "only one draft at a time!"); + die("only one draft at a time!"); drft = cp; } @@ -216,7 +245,7 @@ WhatNow (int argc, char **argv) if (ed == NULL && ((ed = getenv ("mheditor")) == NULL || *ed == 0)) { ed = NULL; - nedit++; + nedit = true; } /* start editing the draft, unless -noedit was given */ @@ -386,7 +415,7 @@ WhatNow (int argc, char **argv) * Attach files to current draft. */ - int verbose = 0; + bool verbose = false; char **ap; if (checkmimeheader(drft)) @@ -395,7 +424,7 @@ WhatNow (int argc, char **argv) for (ap = argp+1; *ap; ++ap) { if (strcmp(*ap, "-v") == 0) { ++argp; - verbose = 1; + verbose = true; } else if (*ap[0] != '-') { break; } @@ -551,7 +580,7 @@ writesomecmd(char *buf, int bufsz, char *cmd, char *trailcmd, char **argp) */ int trailln = strlen(trailcmd) + 4; if (ln < 0 || ln + trailln > bufsz) - adios(NULL, "arguments too long"); + die("arguments too long"); cp = buf + ln; @@ -559,7 +588,7 @@ writesomecmd(char *buf, int bufsz, char *cmd, char *trailcmd, char **argp) ln = strlen(*argp); /* +1 for leading space */ if (ln + trailln + 1 > bufsz - (cp-buf)) - adios(NULL, "arguments too long"); + die("arguments too long"); *cp++ = ' '; memcpy(cp, *argp, ln+1); cp += ln; @@ -634,7 +663,7 @@ popen_in_dir(const char *dir, const char *cmd, const char *type) * EDIT */ -static int reedit = 0; /* have we been here before? */ +static bool reedit; /* have we been here before? */ static char *edsave = NULL; /* the editor we used previously */ @@ -647,7 +676,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, char *cp, *prog, **vec; struct stat st; - int slinked = 0; + bool slinked = false; /* Was there a previous edit session? */ if (reedit && (*ed || edsave)) { @@ -683,9 +712,9 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, if (symlink (altpath, linkpath) < 0) { adios (linkpath, "symlink"); } - slinked = 1; + slinked = true; } else { - slinked = 0; + slinked = false; } } } @@ -739,7 +768,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, break; } - reedit++; + reedit = true; if (altmsg && mp && !is_readonly(mp) @@ -956,12 +985,12 @@ DEFINE_SWITCH_ARRAY(SEND, sendswitches); extern int debugsw; /* from sendsbr.c */ -extern int forwsw; +extern bool forwsw; extern int inplace; -extern int pushsw; +extern bool pushsw; extern int splitsw; -extern int unique; -extern int verbsw; +extern bool unique; +extern bool verbsw; extern char *altmsg; /* .. */ extern char *annotext; @@ -976,7 +1005,6 @@ sendit (char *sp, char **arg, char *file, int pushed) char **arguments, *savearg[MAXARGS], **vec; const char *user = NULL, *saslmech = NULL; char *auth_svc = NULL; - int snoop = 0; struct stat st; /* @@ -1013,9 +1041,9 @@ sendit (char *sp, char **arg, char *file, int pushed) argp = arguments; debugsw = 0; - forwsw = 1; + forwsw = true; inplace = 1; - unique = 0; + unique = false; altmsg = NULL; annotext = NULL; @@ -1079,24 +1107,24 @@ sendit (char *sp, char **arg, char *file, int pushed) continue; case UNIQSW: - unique++; + unique = true; continue; case NUNIQSW: - unique = 0; + unique = false; continue; case FORWSW: - forwsw++; + forwsw = true; continue; case NFORWSW: - forwsw = 0; + forwsw = false; continue; case VERBSW: - verbsw++; + verbsw = true; vec[vecp++] = --cp; continue; case NVERBSW: - verbsw = 0; + verbsw = false; vec[vecp++] = --cp; continue; @@ -1125,18 +1153,17 @@ sendit (char *sp, char **arg, char *file, int pushed) continue; case SNOOPSW: - snoop++; vec[vecp++] = --cp; continue; case AUTHSERVICESW: #ifdef OAUTH_SUPPORT if (!(auth_svc = *argp++) || *auth_svc == '-') - adios (NULL, "missing argument to %s", argp[-2]); + die("missing argument to %s", argp[-2]); #else NMH_UNUSED (user); NMH_UNUSED (auth_svc); - adios (NULL, "not built with OAuth support"); + die("not built with OAuth support"); #endif continue; @@ -1205,7 +1232,7 @@ sendit (char *sp, char **arg, char *file, int pushed) && altmsg) { vec[vecp++] = "-dist"; if ((cp = m_mktemp2(altmsg, invo_name, NULL, NULL)) == NULL) { - adios(NULL, "unable to create temporary file"); + die("unable to create temporary file"); } distfile = mh_xstrdup(cp); (void) m_unlink(distfile); @@ -1218,11 +1245,11 @@ sendit (char *sp, char **arg, char *file, int pushed) #ifdef OAUTH_SUPPORT if (auth_svc == NULL) { if (saslmech && ! strcasecmp(saslmech, "xoauth2")) { - adios (NULL, "must specify -authservice with -saslmech xoauth2"); + die("must specify -authservice with -saslmech xoauth2"); } } else { if (user == NULL) { - adios (NULL, "must specify -user with -saslmech xoauth2"); + die("must specify -user with -saslmech xoauth2"); } } #else @@ -1305,7 +1332,8 @@ checkmimeheader (char *drft) FILE *f; m_getfld_state_t gstate; char buf[NMH_BUFSIZ], name[NAMESZ]; - int state, retval = 0; + int state; + bool retval = false; if ((f = fopen(drft, "r")) == NULL) { admonish(drft, "unable to read draft"); @@ -1321,7 +1349,7 @@ checkmimeheader (char *drft) if (strcasecmp(name, VRSN_FIELD) == 0) { inform("Cannot use attach commands with already-" "formatted MIME message \"%s\"", drft); - retval = 1; + retval = true; break; } continue;