adios(EX_OSERR, NULL, "atexit failed");
}
-/*
-** absolutely the first thing we do is save our privileges,
-** and drop them if we can.
-*/
+ /*
+ ** absolutely the first thing we do is save our privileges,
+ ** and drop them if we can.
+ */
SAVEGROUPPRIVS();
TRYDROPGROUPPRIVS();
setlocale(LC_ALL, "");
invo_name = mhbasename(argv[0]);
- /* read user profile/context */
context_read();
arguments = getarguments(invo_name, argc, argv, 1);
if (chdir(maildir) == NOTOK)
adios(EX_OSERR, maildir, "unable to change directory to");
- /* read folder and create message structure */
if (!(mp = folder_read(folder)))
adios(EX_IOERR, NULL, "unable to read folder %s", folder);
dtimenow(), from);
}
- /* Get new format string */
- fmtstr = new_fs(form, FORMAT);
+ /* Set format string */
+ fmtstr = new_fs(form, scanformat);
if (noisy) {
printf("Incorporating new mail into %s...\n\n", folder);
fflush(stdout);
}
+ /* check if readable and nonempty */
+ if (!fgets(buf, sizeof(buf), in)) {
+ if (ferror(in)) {
+ advise("read", "unable to");
+ incerr = SCNFAT;
+ } else {
+ incerr = SCNEOF;
+ }
+ goto giveup;
+ }
+ if (strncmp("From ", buf, 5)!=0) {
+ advise(NULL, "not in mbox format");
+ incerr = SCNFAT;
+ goto giveup;
+ }
+
/*
** Get the mail from file (usually mail spool)
*/
- thisisanmbox(in);
hghnum = msgnum = mp->hghmsg;
for (;;) {
/*
*/
break;
}
+giveup:;
mh_free0(&maildir_copy);
if (incerr < 0) { /* error */
fclose(in); in = NULL;
}
- seq_setunseen(mp, 1); /* add new msgs to unseen sequences */
- seq_save(mp); /* synchronize sequences */
- context_save(); /* save the context file */
+ seq_setunseen(mp, 1);
+ seq_save(mp);
+ context_save();
return 0;
}