Howard Chu writes:
Of course, back-hdb too. Aside from subtree rename (which back-hdb supports and back-bdb does not) the two backends are functionally identical; I've gotten tired of writing "back-bdb/back-hdb" all the time.
The differences between hdb and bdb look small enough that they can easily be merged, unless they will diverge more in the future or there are arrays of EntryInfo somewhere.
The main ugliness I can see is with the BDB_HIER members of EntryInfo. Would need to move them out of EntryInfo and wrap them and EntryInfo in a struct hdb_hier_entry_info, and set a bit in EntryInfo, bdb_db_info and bdb_info if the database is hierarchical. '#if BDB_HIER' would mostly become if (BDB_IS_HIER(bi)) or if(ENTRY_IS_HIER(ei)), and those macros could return constants if not both bdb and hdb are supported.