#define REFILEOPT 1
{ "refile [<switches>] +folder", 0 },
#define DISPSW 2
- { "display [<switches>]", 0 },
+ { "display", 0 },
#define LISTSW 3
- { "list [<switches>]", 0 },
+ { "list", 0 },
#define SENDSW 4
{ "send [<switches>]", 0 },
#define PUSHSW 5
{ "push [<switches>]", 0 },
#define QUITSW 6
- { "quit [-delete]", 0 },
+ { "quit", 0 },
#define DELETESW 7
{ "delete", 0 },
#define CDCMDSW 8
}
switch (smatch(*argp, aleqs)) {
case DISPSW:
- /*
- ** display the message being replied to,
- ** or distributed
- */
- if (msgnam)
- showfile(++argp, msgnam);
- else
+ /* display the msg being replied to or distributed */
+ if (msgnam) {
+ snprintf(buf, sizeof buf, "%s '%s'",
+ listproc, msgnam);
+ system(buf);
+ } else {
advise(NULL, "no alternate message to display");
+ }
break;
case EDITSW:
case LISTSW:
/* display the draft file */
- showfile(++argp, drft);
+ snprintf(buf, sizeof buf, "%s '%s'", listproc, drft);
+ system(buf);
break;
case QUITSW:
- /* Quit, and possibly delete the draft */
- if (*++argp && (*argp[0] == 'd' ||
- ((*argp)[0] == '-' && (*argp)[1] == 'd'))) {
- removefile(drft);
- } else {
- if (stat(drft, &st) != NOTOK)
- advise(NULL, "draft left on %s", drft);
+ /* quit */
+ if (stat(drft, &st) != NOTOK) {
+ advise(NULL, "draft left on %s", drft);
}
done(1);
if (*shell == '/')
annotate(drft, attach_hdr,
- shell, 1, 0,
- -2, 1);
+ shell, 0,
+ -2, 1, 0);
else {
sprintf(file, "%s/%s", cwd,
shell);
annotate(drft, attach_hdr,
- file, 1, 0,
- -2, 1);
+ file, 0,
+ -2, 1, 0);
}
}
if (**arguments != '\0') {
n = atoi(*arguments);
annotate(drft, attach_hdr,
- NULL, 1, 0,
- n, 1);
+ NULL, 0,
+ n, 1, 0);
for (argp = arguments + 1; *argp != NULL; argp++) {
if (atoi(*argp) > n) {
!= NULL) {
*(strchr(shell, '\n')) = '\0';
annotate(drft, attach_hdr, shell,
- 1, 0, 0, 1);
+ 0, 0, 1, 0);
}
pclose(f);
} else {
if ((cp = context_find(cp)) != NULL)
*ed = cp;
}
- } else {
+ } else if (!*ed) {
/* set initial editor */
- if (*ed == NULL && (*ed = context_find("editor")) == NULL)
- *ed = defaulteditor;
+ *ed = defaulteditor;
}
if (altmsg) {
sendfile(char **arg, char *file, int pushsw)
{
pid_t child_id;
- int i, vecp;
+ int vecp;
char *vec[MAXARGS];
context_save(); /* save the context file */
fflush(stdout);
- for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
- sleep(5);
- switch (child_id) {
+ switch (child_id = fork()) {
case NOTOK:
advise(NULL, "unable to fork, so sending directly...");
/* fall */
vec[vecp++] = file;
vec[vecp] = NULL;
- execvp(sendproc, vec);
+ execvp("send", vec);
fprintf(stderr, "unable to exec ");
- perror(sendproc);
+ perror("send");
_exit(-1);
default: