Loading...
--- Libc/Libc-763.13/db/hash/FreeBSD/ndbm.c.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- ndbm.c.orig 2009-11-06 12:41:16.000000000 -0800
-+++ ndbm.c 2009-11-06 12:41:27.000000000 -0800
-@@ -47,6 +47,9 @@ __FBSDID("$FreeBSD: src/lib/libc/db/hash
- #include <string.h>
- #include <errno.h>
-
-+#include <db.h>
-+#define _DBM
-+typedef DB DBM;
- #include <ndbm.h>
- #include "hash.h"
-
-@@ -58,7 +61,8 @@ __FBSDID("$FreeBSD: src/lib/libc/db/hash
- extern DBM *
- dbm_open(file, flags, mode)
- const char *file;
-- int flags, mode;
-+ int flags;
-+ mode_t mode;
- {
- HASHINFO info;
- char path[MAXPATHLEN];
-@@ -124,10 +128,14 @@ dbm_firstkey(db)
- int status;
- datum retkey;
- DBT dbtretkey, dbtretdata;
-+ HTAB *htab = (HTAB *)(db->internal);
-
- status = (db->seq)(db, &dbtretkey, &dbtretdata, R_FIRST);
-- if (status)
-+ if (status) {
- dbtretkey.data = NULL;
-+ htab->nextkey_eof = 1;
-+ } else
-+ htab->nextkey_eof = 0;
- retkey.dptr = dbtretkey.data;
- retkey.dsize = dbtretkey.size;
- return (retkey);
-@@ -142,13 +150,20 @@ extern datum
- dbm_nextkey(db)
- DBM *db;
- {
-- int status;
-+ int status = 1;
- datum retkey;
- DBT dbtretkey, dbtretdata;
-+ HTAB *htab = (HTAB *)(db->internal);
-
-- status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT);
-- if (status)
-+ if (htab->nextkey_eof)
- dbtretkey.data = NULL;
-+ else {
-+ status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT);
-+ if (status) {
-+ dbtretkey.data = NULL;
-+ htab->nextkey_eof = 1;
-+ }
-+ }
- retkey.dptr = dbtretkey.data;
- retkey.dsize = dbtretkey.size;
- return (retkey);