** working directory to relative path names.
** Add the attachment annotation to the draft.
*/
- if ((f = popen_in_dir(cwd, buf, "r"))) {
- while (fgets(shell, sizeof(shell), f)) {
- *(strchr(shell, '\n')) = '\0';
-
- if (*shell == '/')
- sprintf(file, "%s", shell);
- else {
- sprintf(file, "%s/%s", cwd,
- shell);
- }
- if (execprogl("anno", "anno",
- "-nodate",
- "-append", "-comp",
- attach_hdr, "-text",
- file, drft,
- (char *)NULL)
- != 0) {
- advise(NULL, "Could not add attachment header.");
- }
- }
-
- pclose(f);
- } else {
+ if (!(f = popen_in_dir(cwd, buf, "r"))) {
advise("popen", "could not get file from shell");
+ break;
}
+ while (fgets(shell, sizeof(shell), f)) {
+ *(strchr(shell, '\n')) = '\0';
+
+ if (*shell == '/')
+ sprintf(file, "%s", shell);
+ else {
+ sprintf(file, "%s/%s", cwd, shell);
+ }
+ if (execprogl("anno", "anno",
+ "-nodate", "-append",
+ "-comp", attach_hdr,
+ "-text", file,
+ drft, (char *)NULL) != 0) {
+ advise(NULL, "Could not add attachment header.");
+ }
+ }
+ pclose(f);
break;
case DETACHCMDSW:
case OK:
vecp = 0;
vec[vecp++] = mhbasename(*ed);
- if (arg)
- while (*arg)
- vec[vecp++] = *arg++;
+ while (arg && *arg) {
+ vec[vecp++] = *arg++;
+ }
vec[vecp++] = file;
vec[vecp] = NULL;
static int
sendfile(char **arg, char *file)
{
- pid_t child_id;
- int vecp;
+ int vecp = 0;
char *vec[MAXARGS];
- context_save(); /* save the context file */
+ context_save();
fflush(stdout);
- switch (child_id = fork()) {
- case NOTOK:
- advise(NULL, "unable to fork, so sending directly...");
- /* fall */
- case OK:
- vecp = 0;
- vec[vecp++] = "send";
- if (arg)
- while (*arg)
- vec[vecp++] = *arg++;
- vec[vecp++] = file;
- vec[vecp] = NULL;
-
- execvp("send", vec);
- fprintf(stderr, "%s: unable to exec ", invo_name);
- perror("send");
- _exit(-1);
-
- default:
- if (pidwait(child_id, OK) == 0)
- done(0);
- return 1;
+ vec[vecp++] = "send";
+ while (arg && *arg) {
+ vec[vecp++] = *arg++;
}
+ vec[vecp++] = file;
+ vec[vecp] = NULL;
+ execvp(*vec, vec);
+ fprintf(stderr, "%s: unable to exec ", invo_name);
+ perror("send");
+ _exit(-1);
}
static int
refile(char **arg, char *file)
{
- pid_t pid;
- register int vecp;
+ int vecp = 0;
char *vec[MAXARGS];
- vecp = 0;
vec[vecp++] = "refile";
vec[vecp++] = "-nolink"; /* override bad .mh_profile defaults */
vec[vecp++] = "-file";
}
vec[vecp] = NULL;
- context_save(); /* save the context file */
+ context_save();
fflush(stdout);
- switch (pid = fork()) {
- case -1:
- advise("fork", "unable to");
- return -1;
-
- case 0:
- execvp(*vec, vec);
- fprintf(stderr, "%s: unable to exec ", invo_name);
- perror(*vec);
- _exit(-1);
-
- default:
- return (pidwait(pid, -1));
- }
+ return execprog(*vec, vec);
}