projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
One more pass at README.developers now that it's clear that my
[mmh]
/
uip
/
dropsbr.c
diff --git
a/uip/dropsbr.c
b/uip/dropsbr.c
index
857263a
..
5cf4ee3
100644
(file)
--- a/
uip/dropsbr.c
+++ b/
uip/dropsbr.c
@@
-11,7
+11,7
@@
# include <h/mh.h>
# include <h/dropsbr.h>
# include <zotnet/mts/mts.h>
# include <h/mh.h>
# include <h/dropsbr.h>
# include <zotnet/mts/mts.h>
-# include <zotnet/tws/tws.h>
+# include <h/tws.h>
#else
# include "dropsbr.h"
# include "strings.h"
#else
# include "dropsbr.h"
# include "strings.h"
@@
-38,7
+38,7
@@
extern int errno;
*/
static int mbx_chk_mbox (int);
static int mbx_chk_mmdf (int);
*/
static int mbx_chk_mbox (int);
static int mbx_chk_mmdf (int);
-static int map_open (char *, int *, int);
+static int map_open (char *, int);
/*
/*
@@
-408,8
+408,7
@@
mbx_copy (char *mailbox, int mbx_style, int md, int fd,
strncpy(tmpbuffer, buffer, sizeof(tmpbuffer));
ep = "nobody@nowhere";
tp = dctime(dlocaltimenow());
strncpy(tmpbuffer, buffer, sizeof(tmpbuffer));
ep = "nobody@nowhere";
tp = dctime(dlocaltimenow());
- snprintf (buffer, sizeof(buffer), "From %s %s", ep, tp);
- strcat (buffer, tmpbuffer);
+ snprintf (buffer, sizeof(buffer), "From %s %s%s", ep, tp, tmpbuffer);
}
}
}
}
@@
-566,14
+565,20
@@
map_write (char *mailbox, int md, int id, long last, off_t start,
register struct drop *dp;
struct drop d1, d2, *rp;
register FILE *fp;
register struct drop *dp;
struct drop d1, d2, *rp;
register FILE *fp;
+ struct stat st;
- if ((fd = map_open (file = map_name (mailbox), &clear, md)) == NOTOK)
+ if ((fd = map_open (file = map_name (mailbox), md)) == NOTOK)
return NOTOK;
return NOTOK;
+ if ((fstat (fd, &st) == OK) && (st.st_size > 0))
+ clear = 0;
+ else
+ clear = 1;
+
if (!clear && map_chk (file, fd, &d1, pos, noisy)) {
unlink (file);
mbx_close (file, fd);
if (!clear && map_chk (file, fd, &d1, pos, noisy)) {
unlink (file);
mbx_close (file, fd);
- if ((fd = map_open (file, &clear, md)) == NOTOK)
+ if ((fd = map_open (file, md)) == NOTOK)
return NOTOK;
clear++;
}
return NOTOK;
clear++;
}
@@
-595,6
+600,7
@@
map_write (char *mailbox, int md, int id, long last, off_t start,
return NOTOK;
case OK:
return NOTOK;
case OK:
+ fclose (fp);
break;
default:
break;
default:
@@
-612,6
+618,7
@@
map_write (char *mailbox, int md, int id, long last, off_t start,
}
}
free ((char *) rp);
}
}
free ((char *) rp);
+ fclose (fp);
break;
}
}
break;
}
}
@@
-652,7
+659,7
@@
map_write (char *mailbox, int md, int id, long last, off_t start,
static int
static int
-map_open (char *file, int *clear, int md)
+map_open (char *file, int md)
{
mode_t mode;
struct stat st;
{
mode_t mode;
struct stat st;