X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/bfff2c60b2c860c2bc466bdab94daf770d86aec5..843bc850b2b7732c8969b9ad25e922fb09eaf4b3:/uip/whatnowsbr.c diff --git a/uip/whatnowsbr.c b/uip/whatnowsbr.c index 787e0152..7f28f34a 100644 --- a/uip/whatnowsbr.c +++ b/uip/whatnowsbr.c @@ -37,13 +37,42 @@ * 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" +#ifdef READLINE_SUPPORT +#include "sbr/read_switch_multiword_via_readline.h" +#else /* ! READLINE_SUPPORT */ +#include "sbr/read_switch_multiword.h" +#endif /* READLINE_SUPPORT */ +#include "sbr/concat.h" +#include "sbr/showfile.h" +#include "sbr/smatch.h" +#include "sbr/r1bindex.h" +#include "sbr/refile.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" @@ -130,7 +159,6 @@ WhatNow (int argc, char **argv) char **argp, **arguments; struct stat st; char cwd[PATH_MAX + 1]; /* current working directory */ - char file[PATH_MAX + 1]; /* file name buffer */ char shell[PATH_MAX + 1]; /* shell response buffer */ FILE *f; /* read pointer for bgnd proc */ char *l; /* set on -l to alist command */ @@ -212,7 +240,7 @@ WhatNow (int argc, char **argv) msgnam = (cp = getenv ("mhaltmsg")) && *cp ? mh_xstrdup(cp) : NULL; if ((cp = getenv ("mhatfile")) && *cp) - atfile = atoi(cp); + atfile = atoi(cp); if ((cp = getenv ("mhuse")) && *cp) use = atoi (cp); @@ -224,7 +252,7 @@ WhatNow (int argc, char **argv) /* start editing the draft, unless -noedit was given */ if (!nedit && editfile (&ed, NULL, drft, use, NULL, msgnam, - NULL, 1, atfile) < 0) + NULL, 1, atfile) < 0) done (1); for (;;) { @@ -255,7 +283,7 @@ WhatNow (int argc, char **argv) if (*++argp) ed = *argp++; if (editfile (&ed, argp, drft, NOUSE, NULL, msgnam, - NULL, 1, atfile) == NOTOK) + NULL, 1, atfile) == NOTOK) done (1); break; @@ -424,13 +452,15 @@ WhatNow (int argc, char **argv) */ if ((f = popen_in_dir(cwd, buf, "r")) != NULL) { + char file[2 * PATH_MAX + 2]; /* file name buffer */ + while (fgets(shell, sizeof (shell), f) != NULL) { char *ctype; trim_suffix_c(shell, '\n'); if (*shell == '/') { - strncpy(file, shell, sizeof(file)); + strncpy(file, shell, sizeof(file)); file[sizeof(file) - 1] = '\0'; } else { snprintf(file, sizeof(file), "%s/%s", cwd, shell); @@ -637,7 +667,7 @@ popen_in_dir(const char *dir, const char *cmd, const char *type) * EDIT */ -static bool reedit; /* have we been here before? */ +static bool reedit; /* have we been here before? */ static char *edsave = NULL; /* the editor we used previously */ @@ -672,7 +702,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, if (altmsg) { if (mp == NULL || *altmsg == '/' || cwd == NULL) - strncpy (altpath, altmsg, sizeof(altpath)); + strncpy (altpath, altmsg, sizeof(altpath) - 1); else snprintf (altpath, sizeof(altpath), "%s/%s", mp->foldpath, altmsg); if (cwd == NULL) @@ -962,7 +992,6 @@ extern int debugsw; /* from sendsbr.c */ extern bool forwsw; extern int inplace; extern bool pushsw; -extern int splitsw; extern bool unique; extern bool verbsw; @@ -1073,13 +1102,6 @@ sendit (char *sp, char **arg, char *file, int pushed) pushed = 0; continue; - case SPLITSW: - if (!(cp = *argp++) || sscanf (cp, "%d", &splitsw) != 1) { - inform("missing argument to %s", argp[-2]); - return; - } - continue; - case UNIQSW: unique = true; continue; @@ -1238,8 +1260,6 @@ sendit (char *sp, char **arg, char *file, int pushed) if ((pushsw = pushed)) push (); - closefds (3); - if (sendsbr (vec, vecp, program, file, &st, 1, auth_svc) == OK) done (0); }