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;
adios (maildir, "unable to change directory to");
/* read folder and create message structure */
- if (!(mp = folder_read (folder)))
+ if (!(mp = folder_read (folder, 1)))
adios (NULL, "unable to read folder %s", folder);
/* check for empty folder */
int i, msgnum, pd[2];
char buf1[BUFSIZ];
char buf2[BUFSIZ];
+ char *program;
struct msgs_array vec = { 0, 0, NULL };
if (pipe (pd) == NOTOK)
adios ("pipe", "unable to create");
- app_msgarg(&vec, r1bindex (mhlproc, '/'));
+ argsplit_msgarg(&vec, mhlproc, &program);
for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
sleep (5);
dup2 (pd[1], 1);
close (pd[1]);
- i = 1;
app_msgarg(&vec, "-forwall");
app_msgarg(&vec, "-form");
app_msgarg(&vec, filter);
app_msgarg(&vec, NULL);
- execvp (mhlproc, vec.msgs);
+ execvp (program, vec.msgs);
fprintf (stderr, "unable to exec ");
perror (mhlproc);
_exit (-1);
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");
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",
*bp++ = '*';
*bp++ = '\n';
*bp = 0;
- write (out, buffer, strlen (buffer));
+ if (write (out, buffer, strlen (buffer)) < 0) {
+ advise (drft, "write");
+ }
}
}
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");
+ }
}