Added docs/contrib/vpick.
[mmh] / uip / dropsbr.c
index 3bd5c9b..7771b6b 100644 (file)
 #include <h/dropsbr.h>
 #include <h/mts.h>
 #include <h/tws.h>
-
-#ifdef HAVE_ERRNO_H
-# include <errno.h>
-#endif
+#include <errno.h>
 
 #ifdef NTOHLSWAP
 # include <netinet/in.h>
@@ -143,13 +140,12 @@ mbx_chk_mbox (int fd)
 static int
 mbx_chk_mmdf (int fd)
 {
-    size_t count;
+    ssize_t count;
     char ldelim[BUFSIZ];
 
     count = strlen (mmdlm2);
 
-    /* casting -count to off_t, seem to break FreeBSD 2.2.6 */
-    if (lseek (fd, (long) (-count), SEEK_END) == (off_t) NOTOK)
+    if (lseek (fd, -count, SEEK_END) == (off_t) NOTOK)
        return NOTOK;
     if (read (fd, ldelim, count) != count)
        return NOTOK;
@@ -467,8 +463,9 @@ mbx_size (int md, off_t start, off_t stop)
 int
 mbx_close (char *mailbox, int md)
 {
-    lkclose (md, mailbox);
-    return OK;
+    if (lkclose (md, mailbox) == 0)
+        return OK;
+    return NOTOK;
 }
 
 
@@ -520,7 +517,8 @@ map_read (char *file, long pos, struct drop **drops, int noisy)
     memcpy((char *) dp, (char *) mp, sizeof(*dp));
 
     lseek (md, (off_t) sizeof(*mp), SEEK_SET);
-    if ((i = read (md, (char *) (dp + 1), msgp * sizeof(*dp))) < sizeof(*dp)) {
+    if ((i = read (md, (char *) (dp + 1), msgp * sizeof(*dp))) <
+        (int) sizeof(*dp)) {
        i = 0;
        free ((char *) dp);
     } else {
@@ -653,7 +651,7 @@ map_open (char *file, int md)
     mode_t mode;
     struct stat st;
 
-    mode = fstat (md, &st) != NOTOK ? (mode_t) (st.st_mode & 0777) : m_gmprot ();
+    mode = fstat (md, &st) != NOTOK ? (int) (st.st_mode & 0777) : m_gmprot ();
     return mbx_open (file, OTHER_FORMAT, st.st_uid, st.st_gid, mode);
 }
 
@@ -661,7 +659,7 @@ map_open (char *file, int md)
 int
 map_chk (char *file, int fd, struct drop *dp, long pos, int noisy)
 {
-    long count;
+    ssize_t count;
     struct drop d, tmpd;
     register struct drop *dl;
 
@@ -702,7 +700,7 @@ map_chk (char *file, int fd, struct drop *dp, long pos, int noisy)
     }
 
     dl = &d;
-    count = (long) strlen (mmdlm2);
+    count = strlen (mmdlm2);
     lseek (fd, (off_t) (dp->d_id * sizeof(*dp)), SEEK_SET);
     if (read (fd, (char *) dl, sizeof(*dl)) != sizeof(*dl)
            || (ntohl(dl->d_stop) != dp->d_stop