Renamed all standard sequences (e.g. cur->c) and made them globally changeable
[mmh] / uip / folder.c
index ac931ce..224bb03 100644 (file)
@@ -122,7 +122,7 @@ main(int argc, char **argv)
 #ifdef LOCALE
        setlocale(LC_ALL, "");
 #endif
-       invo_name = r1bindex(argv[0], '/');
+       invo_name = mhbasename(argv[0]);
 
        /* read user profile/context */
        context_read();
@@ -140,108 +140,108 @@ main(int argc, char **argv)
        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!");
@@ -250,9 +250,7 @@ main(int argc, char **argv)
                }
        }
 
-       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
@@ -273,15 +271,15 @@ main(int argc, char **argv)
                        } else {
                                adios(NULL, "no other folder");
                        }
-                       for (cp = getcpy(getfolder(1)); *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(1), " ", cp, NULL) :
-                                       getcpy(getfolder(1)));
+                                       concat(getcurfol(), " ", cp, NULL) :
+                                       getcpy(getcurfol()));
                }
        }
 
@@ -309,18 +307,18 @@ main(int argc, char **argv)
                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(1));
+               printf("%s", argfolder ? argfolder : getcurfol());
                if ((cp = context_find(stack))) {
                        dp = getcpy(cp);
                        for (ap = brkstring(dp, " ", "\n"); *ap; ap++)
@@ -354,14 +352,14 @@ main(int argc, char **argv)
                        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();
                        }
                        /*
@@ -373,18 +371,18 @@ main(int argc, char **argv)
                                                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);
                        }
        }
 
@@ -654,7 +652,7 @@ readonly_folders(void)
        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)