projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed another weird bug caused by the static mailpath being overwritten.
[mmh]
/
uip
/
inc.c
diff --git
a/uip/inc.c
b/uip/inc.c
index
1b49a84
..
864574b
100644
(file)
--- a/
uip/inc.c
+++ b/
uip/inc.c
@@
-134,8
+134,6
@@
static struct swit switches[] = {
{ NULL, 0 }
};
{ NULL, 0 }
};
-extern int errno;
-
/*
* flags for the mail source
*/
/*
* flags for the mail source
*/
@@
-246,6
+244,7
@@
main (int argc, char **argv)
struct stat st, s1;
FILE *aud = NULL;
char b[MAXPATHLEN + 1];
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;
#ifdef POP
int nmsgs, nbytes, p = 0;
@@
-535,6
+534,11
@@
main (int argc, char **argv)
}
if (stat (newmail, &s1) == NOTOK || s1.st_size == 0)
adios (NULL, "no mail to incorporate");
}
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
}
#ifdef POP
@@
-549,6
+553,9
@@
main (int argc, char **argv)
folder = getfolder (0);
maildir = m_maildir (folder);
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");
if (stat (maildir, &st) == NOTOK) {
if (errno != ENOENT)
adios (maildir, "error on folder");
@@
-830,7
+837,7
@@
go_to_it:
* Run the external program hook on the message.
*/
* Run the external program hook on the message.
*/
- (void)snprintf(b, sizeof (b), "%s/%d", maildir, msgnum + 1);
+ (void)snprintf(b, sizeof (b), "%s/%d", maildir_copy, msgnum + 1);
(void)ext_hook("add-hook", b, (char *)0);
if (aud)
(void)ext_hook("add-hook", b, (char *)0);
if (aud)
@@
-845,6
+852,8
@@
go_to_it:
msgnum++;
mp->hghmsg++;
mp->nummsg++;
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);
clear_msg_flags (mp, msgnum);
set_exists (mp, msgnum);
set_unseen (mp, msgnum);