Renamed -version switch to -Version to remove the conflict with -verbose.
[mmh] / uip / mhpath.c
index bce976d..605d13c 100644 (file)
@@ -11,7 +11,7 @@
 
 static struct swit switches[] = {
 #define VERSIONSW 0
-       { "version", 0 },
+       { "Version", 0 },
 #define HELPSW  1
        { "help", 0 },
        { NULL, 0 }
@@ -44,36 +44,33 @@ 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] [msgs] [switches]", invo_name);
-                                       print_help(buf, switches, 1);
-                                       done(1);
-                               case VERSIONSW:
-                                       print_version(invo_name);
-                                       done(1);
+                       case AMBIGSW:
+                               ambigsw(cp, switches);
+                               done(1);
+                       case UNKWNSW:
+                               adios(NULL, "-%s unknown", cp);
+
+                       case HELPSW:
+                               snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name);
+                               print_help(buf, switches, 1);
+                               done(1);
+                       case VERSIONSW:
+                               print_version(invo_name);
+                               done(1);
                        }
                }
                if (*cp == '+' || *cp == '@') {
                        if (folder)
                                adios(NULL, "only one folder at a time!");
                        else
-                               folder = pluspath(cp);
+                               folder = getcpy(expandfol(cp));
                } else
                        app_msgarg(&msgs, cp);
        }
 
-       if (!context_find("path"))
-               free(path("./", TFOLDER));
-
        if (!folder)
-               folder = getfolder(1);
-       maildir = m_maildir(folder);
+               folder = getcurfol();
+       maildir = toabsdir(folder);
 
        /* If no messages are given, print folder pathname */
        if (!msgs.size) {
@@ -90,7 +87,7 @@ main(int argc, char **argv)
 
        /*
        ** We need to make sure there is message status space
-       ** for all the message numbers from 1 to "new" since
+       ** for all the message numbers from 1 to one beyond last since
        ** mhpath can select empty slots.  If we are adding
        ** space at the end, we go ahead and add 10 slots.
        */
@@ -101,8 +98,16 @@ main(int argc, char **argv)
                if (!(mp = folder_realloc(mp, 1, mp->hghoff)))
                        adios(NULL, "unable to allocate folder storage");
        }
+       /*
+       ** TODO: As folder_realloc() checks itself if the realloc
+       ** really is necesary, why don't we then:
+       **    if (!(mp = folder_realloc (mp, 1, mp->hghmsg+1)))
+       **        adios (NULL, "unable to allocate folder storage");
+       ** ? This at least appears most clear to me. -- meillo
+       */
+
 
-       mp->msgflags |= ALLOW_NEW;  /* allow the "new" sequence */
+       mp->msgflags |= ALLOW_BEYOND;  /* allow the beyond sequence */
 
        /* parse all the message ranges/sequences and set SELECTED */
        for (i = 0; i < msgs.size; i++)