* complete copyright information.
*/
-#include <h/mh.h>
-#include <h/fmt_scan.h>
-#include <h/scansbr.h>
-#include <h/tws.h>
-#include <h/mts.h>
-#include <h/utils.h>
-#include "../sbr/m_maildir.h"
+#include "h/mh.h"
+#include "sbr/path.h"
+#include "sbr/print_version.h"
+#include "sbr/print_help.h"
+#include "sbr/seq_getnum.h"
+#include "sbr/error.h"
+#include "h/fmt_scan.h"
+#include "h/scansbr.h"
+#include "h/tws.h"
+#include "h/mts.h"
+#include "h/done.h"
+#include "h/utils.h"
+#include "sbr/m_maildir.h"
+#include "sbr/terminal.h"
#define SCAN_SWITCHES \
X("clear", 0, CLRSW) \
int
main (int argc, char **argv)
{
- int clearflag = 0, hdrflag = 0, ontty;
- int width = -1, revflag = 0;
+ bool clearflag = false;
+ bool hdrflag = false;
+ int ontty;
+ int width = -1;
+ bool revflag = false;
int i, state, msgnum;
ivector_t seqnum = ivector_create (0);
- int unseen, num_unseen_seq = 0;
+ bool unseen;
+ int num_unseen_seq = 0;
char *cp, *maildir, *file = NULL, *folder = NULL;
char *form = NULL, *format = NULL, buf[BUFSIZ];
char **argp, *nfs, **arguments;
struct msgs *mp;
FILE *in;
- if (nmh_init(argv[0], 1)) { return 1; }
+ if (nmh_init(argv[0], true, true)) { return 1; }
mts_init ();
arguments = getarguments (invo_name, argc, argv, 1);
ambigsw (cp, switches);
done (1);
case UNKWNSW:
- adios (NULL, "-%s unknown", cp);
+ die("-%s unknown", cp);
case HELPSW:
snprintf (buf, sizeof(buf), "%s [+folder] [msgs] [switches]",
done (0);
case CLRSW:
- clearflag++;
+ clearflag = true;
continue;
case NCLRSW:
- clearflag = 0;
+ clearflag = false;
continue;
case FORMSW:
if (!(form = *argp++) || *form == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ die("missing argument to %s", argp[-2]);
format = NULL;
continue;
case FMTSW:
if (!(format = *argp++) || *format == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ die("missing argument to %s", argp[-2]);
form = NULL;
continue;
case HEADSW:
- hdrflag++;
+ hdrflag = true;
continue;
case NHEADSW:
- hdrflag = 0;
+ hdrflag = false;
continue;
case WIDTHSW:
if (!(cp = *argp++) || *cp == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ die("missing argument to %s", argp[-2]);
width = atoi (cp);
continue;
case REVSW:
- revflag++;
+ revflag = true;
continue;
case NREVSW:
- revflag = 0;
+ revflag = false;
continue;
case FILESW:
if (!(cp = *argp++) || (cp[0] == '-' && cp[1]))
- adios (NULL, "missing argument to %s", argp[-2]);
+ die("missing argument to %s", argp[-2]);
if (strcmp (file = cp, "-"))
file = path (cp, TFILE);
continue;
}
if (*cp == '+' || *cp == '@') {
if (folder)
- adios (NULL, "only one folder at a time!");
- else
- folder = pluspath (cp);
+ die("only one folder at a time!");
+ folder = pluspath (cp);
} else
- app_msgarg(&msgs, cp);
+ app_msgarg(&msgs, cp);
}
if (!context_find ("path"))
*/
if (file) {
if (msgs.size)
- adios (NULL, "\"msgs\" not allowed with -file");
+ die("\"msgs\" not allowed with -file");
if (folder)
- adios (NULL, "\"+folder\" not allowed with -file");
+ die("\"+folder\" not allowed with -file");
/* check if "file" is really stdin */
if (strcmp (file, "-") == 0) {
/* read folder and create message structure */
if (!(mp = folder_read (folder, 1)))
- adios (NULL, "unable to read folder %s", folder);
+ die("unable to read folder %s", folder);
/* check for empty folder */
if (mp->nummsg == 0)
- adios (NULL, "no messages in %s", folder);
+ die("no messages in %s", folder);
/* parse all the message ranges/sequences and set SELECTED */
for (msgnum = 0; msgnum < msgs.size; msgnum++)
ivector_push_back (seqnum, seq_getnum (mp, *ap));
num_unseen_seq = i;
- mh_xfree(dp);
+ free(dp);
}
ontty = isatty (fileno (stdout));
* Check if message is in any sequence given
* by Unseen-Sequence profile entry.
*/
- unseen = 0;
+ unseen = false;
for (i = 0; i < num_unseen_seq; i++) {
if (in_sequence(mp, ivector_at (seqnum, i), msgnum)) {
- unseen = 1;
+ unseen = true;
break;
}
}
break;
default:
- adios (NULL, "scan() botch (%d)", state);
+ die("scan() botch (%d)", state);
case SCNEOF:
inform("message %d: empty", msgnum);
}
charstring_free (scanl);
scan_finished ();
- hdrflag = 0;
+ hdrflag = false;
fclose (in);
if (ontty)
fflush (stdout);