{ "fcc mailbox", 0 },
#define WIDTHSW 17
{ "width colums", 0 },
+#define SUBJECTSW 18
+ { "subject text", 0 },
{ NULL, 0 }
};
{ NULL, 0 }
};
-/*
- * Add an item to a comma seperated list
- */
-
-static char *addlist(char *, char *);
-
int
main (int argc, char **argv)
{
int use = NOUSE, nedit = 0, nwhat = 0;
- int i, in = NOTOK, isdf = 0, out, dat[5], ncomps, format_len;
+ int i, in = NOTOK, isdf = 0, out, dat[5], format_len = 0;
int outputlinelen = OUTPUTLINELEN;
char *cp, *cwd, *maildir, *dfolder = NULL;
char *ed = NULL, *file = NULL, *form = NULL;
char *folder = NULL, *msg = NULL, buf[BUFSIZ];
char *to = NULL, *from = NULL, *cc = NULL, *fcc = NULL, *dp;
+ char *subject = NULL;
char drft[BUFSIZ], **argp, **arguments;
struct msgs *mp = NULL;
struct format *fmt;
snprintf (buf, sizeof(buf), "%s [+folder] [msg] [switches]",
invo_name);
print_help (buf, switches, 1);
- done (1);
+ done (0);
case VERSIONSW:
print_version(invo_name);
- done (1);
+ done (0);
case EDITRSW:
if (!(ed = *argp++) || *ed == '-')
if ((outputlinelen = atoi(cp)) < 10)
adios (NULL, "impossible width %d", outputlinelen);
continue;
+
+ case SUBJECTSW:
+ if (!(cp = *argp++) || *cp == '-')
+ adios (NULL, "missing argument to %s", argp[-2]);
+ subject = cp;
+ continue;
}
}
if (*cp == '+' || *cp == '@') {
cp = new_fs(form, NULL, NULL);
format_len = strlen(cp);
- ncomps = fmt_compile(cp, &fmt);
+ fmt_compile(cp, &fmt, 1);
/*
* Set up any components that were fed to us on the command line
*/
if (from) {
- FINDCOMP(cptr, "from");
+ cptr = fmt_findcomp("from");
if (cptr)
cptr->c_text = from;
}
if (to) {
- FINDCOMP(cptr, "to");
+ cptr = fmt_findcomp("to");
if (cptr)
cptr->c_text = to;
}
if (cc) {
- FINDCOMP(cptr, "cc");
+ cptr = fmt_findcomp("cc");
if (cptr)
cptr->c_text = cc;
}
if (fcc) {
- FINDCOMP(cptr, "fcc");
+ cptr = fmt_findcomp("fcc");
if (cptr)
cptr->c_text = fcc;
}
+ if (subject) {
+ cptr = fmt_findcomp("subject");
+ if (cptr)
+ cptr->c_text = subject;
+ }
}
try_it_again:
dat[2] = 0;
dat[3] = outputlinelen;
dat[4] = 0;
- fmt_scan(fmt, scanl, i, dat);
+ fmt_scan(fmt, scanl, i + 1, i, dat);
write(out, scanl, strlen(scanl));
free(scanl);
} else {
if (nwhat)
done (0);
- what_now (ed, nedit, use, drft, NULL, 0, NULLMP, NULL, 0, cwd);
+ what_now (ed, nedit, use, drft, NULL, 0, NULLMP, NULL, 0, cwd, 0);
done (1);
return 1;
}
-
-/*
- * Append an item to a comma separated list
- */
-
-static char *
-addlist (char *list, char *item)
-{
- if (list)
- list = add (", ", list);
-
- return add (item, list);
-}