1 --- ndbm.c.orig 2004-10-28 23:25:13.000000000 -0700
2 +++ ndbm.c 2004-10-28 23:25:42.000000000 -0700
13 dbm_open(file, flags, mode)
20 char path[MAXPATHLEN];
24 DBT dbtretkey, dbtretdata;
25 + HTAB *htab = (HTAB *)(db->internal);
27 status = (db->seq)(db, &dbtretkey, &dbtretdata, R_FIRST);
30 dbtretkey.data = NULL;
31 + htab->nextkey_eof = 1;
33 + htab->nextkey_eof = 0;
34 retkey.dptr = dbtretkey.data;
35 retkey.dsize = dbtretkey.size;
44 DBT dbtretkey, dbtretdata;
45 + HTAB *htab = (HTAB *)(db->internal);
47 - status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT);
49 + if (htab->nextkey_eof)
50 dbtretkey.data = NULL;
52 + status = (db->seq)(db, &dbtretkey, &dbtretdata, R_NEXT);
54 + dbtretkey.data = NULL;
55 + htab->nextkey_eof = 1;
58 retkey.dptr = dbtretkey.data;
59 retkey.dsize = dbtretkey.size;