X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fdatabase.c;h=0493d0e548a276b44f9186db994dfce26bc5a64e;hb=9e004122928715a7579fcbfaf2e85155ac78a432;hp=c42d41f56099cc53f1270a5ba83053eef553b67e;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921;p=chise%2Fxemacs-chise.git diff --git a/src/database.c b/src/database.c index c42d41f..0493d0e 100644 --- a/src/database.c +++ b/src/database.c @@ -128,7 +128,7 @@ struct Lisp_Database static Lisp_Database * allocate_database (void) { - Lisp_Database *db = alloc_lcrecord_type (Lisp_Database, lrecord_database); + Lisp_Database *db = alloc_lcrecord_type (Lisp_Database, &lrecord_database); db->fname = Qnil; db->live_p = 0; @@ -498,19 +498,25 @@ berkdb_map (Lisp_Database *db, Lisp_Object func) call2 (func, key, val); } #else - DBC *dbcp; + { + DBC *dbcp; - status = dbp->cursor (dbp, NULL, &dbcp); - for (status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_FIRST); - status == 0; - status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_NEXT)) - { - /* ### Needs mule-izing */ - key = make_string ((Bufbyte *) keydatum.data, keydatum.size); - val = make_string ((Bufbyte *) valdatum.data, valdatum.size); - call2 (func, key, val); - } - dbcp->c_close (dbcp); +#if DB_VERSION_MAJOR > 2 || DB_VERSION_MINOR >=6 + status = dbp->cursor (dbp, NULL, &dbcp, 0); +#else + status = dbp->cursor (dbp, NULL, &dbcp); +#endif + for (status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_FIRST); + status == 0; + status = dbcp->c_get (dbcp, &keydatum, &valdatum, DB_NEXT)) + { + /* ### Needs mule-izing */ + key = make_string ((Bufbyte *) keydatum.data, keydatum.size); + val = make_string ((Bufbyte *) valdatum.data, valdatum.size); + call2 (func, key, val); + } + dbcp->c_close (dbcp); + } #endif /* DB_VERSION_MAJOR */ }