char *cp, *maildir;
unsigned char *comp = NULL;
char *text = NULL, *folder = NULL, buf[BUFSIZ];
+ char *file = NULL;
char **argp, **arguments;
struct msgs_array msgs = { 0, 0, NULL };
struct msgs *mp;
int delete = -2; /* delete header element if set */
int list = 0; /* list header elements if set */
int number = 0; /* delete specific number of like elements if set */
+ int havemsgs = 0;
#ifdef LOCALE
setlocale(LC_ALL, "");
adios(NULL, "only one folder at a time!");
else
folder = getcpy(expandfol(cp));
- } else
+ } else if (*cp == '/' || *cp == '.') {
+ if (file)
+ adios(NULL, "only one file at a time!");
+ file = cp;
+ } else {
app_msgarg(&msgs, cp);
+ havemsgs = 1;
+ }
+ }
+
+ if (file && (folder || havemsgs)) {
+ adios(NULL, "Don't intermix files and messages.");
+ }
+
+ make_comp(&comp);
+
+ if (file) {
+ if (list)
+ annolist(file, comp, text, number);
+ else
+ annotate(file, comp, text,
+ datesw, delete, append, preserve);
+ done(0);
}
if (!msgs.size)
if (!m_convert(mp, msgs.msgs[msgnum]))
done(1);
- make_comp(&comp);
-
/* annotate all the SELECTED messages */
for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) {
if (is_selected(mp, msgnum)) {