1 --- ndbm.c.org 2006-09-08 18:47:42.000000000 -0700
2 +++ ndbm.c 2006-09-08 18:48:03.000000000 -0700
15 dbm_open(file, flags, mode)
22 char path[MAXPATHLEN];
26 DBT dbtretkey, dbtretdata;
27 + HTAB *htab = (HTAB *)(db->internal);
29 status = (db->seq)(db, &dbtretkey, &dbtretdata, R_FIRST);
32 dbtretkey.data = NULL;
33 + htab->nextkey_eof = 1;
35 + htab->nextkey_eof = 0;
36 retkey.dptr = dbtretkey.data;
37 retkey.dsize = dbtretkey.size;
46 DBT dbtretkey, dbtretdata;
47 + HTAB *htab = (HTAB *)(db->internal);
49 - status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT);
51 + if (htab->nextkey_eof)
52 dbtretkey.data = NULL;
54 + status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT);
56 + dbtretkey.data = NULL;
57 + htab->nextkey_eof = 1;
60 retkey.dptr = dbtretkey.data;
61 retkey.dsize = dbtretkey.size;