db configuration fix for Debian; yet another location for ndbm.
[mmh] / uip / slocal.c
index d50330d..bbf1850 100644 (file)
@@ -3,6 +3,10 @@
  * slocal.c -- asynchronously filter and deliver new mail
  *
  * $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.
  */
 
 /*
@@ -27,7 +31,7 @@
 #include <h/rcvmail.h>
 #include <h/signals.h>
 #include <h/tws.h>
-#include <zotnet/mts/mts.h>
+#include <h/mts.h>
 
 #include <pwd.h>
 #include <signal.h>
@@ -48,8 +52,17 @@ extern int  initgroups(char*, int);
 #ifdef HAVE_DB1_NDBM_H
 #include <db1/ndbm.h>
 #else
+#ifdef HAVE_GDBM_NDBM_H
+#include <gdbm/ndbm.h>
+#else
+#if defined(HAVE_DB_H) && defined(HAVE_LIBDB)
+#define DB_DBM_HSEARCH 1
+#include <db.h>
+#else
 #include <ndbm.h>
 #endif
+#endif
+#endif
 
 #include <utmp.h>
 
@@ -452,7 +465,7 @@ localmail (int fd, char *mdlvr)
 static int
 usr_delivery (int fd, char *delivery, int su)
 {
-    int i, accept, status, won, vecp, next;
+    int i, accept, status=1, won, vecp, next;
     char *field, *pattern, *action, *result, *string;
     char buffer[BUFSIZ], tmpbuf[BUFSIZ];
     char *cp, *vec[NVEC];
@@ -656,6 +669,8 @@ usr_delivery (int fd, char *delivery, int su)
                break;
        }
 
+       if (status) next = 0;   /* action failed, mark for 'N' result */
+
        if (accept && status == 0)
            won++;
     }