while ((cp = *argp++)) {
if (*cp == '-') {
switch (smatch(++cp, switches)) {
- case AMBIGSW:
- ambigsw(cp, switches);
- done(1);
- case UNKWNSW:
- adios(NULL, "-%s unknown", cp);
-
- case HELPSW:
- snprintf(buf, sizeof(buf), "%s [+folder] [msg] [switches]", invo_name);
- print_help(buf, switches, 1);
- done(1);
- case VERSIONSW:
- print_version(invo_name);
- done(1);
-
- case ALLSW:
- all = 1;
- continue;
-
- case NALLSW:
- all = 0;
- continue;
-
- case CREATSW:
- fcreat = 1;
- continue;
- case NCREATSW:
- fcreat = -1;
- continue;
-
- case FASTSW:
- fshort++;
- continue;
- case NFASTSW:
- fshort = 0;
- continue;
-
- case HDRSW:
- fheader = 1;
- continue;
- case NHDRSW:
- fheader = -1;
- continue;
-
- case PACKSW:
- fpack++;
- continue;
- case NPACKSW:
- fpack = 0;
- continue;
-
- case VERBSW:
- fverb++;
- continue;
- case NVERBSW:
- fverb = 0;
- continue;
-
- case RECURSW:
- frecurse++;
- continue;
- case NRECRSW:
- frecurse = 0;
- continue;
-
- case TOTALSW:
- ftotal = 1;
- continue;
- case NTOTLSW:
- ftotal = -1;
- continue;
-
- case PRNTSW:
- printsw = 1;
- continue;
- case NPRNTSW:
- printsw = 0;
- continue;
-
- case LISTSW:
- listsw = 1;
- continue;
- case NLISTSW:
- listsw = 0;
- continue;
-
- case PUSHSW:
- pushsw = 1;
- listsw = 1;
- popsw = 0;
- continue;
- case POPSW:
- popsw = 1;
- listsw = 1;
- pushsw = 0;
- continue;
+ case AMBIGSW:
+ ambigsw(cp, switches);
+ done(1);
+ case UNKWNSW:
+ adios(NULL, "-%s unknown", cp);
+
+ case HELPSW:
+ snprintf(buf, sizeof(buf), "%s [+folder] [msg] [switches]", invo_name);
+ print_help(buf, switches, 1);
+ done(1);
+ case VERSIONSW:
+ print_version(invo_name);
+ done(1);
+
+ case ALLSW:
+ all = 1;
+ continue;
+
+ case NALLSW:
+ all = 0;
+ continue;
+
+ case CREATSW:
+ fcreat = 1;
+ continue;
+ case NCREATSW:
+ fcreat = -1;
+ continue;
+
+ case FASTSW:
+ fshort++;
+ continue;
+ case NFASTSW:
+ fshort = 0;
+ continue;
+
+ case HDRSW:
+ fheader = 1;
+ continue;
+ case NHDRSW:
+ fheader = -1;
+ continue;
+
+ case PACKSW:
+ fpack++;
+ continue;
+ case NPACKSW:
+ fpack = 0;
+ continue;
+
+ case VERBSW:
+ fverb++;
+ continue;
+ case NVERBSW:
+ fverb = 0;
+ continue;
+
+ case RECURSW:
+ frecurse++;
+ continue;
+ case NRECRSW:
+ frecurse = 0;
+ continue;
+
+ case TOTALSW:
+ ftotal = 1;
+ continue;
+ case NTOTLSW:
+ ftotal = -1;
+ continue;
+
+ case PRNTSW:
+ printsw = 1;
+ continue;
+ case NPRNTSW:
+ printsw = 0;
+ continue;
+
+ case LISTSW:
+ listsw = 1;
+ continue;
+ case NLISTSW:
+ listsw = 0;
+ continue;
+
+ case PUSHSW:
+ pushsw = 1;
+ listsw = 1;
+ popsw = 0;
+ continue;
+ case POPSW:
+ popsw = 1;
+ listsw = 1;
+ pushsw = 0;
+ continue;
}
}
if (*cp == '+' || *cp == '@') {
if (argfolder)
adios(NULL, "only one folder at a time!");
else
- argfolder = pluspath(cp);
+ argfolder = getcpy(expandfol(cp));
} else {
if (msg)
adios(NULL, "only one (current) message at a time!");
}
}
- if (!context_find("path"))
- free(path("./", TFOLDER));
- nmhdir = concat(m_maildir(""), "/", NULL);
+ nmhdir = concat(toabsdir("+"), "/", NULL);
/*
** If we aren't working with the folder stack
} else {
adios(NULL, "no other folder");
}
- for (cp = getcpy(getfolder(FCUR)); *ap; ap++)
+ for (cp = getcpy(getcurfol()); *ap; ap++)
cp = add(*ap, add(" ", cp));
free(dp);
context_replace(stack, cp); /* update folder stack */
} else {
/* update folder stack */
context_replace(stack, (cp = context_find (stack)) ?
- concat(getfolder(FCUR), " ", cp, NULL) :
- getcpy(getfolder(FCUR)));
+ concat(getcurfol(), " ", cp, NULL) :
+ getcpy(getcurfol()));
}
}
free(dp);
}
if (pushsw || popsw) {
- cp = m_maildir(argfolder);
+ cp = toabsdir(argfolder);
if (access(cp, F_OK) == NOTOK)
adios(cp, "unable to find folder");
/* update current folder */
- context_replace(pfolder, argfolder);
+ context_replace(curfolder, argfolder);
context_save(); /* save the context file */
argfolder = NULL;
}
/* Listing the folder stack */
if (listsw) {
- printf("%s", argfolder ? argfolder : getfolder(FCUR));
+ printf("%s", argfolder ? argfolder : getcurfol());
if ((cp = context_find(stack))) {
dp = getcpy(cp);
for (ap = brkstring(dp, " ", "\n"); *ap; ap++)
if (msg)
admonish(NULL, "no folder given for message %s", msg);
readonly_folders(); /* do any readonly folders */
- strncpy(folder, (cp = context_find(pfolder)) ?
+ strncpy(folder, (cp = context_find(curfolder)) ?
cp : "", sizeof(folder));
crawl_folders(".", get_folder_info_callback, NULL);
} else {
strncpy(folder, argfolder, sizeof(folder));
if (get_folder_info(argfolder, msg)) {
/* update current folder */
- context_replace(pfolder, argfolder);
+ context_replace(curfolder, argfolder);
context_save();
}
/*
NULL);
}
} else {
- strncpy(folder, argfolder ? argfolder : getfolder (1),
+ strncpy(folder, argfolder ? argfolder : getcurfol(),
sizeof(folder));
/*
** Check if folder exists. If not, then see if
** we should create it, or just exit.
*/
- create_folder(m_maildir(folder), fcreat, done);
+ create_folder(toabsdir(folder), fcreat, done);
if (get_folder_info(folder, msg) && argfolder) {
/* update current folder */
- context_replace(pfolder, argfolder);
+ context_replace(curfolder, argfolder);
}
}
char atrcur[BUFSIZ];
register struct node *np;
- snprintf(atrcur, sizeof(atrcur), "atr-%s-", current);
+ snprintf(atrcur, sizeof(atrcur), "atr-%s-", seq_cur);
atrlen = strlen(atrcur);
for (np = m_defs; np; np = np->n_next)