X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fsortm.c;h=45e2b292fea355c434f209e333323d272e7204ea;hb=c897634e1c28697a6df572de00e66579567ad2a6;hp=212b441659db00d51dfcfdbf63fd119fada04eee;hpb=38615191e71744b066425e0c44412b62dbe49cc2;p=mmh diff --git a/uip/sortm.c b/uip/sortm.c index 212b441..45e2b29 100644 --- a/uip/sortm.c +++ b/uip/sortm.c @@ -2,8 +2,6 @@ /* * sortm.c -- sort messages in a folder by date/time * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -30,9 +28,13 @@ static struct swit switches[] = { { "verbose", 0 }, #define NVERBSW 7 { "noverbose", 0 }, -#define VERSIONSW 8 +#define ALLMSGS 8 + { "all", 0 }, +#define NALLMSGS 9 + { "noall", 0 }, +#define VERSIONSW 10 { "version", 0 }, -#define HELPSW 9 +#define HELPSW 11 { "help", 0 }, { NULL, 0 } }; @@ -47,9 +49,10 @@ static struct smsg *smsgs; int nmsgs; char *subjsort = (char *) 0; /* sort on subject if != 0 */ -unsigned long datelimit = 0; +time_t datelimit = 0; int submajor = 0; /* if true, sort on subject-major */ int verbose; +int allmsgs = 1; /* This keeps compiler happy on calls to qsort */ typedef int (*qsort_comp) (const void *, const void *); @@ -105,10 +108,10 @@ main (int argc, char **argv) snprintf(buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name); print_help (buf, switches, 1); - done (1); + done (0); case VERSIONSW: print_version(invo_name); - done (1); + done (0); case DATESW: if (datesw) @@ -155,6 +158,13 @@ main (int argc, char **argv) case NVERBSW: verbose = 0; continue; + + case ALLMSGS: + allmsgs = 1; + continue; + case NALLMSGS: + allmsgs = 0; + continue; } } if (*cp == '+' || *cp == '@') { @@ -168,8 +178,13 @@ main (int argc, char **argv) if (!context_find ("path")) free (path ("./", TFOLDER)); - if (!msgs.size) - app_msgarg(&msgs, "all"); + if (!msgs.size) { + if (allmsgs) { + app_msgarg(&msgs, "all"); + } else { + adios (NULL, "must specify messages to sort with -noall"); + } + } if (!datesw) datesw = "date"; if (!folder) @@ -206,9 +221,10 @@ main (int argc, char **argv) if (verbose) { /* announce what we're doing */ if (subjsort) - printf ("sorting by %s-major %s-minor\n", - submajor ? subjsort : datesw, - submajor ? datesw : subjsort); + if (submajor) + printf ("sorting by %s\n", subjsort); + else + printf ("sorting by %s-major %s-minor\n", subjsort, datesw); else printf ("sorting by datefield %s\n", datesw); } @@ -494,7 +510,7 @@ rename_chain (struct msgs *mp, struct smsg **mlist, int msg, int endmsg) { int nxt, old, new; char *newname, oldname[BUFSIZ]; - char newbuf[MAXPATHLEN + 1]; + char newbuf[PATH_MAX + 1]; for (;;) { nxt = mlist[msg] - smsgs; /* mlist[msg] is a ptr into smsgs */ @@ -532,7 +548,7 @@ rename_msgs (struct msgs *mp, struct smsg **mlist) int i, j, old, new; seqset_t tmpset; char f1[BUFSIZ], tmpfil[BUFSIZ]; - char newbuf[MAXPATHLEN + 1]; + char newbuf[PATH_MAX + 1]; struct smsg *sp; strncpy (tmpfil, m_name (mp->hghmsg + 1), sizeof(tmpfil));