X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/64e8827c5d5def0325ab7181fe939623c77e807c..be6c3984:/uip/whatnowsbr.c?ds=sidebyside diff --git a/uip/whatnowsbr.c b/uip/whatnowsbr.c index 6149c125..f0f9a2c5 100644 --- a/uip/whatnowsbr.c +++ b/uip/whatnowsbr.c @@ -104,7 +104,6 @@ static int editfile (char **, char **, char *, int, struct msgs *, static int sendfile (char **, char *, int); static void sendit (char *, char **, char *, int); static int buildfile (char **, char *); -static int check_draft (char *); static int whomfile (char **, char *); static int removefile (char *); static void writelscmd(char *, int, char *, char **); @@ -130,11 +129,9 @@ WhatNow (int argc, char **argv) char *l; /* set on -l to alist command */ int n; /* set on -n to alist command */ + /* Need this if called from what_now(). */ invo_name = r1bindex (argv[0], '/'); - /* read user profile/context */ - context_read(); - arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -239,7 +236,7 @@ WhatNow (int argc, char **argv) #else /* ! READLINE_SUPPORT */ if (!(argp = getans (prompt, aleqs))) { #endif /* READLINE_SUPPORT */ - unlink (LINK); + (void) m_unlink (LINK); done (1); } switch (smatch (*argp, aleqs)) { @@ -443,7 +440,7 @@ WhatNow (int argc, char **argv) } if (verbose) { - printf ("Attaching %s as a %s", file, ctype); + printf ("Attaching %s as a %s\n", file, ctype); free (ctype); } } @@ -682,7 +679,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, snprintf (linkpath, sizeof(linkpath), "%s/%s", cwd, LINK); if (atfile) { - unlink (linkpath); + (void) m_unlink (linkpath); if (link (altpath, linkpath) == NOTOK) { symlink (altpath, linkpath); slinked = 1; @@ -748,7 +745,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, && copyf (linkpath, altpath) == NOTOK : stat (linkpath, &st) != NOTOK && st.st_nlink == 1 - && (unlink (altpath) == NOTOK + && (m_unlink (altpath) == NOTOK || link (linkpath, altpath) == NOTOK))) advise (linkpath, "unable to update %s from", altmsg); } @@ -759,7 +756,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, *ed = NULL; if (altmsg && atfile) - unlink (linkpath); + (void) m_unlink (linkpath); return status; } @@ -885,66 +882,6 @@ buildfile (char **argp, char *file) } -/* - * Check if draft is a mhbuild composition file - */ - -static int -check_draft (char *msgnam) -{ - int state; - char buf[BUFSIZ], name[NAMESZ]; - FILE *fp; - m_getfld_state_t gstate = 0; - - if ((fp = fopen (msgnam, "r")) == NULL) - return 0; - for (;;) { - int bufsz = sizeof buf; - switch (state = m_getfld (&gstate, name, buf, &bufsz, fp)) { - case FLD: - case FLDPLUS: - /* - * If draft already contains any of the - * Content-XXX fields, then assume it already - * been converted. - */ - if (uprf (name, XXX_FIELD_PRF)) { - fclose (fp); - m_getfld_state_destroy (&gstate); - return 0; - } - while (state == FLDPLUS) { - bufsz = sizeof buf; - state = m_getfld (&gstate, name, buf, &bufsz, fp); - } - break; - - case BODY: - do { - char *bp; - - for (bp = buf; *bp; bp++) - if (*bp != ' ' && *bp != '\t' && *bp != '\n') { - fclose (fp); - m_getfld_state_destroy (&gstate); - return 1; - } - - bufsz = sizeof buf; - state = m_getfld (&gstate, name, buf, &bufsz, fp); - } while (state == BODY); - /* and fall... */ - - default: - fclose (fp); - m_getfld_state_destroy (&gstate); - return 0; - } - } -} - - #ifndef CYRUS_SASL # define SASLminc(a) (a) #else /* CYRUS_SASL */ @@ -1255,8 +1192,12 @@ sendit (char *sp, char **arg, char *file, int pushed) #endif /* not lint */ && altmsg) { vec[vecp++] = "-dist"; - distfile = getcpy (m_mktemp2(altmsg, invo_name, NULL, NULL)); - unlink(distfile); + if ((cp = m_mktemp2(altmsg, invo_name, NULL, NULL)) == NULL) { + adios(NULL, "unable to create temporary file in %s", + get_temp_dir()); + } + distfile = getcpy (cp); + (void) m_unlink(distfile); if (link (altmsg, distfile) == NOTOK) adios (distfile, "unable to link %s to", altmsg); } else { @@ -1322,7 +1263,7 @@ whomfile (char **arg, char *file) static int removefile (char *drft) { - if (unlink (drft) == NOTOK) + if (m_unlink (drft) == NOTOK) adios (drft, "unable to unlink"); return OK;