{ "push", 0 },
#define NPUSHSW 9
{ "nopush", 0 },
-#define UNIQSW 10
- { "unique", -6 },
-#define NUNIQSW 11
- { "nounique", -8 },
-#define VERBSW 12
+#define VERBSW 10
{ "verbose", 0 },
-#define NVERBSW 13
+#define NVERBSW 11
{ "noverbose", 0 },
-#define WATCSW 14
+#define WATCSW 12
{ "watch", 0 },
-#define NWATCSW 15
+#define NWATCSW 13
{ "nowatch", 0 },
-#define VERSIONSW 16
+#define VERSIONSW 14
{ "version", 0 },
-#define HELPSW 17
+#define HELPSW 15
{ "help", 0 },
{ NULL, 0 }
};
extern int forwsw;
extern int inplace;
extern int pushsw;
-extern int unique;
extern int verbsw;
extern char *altmsg; /* .. */
int
main(int argc, char **argv)
{
- int msgp = 0, distsw = 0, vecp = 1;
+ int msgp = 0, msgp2 = 0, distsw = 0, vecp = 1;
int msgnum, status;
char *cp, *maildir = NULL;
char buf[BUFSIZ], **ap, **argp, **arguments;
char *msgs[MAXARGS], *vec[MAXARGS];
+ char *msgs2[MAXARGS];
struct msgs *mp;
struct stat st;
pushsw = 0;
continue;
- case UNIQSW:
- unique++;
- continue;
- case NUNIQSW:
- unique = 0;
- continue;
-
case FORWSW:
forwsw++;
continue;
for (ap = brkstring(dp = getcpy(cp), " ", "\n"); ap && *ap;
ap++) {
vec[vecp++] = "-alias";
- vec[vecp++] = *ap;
+ vec[vecp++] = getcpy(etcpath(*ap));
}
}
adios(NULL, "no messages in draft folder %s", draftfolder);
/* parse all the message ranges/sequences and set SELECTED */
- for (msgnum = 0; msgnum < msgp; msgnum++)
- if (!m_convert(mp, msgs[msgnum]))
+ msgp2 = 0;
+ for (msgnum = 0; msgnum < msgp; msgnum++) {
+ if (*msgs[msgnum] == '/') {
+ /* absolute path */
+ msgs2[msgp2++] = msgs[msgnum];
+ continue;
+ }
+ if (!m_convert(mp, msgs[msgnum])) {
done(1);
+ }
+ }
seq_setprev(mp); /* set the previous-sequence */
for (msgp = 0, msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) {
if (is_selected(mp, msgnum)) {
- msgs[msgp++] = getcpy(m_name(msgnum));
+ msgs2[msgp2++] = getcpy(m_name(msgnum));
unset_exists(mp, msgnum);
}
}
if ((cp = context_find("signature")) && *cp)
m_putenv("SIGNATURE", cp);
- for (msgnum = 0; msgnum < msgp; msgnum++)
- if (stat(msgs[msgnum], &st) == NOTOK)
- adios(msgs[msgnum], "unable to stat draft file");
+ for (msgnum = 0; msgnum < msgp2; msgnum++)
+ if (stat(msgs2[msgnum], &st) == NOTOK)
+ adios(msgs2[msgnum], "unable to stat draft file");
if ((annotext = getenv("mhannotate")) == NULL || *annotext == 0)
annotext = NULL;
vec[vecp++] = "-dist";
distfile = getcpy(m_mktemp2(altmsg, invo_name, NULL, NULL));
if (link(altmsg, distfile) == NOTOK) {
- if (errno != EXDEV
-#ifdef EISREMOTE
- && errno != EISREMOTE
-#endif /* EISREMOTE */
- )
+ if (errno != EXDEV)
adios(distfile, "unable to link %s to",
altmsg);
free(distfile);
vec[0] = mhbasename(postproc);
closefds(3);
- for (msgnum = 0; msgnum < msgp; msgnum++) {
- switch (sendsbr(vec, vecp, msgs[msgnum], &st, 1)) {
+ for (msgnum = 0; msgnum < msgp2; msgnum++) {
+ switch (sendsbr(vec, vecp, msgs2[msgnum], &st, 1)) {
case DONE:
done(++status);
case NOTOK: