* inc.c -- incorporate messages from a maildrop into a folder
*
* $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.
*/
#ifdef MAILGROUP
#include <h/scansbr.h>
#include <h/signals.h>
#include <h/tws.h>
-#include <zotnet/mts/mts.h>
+#include <h/mts.h>
#include <errno.h>
#include <signal.h>
{ NULL, 0 }
};
-extern int errno;
-
/*
* flags for the mail source
*/
struct msgs *mp;
struct stat st, s1;
FILE *aud = NULL;
+ char b[MAXPATHLEN + 1];
+ char *maildir_copy; /* copy of mail directory because the static gets overwritten */
#ifdef POP
int nmsgs, nbytes, p = 0;
}
if (stat (newmail, &s1) == NOTOK || s1.st_size == 0)
adios (NULL, "no mail to incorporate");
+
+ if ((cp = strdup(newmail)) == (char *)0)
+ adios (maildir, "error allocating memory to copy newmail");
+
+ newmail = cp;
}
#ifdef POP
folder = getfolder (0);
maildir = m_maildir (folder);
+ if ((maildir_copy = strdup(maildir)) == (char *)0)
+ adios (maildir, "error allocating memory to copy maildir");
+
if (stat (maildir, &st) == NOTOK) {
if (errno != ENOENT)
adios (maildir, "error on folder");
/* link message into folder */
newmsg = folder_addmsg(mp, tmpfilenam);
#endif
-
/* create scanline for new message */
switch (i = scan (in, msgnum + 1, msgnum + 1, nfs, width,
msgnum == hghnum && chgflag, 1, NULL, 0L, noisy)) {
case SCNMSG:
case SCNENC:
+ /*
+ * Run the external program hook on the message.
+ */
+
+ (void)snprintf(b, sizeof (b), "%s/%d", maildir_copy, msgnum + 1);
+ (void)ext_hook("add-hook", b, (char *)0);
+
if (aud)
fputs (scanl, aud);
#ifdef MHE
msgnum++;
mp->hghmsg++;
+ mp->nummsg++;
+ if (mp->lowmsg == 0) mp->lowmsg = 1;
+
clear_msg_flags (mp, msgnum);
set_exists (mp, msgnum);
set_unseen (mp, msgnum);