Removed special `folder' and `dtimenow' format escapes from scan listings.
[mmh] / uip / inc.c
index d23bf32..2297a03 100644 (file)
--- a/uip/inc.c
+++ b/uip/inc.c
@@ -34,7 +34,6 @@
 #include <h/scansbr.h>
 #include <h/signals.h>
 #include <h/tws.h>
-#include <h/mts.h>
 #include <errno.h>
 #include <signal.h>
 
@@ -51,21 +50,19 @@ static struct swit switches[] = {
        { "file name", 0 },
 #define FORMSW  5
        { "form formatfile", 0 },
-#define FMTSW  6
-       { "format string", 5 },
-#define SILSW  7
+#define SILSW  6
        { "silent", 0 },
-#define NSILSW  8
+#define NSILSW  7
        { "nosilent", 0 },
-#define TRNCSW  9
+#define TRNCSW  8
        { "truncate", 0 },
-#define NTRNCSW  10
+#define NTRNCSW  9
        { "notruncate", 0 },
-#define WIDTHSW  11
+#define WIDTHSW  10
        { "width columns", 0 },
-#define VERSIONSW  12
+#define VERSIONSW  11
        { "version", 0 },
-#define HELPSW  13
+#define HELPSW  12
        { "help", 0 },
 };
 
@@ -121,8 +118,6 @@ static FILE *in;
 /*
 ** prototypes
 */
-char *map_name(char *);
-
 static void inc_done(int) NORETURN;
 
 
@@ -137,7 +132,7 @@ main(int argc, char **argv)
                        ** not truncate mailspool
                        */
        char *cp, *maildir = NULL, *folder = NULL;
-       char *format = NULL, *form = NULL;
+       char *form = NULL;
        char *audfile = NULL, *from = NULL;
        char buf[BUFSIZ], **argp, *nfs, **arguments;
        struct msgs *mp = NULL;
@@ -168,7 +163,6 @@ main(int argc, char **argv)
        /* read user profile/context */
        context_read();
 
-       mts_init(invo_name);
        arguments = getarguments(invo_name, argc, argv, 1);
        argp = arguments;
 
@@ -192,7 +186,7 @@ main(int argc, char **argv)
                        case AUDSW:
                                if (!(cp = *argp++) || *cp == '-')
                                        adios(NULL, "missing argument to %s", argp[-2]);
-                               audfile = getcpy(m_maildir(cp));
+                               audfile = getcpy(expanddir(cp));
                                continue;
                        case NAUDSW:
                                audfile = NULL;
@@ -223,7 +217,7 @@ main(int argc, char **argv)
                                if (!(cp = *argp++) || *cp == '-')
                                        adios(NULL, "missing argument to %s",
                                                        argp[-2]);
-                               from = path(cp, TFILE);
+                               from = getcpy(expanddir(cp));
 
                                /*
                                ** If the truncate file is in default state,
@@ -244,13 +238,6 @@ main(int argc, char **argv)
                                if (!(form = *argp++) || *form == '-')
                                        adios(NULL, "missing argument to %s",
                                                        argp[-2]);
-                               format = NULL;
-                               continue;
-                       case FMTSW:
-                               if (!(format = *argp++) || *format == '-')
-                                       adios(NULL, "missing argument to %s",
-                                                       argp[-2]);
-                               form = NULL;
                                continue;
 
                        case WIDTHSW:
@@ -265,7 +252,7 @@ main(int argc, char **argv)
                        if (folder)
                                adios(NULL, "only one folder at a time!");
                        else
-                               folder = pluspath(cp);
+                               folder = getcpy(expandfol(cp));
                } else {
                        adios(NULL, "usage: %s [+folder] [switches]",
                                        invo_name);
@@ -286,27 +273,25 @@ main(int argc, char **argv)
        if (from)
                newmail = from;
        else if ((newmail = getenv("MAILDROP")) && *newmail)
-               newmail = m_mailpath(newmail);
+               newmail = toabsdir(newmail);
        else if ((newmail = context_find("maildrop")) && *newmail)
-               newmail = m_mailpath(newmail);
+               newmail = toabsdir(newmail);
        else {
-               newmail = concat(MAILDIR, "/", MAILFIL, NULL);
+               newmail = concat(mailspool, "/", getusername(), NULL);
        }
        if (stat(newmail, &s1) == NOTOK || s1.st_size == 0)
                adios(NULL, "no mail to incorporate");
 
-       if ((cp = strdup(newmail)) == (char *)0)
+       if ((cp = strdup(newmail)) == NULL)
                adios(NULL, "error allocating memory to copy newmail");
 
        newmail = cp;
 
-       if (!context_find("path"))
-               free(path("./", TFOLDER));
        if (!folder)
-               folder = getfolder(FDEF);
-       maildir = m_maildir(folder);
+               folder = getdeffol();
+       maildir = toabsdir(folder);
 
-       if ((maildir_copy = strdup(maildir)) == (char *)0)
+       if ((maildir_copy = strdup(maildir)) == NULL)
                adios(maildir, "error allocating memory to copy maildir");
 
        if (!folder_exists(maildir)) {
@@ -379,7 +364,7 @@ main(int argc, char **argv)
 #endif /* MHE */
 
        /* Get new format string */
