X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6b4bc4a25eaac2eddd1bef51e3f00c21f98ed32d..e6d87a04919616cf2a6ea6cbda81d5fbc31cc8a2:/uip/forw.c diff --git a/uip/forw.c b/uip/forw.c index 45fb740f..c4e1dde5 100644 --- a/uip/forw.c +++ b/uip/forw.c @@ -116,16 +116,9 @@ main (int argc, char **argv) char **argp, **arguments; struct stat st; struct msgs_array msgs = { 0, 0, NULL }; - int buildsw = 0; -#ifdef LOCALE - setlocale(LC_ALL, ""); -#endif - invo_name = r1bindex (argv[0], '/'); - - /* read user profile/context */ - context_read(); + if (nmh_init(argv[0], 1)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -320,7 +313,8 @@ try_it_again: if (!buildsw && stat (drft, &st) != NOTOK) { printf ("Draft \"%s\" exists (%ld bytes).", drft, (long) st.st_size); for (i = LISTDSW; i != YESW;) { - if (!(argp = getans ("\nDisposition? ", isdf ? aqrnl : aqrl))) + if (!(argp = read_switch_multiword ("\nDisposition? ", + isdf ? aqrnl : aqrl))) done (1); switch (i = smatch (*argp, isdf ? aqrnl : aqrl)) { case NOSW: @@ -516,7 +510,6 @@ mhl_draft (int out, char *digest, int volume, int issue, dup2 (pd[1], 1); close (pd[1]); - i = 1; app_msgarg(&vec, "-forwall"); app_msgarg(&vec, "-form"); app_msgarg(&vec, filter); @@ -606,7 +599,9 @@ copy_draft (int out, char *digest, char *file, int volume, int issue, int dashst strncpy (bp, "\n\n", buflen); } - write (out, buffer, strlen (buffer)); + if (write (out, buffer, strlen (buffer)) < 0) { + advise (drft, "write"); + } if ((fd = open (msgnam = m_name (msgnum), O_RDONLY)) == NOTOK) { admonish (msgnam, "unable to read message"); @@ -633,7 +628,9 @@ copy_draft (int out, char *digest, char *file, int volume, int issue, int dashst snprintf (buffer, sizeof(buffer), "\n------- End of Forwarded Message%s\n", mp->numsel > 1 ? "s" : ""); } - write (out, buffer, strlen (buffer)); + if (write (out, buffer, strlen (buffer)) < 0) { + advise (drft, "write"); + } if (digest) { snprintf (buffer, sizeof(buffer), "End of %s Digest [Volume %d Issue %d]\n", @@ -643,7 +640,9 @@ copy_draft (int out, char *digest, char *file, int volume, int issue, int dashst *bp++ = '*'; *bp++ = '\n'; *bp = 0; - write (out, buffer, strlen (buffer)); + if (write (out, buffer, strlen (buffer)) < 0) { + advise (drft, "write"); + } } } @@ -660,11 +659,17 @@ copy_mime_draft (int out) snprintf (buffer, sizeof(buffer), "#forw [forwarded message%s] +%s", mp->numsel == 1 ? "" : "s", mp->foldpath); - write (out, buffer, strlen (buffer)); + if (write (out, buffer, strlen (buffer)) < 0) { + advise (drft, "write"); + } for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) if (is_selected (mp, msgnum)) { snprintf (buffer, sizeof(buffer), " %s", m_name (msgnum)); - write (out, buffer, strlen (buffer)); + if (write (out, buffer, strlen (buffer)) < 0) { + advise (drft, "write"); + } } - write (out, "\n", 1); + if (write (out, "\n", 1) < 0) { + advise (drft, "write newline"); + } }