* Internationalize diagnostic messages and register gdbm on the TP.

Once done, an alpha version should be released to help translators
do their job.

* gdbm_errno/errno relations.

Some values of gdbm_errno imply that the system errno can be used
to obtain detail on the reasons of the failure.  For some others,
the errno value is irrelevant.  These should be documented.

Besides, care should be taken not to clobber errno before returning
from the function.

* Implement iterators

Iterator is an auxiliary object that allows for visiting
all keys in the database while applying changes on it (such
as inserting or deleting keys). Such loops are pretty common.
I stumbled upon the impossibility to write such a loop without
creating a temporary database when writing mailfromd[1]. Using
a special object to keep track of the current key is a solution
I used in Mailutils[2] (although for different kind of objects,
but the idea remains the same).  

For example, the following loop shall guarantee that all keys will
be visited despite the fact that some of them get removed in the
process:

  /* GDBM_FILE dbf; */
  gdbm_iterator_t itr;
  datum key;

  /* Create the iterator */
  itr = gdbm_iterator_create (dbf);
  /* Obtain the first key */
  key = gdbm_iterator_first (itr);
  while (key.dptr)
    {
       if (some_condition (dbf, key))
         {
            gdbm_delete (dbf, key);
         }

       /* Free old key. This can safely be done before gdbm_iterator_next,
	  because it latter keeps track of the current key and does not
	  need its data */
       free (key.dptr); 
       /* Get next key */
       key = gdbm_iterator_next (itr);
    }
  gdbm_iterator_free (itr);

Any number of iterators can be obtained simultaneously from the
same database (e.g. another iterator can be operated within the above loop).

* gdbmdump/gdbmload

The `gdbmdump' utility should produce a flat dump of a GDBM database.
`Gdbmload' does the reverse: creates a database from a flat file.

This functionality is available from testgdbm, but using an interactive
program for this task unnecessarily complicates things. Besides,
testgdbm is difficult to be used in shell scripts (again, due to its
interactive nature).

* testgdbm

Improve interface.  Link with GNU readline, when available.

--
[1] http://www.gnu.org.ua/software/mailfromd
[2] http://mailutils.org
