Loading...
db/hash/FreeBSD/ndbm.c.patch Libc-498.1.5 /dev/null
--- Libc/Libc-498.1.5/db/hash/FreeBSD/ndbm.c.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- ndbm.c.org	2006-09-08 18:47:42.000000000 -0700
-+++ ndbm.c	2006-09-08 18:48:03.000000000 -0700
-@@ -51,6 +51,9 @@
- #include <string.h>
- #include <errno.h>
- 
-+#include <db.h>
-+#define _DBM
-+typedef DB DBM;
- #include <ndbm.h>
- #include "hash.h"
- 
-@@ -62,7 +65,8 @@
- extern DBM *
- dbm_open(file, flags, mode)
- 	const char *file;
--	int flags, mode;
-+	int flags;
-+	mode_t mode;
- {
- 	HASHINFO info;
- 	char path[MAXPATHLEN];
-@@ -128,10 +132,14 @@
- 	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);
-@@ -146,13 +154,20 @@
- 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);