-       nfs = new_fs(form, format, FORMAT);
+       nfs = new_fs(form, FORMAT);
 
        if (noisy) {
                printf("Incorporating new mail into %s...\n\n", folder);
@@ -404,7 +389,7 @@ main(int argc, char **argv)
 
                /* create scanline for new message */
                switch (incerr = scan(in, msgnum + 1, msgnum + 1, nfs, width,
-                       msgnum == hghnum && chgflag, 1, NULL, 0L, noisy)) {
+                       msgnum == hghnum && chgflag, 1, noisy)) {
                case SCNFAT:
                case SCNEOF:
                        break;
@@ -427,14 +412,13 @@ main(int argc, char **argv)
                        break;
 
                case SCNMSG:
-               case SCNENC:
                        /*
                        **  Run the external program hook on the message.
                        */
 
                        snprintf(b, sizeof (b), "%s/%d", maildir_copy,
                                        msgnum + 1);
-                       ext_hook("add-hook", b, (char *)0);
+                       ext_hook("add-hook", b, NULL);
 
                        if (aud)
                                fputs(scanl, aud);
@@ -465,7 +449,7 @@ main(int argc, char **argv)
        if (incerr < 0) {  /* error */
                if (locked) {
                        GETGROUPPRIVS();  /* Be sure we can unlock mail file */
-                       (void) lkfclose(in, newmail); in = NULL;
+                       lkfclose(in, newmail); in = NULL;
                        DROPGROUPPRIVS();  /*
                                        ** And then return us to normal
                                        ** privileges
@@ -499,7 +483,6 @@ main(int argc, char **argv)
                                close(newfd);
                        else
                                admonish(newmail, "error zero'ing");
-                       unlink(map_name(newmail));
                }
        } else if (noisy) {
                printf("%s not zero'd\n", newmail);
@@ -508,7 +491,7 @@ main(int argc, char **argv)
        if (msgnum == hghnum) {
                admonish(NULL, "no messages incorporated");
        } else {
-               context_replace(pfolder, folder);  /* update current folder */
+               context_replace(curfolder, folder); /* update current folder */
                if (chgflag)
                        mp->curmsg = hghnum + 1;
                mp->hghmsg = msgnum;
@@ -523,13 +506,13 @@ main(int argc, char **argv)
        */
        if (locked) {
                GETGROUPPRIVS();  /* Be sure we can unlock mail file */
-               (void) lkfclose(in, newmail); in = NULL;
+               lkfclose(in, newmail); in = NULL;
                DROPGROUPPRIVS();  /* And then return us to normal privileges */
        } else {
                fclose(in); in = NULL;
        }
 
-       seq_setunseen(mp, 0);  /* set the Unseen-Sequence */
+       seq_setunseen(mp, 1);  /* add new msgs to unseen sequences */
        seq_save(mp);  /* synchronize sequences   */
        context_save();  /* save the context file   */
        done(0);