1 |
|
Tue Sep 16 22:37:33 BST 2003 Colin Watson <cjwatson@debian.org> |
2 |
|
|
3 |
|
Work around the fact that GDBM's firstkey/nextkey interface doesn't |
4 |
|
return ordered results. |
5 |
|
|
6 |
|
* libdb/db_gdbm.c (man_gdbm_open_wrapper): New function. Wraps the |
7 |
|
return value from gdbm_open() in a structure that remembers the |
8 |
|
file name. |
9 |
|
(parent_sortkey_hash_free, sortkey_hash_free): New functions to |
10 |
|
free hashtables used here. |
11 |
|
(sortkey_compare): New comparison function for qsort(). |
12 |
|
(man_gdbm_firstkey): New function. Retrieve all keys using |
13 |
|
gdbm_firstkey() and gdbm_nextkey() in advance, sort them into an |
14 |
|
ordered hashtable, remember that hashtable for later, and return |
15 |
|
the first key. |
16 |
|
(man_gdbm_nextkey): New function. Find the previously remembered |
17 |
|
ordered hashtable and return the next element from it. |
18 |
|
(man_gdbm_close): New function. Clean up remembered data. |
19 |
|
* libdb/db_lookup.c (copy_datum): Define even if using GDBM. |
20 |
|
(gripe_lock): Explain why this isn't used for GDBM. |
21 |
|
* libdb/mydbm.h (man_gdbm_wrapper): New type. |
22 |
|
(man_gdbm_open_wrapper, man_gdbm_firstkey, man_gdbm_nextkey, |
23 |
|
man_gdbm_close): Add prototypes. |
24 |
|
(MYDBM_FILE): Change to man_gdbm_wrapper for GDBM. Adjust all |
25 |
|
other MYDBM_* macros to cope with this and use man_gdbm_* |
26 |
|
functions where necessary. |
27 |
|
(copy_datum): Declare for all database types. Remove __inline__. |
28 |
|
* docs/NEWS: Document this. |
29 |
|
|
30 |
Tue Sep 16 01:44:59 BST 2003 Colin Watson <cjwatson@debian.org> |
Tue Sep 16 01:44:59 BST 2003 Colin Watson <cjwatson@debian.org> |
31 |
|
|
32 |
* src/accessdb.c (main): Free each key after listing it rather than |
* src/accessdb.c (main): Free each key after listing it rather than |