db configuration fix for Debian; yet another location for ndbm.
[mmh] / uip / slocal.c
index b176008..bbf1850 100644 (file)
@@ -55,9 +55,14 @@ extern int  initgroups(char*, int);
 #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>
 
@@ -460,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];
@@ -664,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++;
     }