Ok. I have written a first version for the Hash Module API. 
Also added the Arch entry on the wiki page.

I don't know how the enum "pdf_hash_value_type_e" is going to be used yet.

Here is the patch:

##
Index: doc/gnupdf.texi
===================================================================
RCS file: /sources/pdf/libgnupdf/doc/gnupdf.texi,v
retrieving revision 1.38
diff -u -r1.38 gnupdf.texi
--- doc/gnupdf.texi     25 Mar 2008 15:53:32 -0000      1.38
+++ doc/gnupdf.texi     6 Apr 2008 00:02:41 -0000
@@ -888,6 +888,8 @@
 @menu
 * Hash Table Types::
 * Creating and Destroying Hash Tables::
+* Adding and removing elements::
+* Searching elements::
 @end menu
 
 @node Hash Table Types
@@ -918,6 +920,155 @@
 @node Creating and Destroying Hash Tables
 @subsection Creating and Destroying Hash Tables
 
[EMAIL PROTECTED] pdf_status_t pdf_hash_create (pdf_hash_dispose_fn_t 
@var{dispose_fn}, pdf_hash_t @var{*table})
+
+Create a new empty hash table. When some element is removed @var{dispose_fn} 
is called. Can be NULL.
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] dispose_fn
+A pointer to a hash table dispose function.
[EMAIL PROTECTED] table
+A pointer to a hash table.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Returns
+A pdf status value:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] PDF_OK
+The operation succeeded.
[EMAIL PROTECTED] PDF_ENOMEM
+Not enough memory.
[EMAIL PROTECTED] PDF_EBADDATA
+Invalid @var{table} pointer.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+XXX
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
[EMAIL PROTECTED] deftypefun
+
[EMAIL PROTECTED] pdf_status_t pdf_hash_destroy (pdf_hash_t @var{table})
+
+Destroy a hash table. The elements of the table are disposed first.
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] table
+A hash table.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Returns
+A pdf status value:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] PDF_OK
+The operation succeeded.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+XXX
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
[EMAIL PROTECTED] deftypefun
+
+
[EMAIL PROTECTED] Adding and removing elements
[EMAIL PROTECTED] Adding and removing elements
+
[EMAIL PROTECTED] pdf_status_t pdf_hash_add (pdf_hash_t @var{table}, const char 
@var{*key}, void @var{*element}) 
+
+Adds the element @var{element} with the associated key @var{key} to 
@var{table}.
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] table
+A hash table.
[EMAIL PROTECTED] key
+A valid key string.
[EMAIL PROTECTED] element
+A pointer to the element being added.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Returns
+A pdf status value:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] PDF_OK
+The operation succeeded.
[EMAIL PROTECTED] PDF_ENOMEM
+Not enough memory.
[EMAIL PROTECTED] PDF_EBADDATA
+Either @var{table}, @var{key} or @var{element} is invalid.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+XXX
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
[EMAIL PROTECTED] deftypefun
+
[EMAIL PROTECTED] pdf_status_t pdf_hash_remove (pdf_hash_t @var{table}, const 
char @var{*key})
+
+Removes the element associated with @var{key} from @var{table}. The element is 
disposed first.
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] table
+A hash table.
[EMAIL PROTECTED] key
+A valid key string.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Returns
+A pdf status value:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] PDF_OK
+The operation succeeded.
[EMAIL PROTECTED] PDF_EBADDATA
+Invalid @var{table} or @var{key}.
[EMAIL PROTECTED] PDF_ERROR
+The @var{key} wasn't found.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+XXX
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
[EMAIL PROTECTED] deftypefun
+
[EMAIL PROTECTED] Searching elements
[EMAIL PROTECTED] Searching elements
+
[EMAIL PROTECTED] pdf_status_t pdf_hash_search (pdf_hash_t @var{table}, const 
char @var{*key}, void [EMAIL PROTECTED])
+
+Searches for the element associated with the given @var{key} in @var{table} 
and store it in @var{elem_pointer}.
+
[EMAIL PROTECTED] @strong
[EMAIL PROTECTED] Parameters
[EMAIL PROTECTED] @var
[EMAIL PROTECTED] table
+A hash table.
[EMAIL PROTECTED] key
+A valid null-terminated string key.
[EMAIL PROTECTED] element
+A pointer where to store the element.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Returns
+A pdf status value:
[EMAIL PROTECTED] @code
[EMAIL PROTECTED] PDF_OK
+The operation succeeded.
[EMAIL PROTECTED] PDF_EBADDATA
+Either the @var{element} pointer is NULL, or the @var{table} is invalid.
[EMAIL PROTECTED] PDF_ERROR
+The @var{key} wasn't found.
[EMAIL PROTECTED] table
[EMAIL PROTECTED] Usage example
[EMAIL PROTECTED]
+XXX
[EMAIL PROTECTED] example
[EMAIL PROTECTED] table
[EMAIL PROTECTED] deftypefun
 
 @node Lists
 @section Lists

###


cheers

-gerel


Reply via email to