Batch of new documentation that should be easier to maintain and extend.
authorEST 1998 Gregory McLean <gregm@comstar.net>
Wed, 11 Nov 1998 23:19:57 +0000 (23:19 +0000)
committerGregory McLean <gregm@src.gnome.org>
Wed, 11 Nov 1998 23:19:57 +0000 (23:19 +0000)
Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>

        * docs/*.sgml : Batch of new documentation that should be easier
        to maintain and extend. Plus generate whatever sort of doc file
        you would like. I didn't change the Makefile stuff as I'm not sure
        what default doc type people want. Oh and this is all DocBook format.
        Enjoy!

16 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
docs/defintions.sgml [new file with mode: 0644]
docs/gcache.sgml [new file with mode: 0644]
docs/ghash.sgml [new file with mode: 0644]
docs/glib.sgml [new file with mode: 0644]
docs/glist.sgml [new file with mode: 0644]
docs/gmem.sgml [new file with mode: 0644]
docs/gtimer.sgml [new file with mode: 0644]
docs/gtree.sgml [new file with mode: 0644]

index bfa281c..8622b70 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
index bfa281c..8622b70 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
index bfa281c..8622b70 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
index bfa281c..8622b70 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
index bfa281c..8622b70 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
index bfa281c..8622b70 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
index bfa281c..8622b70 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
index bfa281c..8622b70 100644 (file)
@@ -1,3 +1,11 @@
+Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
+
+       * docs/*.sgml : Batch of new documentation that should be easier
+       to maintain and extend. Plus generate whatever sort of doc file
+       you would like. I didn't change the Makefile stuff as I'm not sure
+       what default doc type people want. Oh and this is all DocBook format.
+       Enjoy!
+
 Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
 
        * configure.in: use __extension__ for long long on gcc >= 2.8 and
diff --git a/docs/defintions.sgml b/docs/defintions.sgml
new file mode 100644 (file)
index 0000000..6dce081
--- /dev/null
@@ -0,0 +1,108 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" []>
+<chapter id="glib-definitions">
+  <docinfo>
+    <title>GLIB Definitions and types</title>
+  </docinfo>
+  <title>GLIB Definitions and types</title>
+  <sect1 id="definitions-introduction">
+    <title>Introduction</title>
+    <para>GLIB provides many abstract defintions to ease the cross platform
+    programming tasks. All of these types and definitions have system 
+    specific values that glib, compiled on the native machine will be
+    adjusted to the system specific types.</para>
+    <para>By using the following types and defintions in your program, it will
+    function in the way you designed on more hardware and operating systems
+    combinations.</para>
+    <para>We also are provided with definitions for some commonly used macros.
+    Some of them are only provided if they haven't already been defined. It
+    is assumed that if they are already defined then the current definition
+    is correct.</para>
+  </sect1>
+  <sect1 id="limit-defines">
+    <title>Limits</title>
+    <para>GLIB provides standard definitions for the extremes of many of the
+    standard types. They are as follows.</para>
+    <itemizedlist>
+      <listitem>
+       <para><type>G_MINFLOAT</type></para>
+       <para>This is the minimum floating point number that the machine
+        that your application is running on can handle.</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MAXFLOAT</type></para>
+       <para>This is the maximum floating point number that the machine
+        that your application is running on can handle.</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MINDOUBLE</type></para>
+       <para>FIXME</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MAXDOUBLE</type></para>
+       <para>FIXME</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MINSHORT</type></para>
+       <para>FIXME</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MAXSHORT</type></para>
+       <para>FIXME</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MININT</type></para>
+       <para>FIXME</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MAXINT</type></para>
+       <para>FIXME</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MINLONG</type></para>
+       <para>FIXME</para>
+      </listitem>
+      <listitem>
+       <para><type>G_MAXLONG</type></para>
+       <para>FIXME</para>
+      </listitem>
+    </itemizedlist>
+  </sect1>
+  <sect1 id="common-macros">
+    <title>Commonly used macros</title>
+    <para>This section details out the commonly used macros that the library
+     will provide. These definitions will only be provided if they haven't
+     been defined before.</para>
+    <itemizedlist>
+      <listitem>
+       <para><type>NULL</type></para>
+       <para>A nothing value.</para>
+      </listitem>
+      <listitem>
+       <para><type>FALSE</type></para>
+       <para>This macro is used to indicate a non truth.</para>
+      </listitem>
+      <listitem>
+       <para><type>TRUE</type></para>
+       <para>This macro represents a true value.</para>
+      </listitem>
+      <listitem>
+       <para><type>MAX</type></para>
+       <para>This macro will return the maximum of two variables.</para>
+      </listitem>
+      <listitem>
+       <para><type>MIN</type></para>
+       <para>This macro will return the minmum of two variables.</para>
+      </listitem>
+      <listitem>
+       <para><type>ABS</type></para>
+       <para>This macros will return the absolute value of a signed integer
+        </para>
+      </listitem>
+      <listitem>
+       <para><type>CLAMP</type></para>
+       <para>FIXME</para>
+      </listitem>
+    </itemizedlist>
+  </sect1>
+</chapter>
+
diff --git a/docs/gcache.sgml b/docs/gcache.sgml
new file mode 100644 (file)
index 0000000..251419d
--- /dev/null
@@ -0,0 +1,196 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" []>
+<chapter id="gcache-functions">
+  <docinfo>
+    <title>Cache handling functions</title>
+  </docinfo>
+  <title>Cache handling functions</title>
+  <sect1 id="cache-introduction">
+    <title>Introduction</title>
+    <para> </para>
+  </sect1>
+  <sect1 id="cache-functions">
+    <title>Cache functions</title>
+    <para> </para>
+    <sect2 id="g-cache-new">
+      <title>g_cache_new</title>
+      <funcsynopsis>
+       <funcdef>GCache *<function>g_cache_new</function></funcdef>
+       <paramdef>GCacheNewFunc <parameter>value_new_func</parameter></paramdef>
+       <paramdef>GCacheDestroyFunc <parameter>value_destroy_func</parameter></paramdef>
+       <paramdef>GCacheDupFunc <parameter>key_dup_func</parameter></paramdef>
+       <paramdef>GCacheDestroyFunc <parameter>key_destroy_func</parameter></paramdef>
+       <paramdef>GHashFunc <parameter>hash_key_func</parameter></paramdef>
+       <paramdef>GHashFunc <parameter>hash_value_func</parameter></paramdef>
+       <paramdef>GCompareFunc <parameter>key_compare_func</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-cache-destroy">
+      <title>g_cache_destroy</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_cache_destroy</function></funcdef>
+       <paramdef>GCache *<parameter>cache</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+        
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GCache <parameter>cache</parameter></para>
+           <para> </para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-cache-insert">
+      <title>g_cache_insert</title>
+      <funcsynopsis>
+       <funcdef>gpointer <function>g_cache_insert</function></funcdef>
+       <paramdef>GCache *<parameter>cache</parameter></paramdef>
+       <paramdef>gpointer <parameter>key</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GCache *<parameter>cache</parameter></para>
+           <para> </para>
+         </listitem>
+         <listitem>
+           <para>gpointer <parameter>key</parameter></para>
+           <para> </para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-cache-remove">
+      <title>g_cache_remove</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_cache_remove</function></funcdef>
+       <paramdef>GCache *<parameter>cache</parameter></paramdef>
+       <paramdef>gpointer <parameter>value</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GCache *<parameter>cache</parameter></para>
+           <para> </para>
+         </listitem>
+         <listitem>
+           <para>gpointer <parameter>value</parameter></para>
+           <para> </para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-cache-key-foreach">
+      <title>g_cache_key_foreach</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_cache_key_foreach</function></funcdef>
+       <paramdef>GCache *<parameter>cache</parameter></paramdef>
+       <paramdef>GHFunc <parameter>func</parameter></paramdef>
+       <paramdef>gpointer <parameter>user_data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GCache *<parameter>cache</parameter></para>
+           <para> </para>
+         </listitem>
+         <listitem>
+           <para>GHFunc <parameter>func</parameter></para>
+           <para> </para>
+         </listitem>
+         <listitem>
+           <para>gpointer <parameter>user_data</parameter></para>
+           <para> </para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-cache-value-foreach">
+      <title>g_cache_value_foreach</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_cache_value_foreach</function></funcdef>
+       <paramdef>GCache *<parameter>cache</parameter></paramdef>
+       <paramdef>GHFunc <parameter>func</parameter></paramdef>
+       <paramdef>gpointer <parameter>user_data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GCache *<parameter>cache</parameter></para>
+           <para> </para>
+         </listitem>
+         <listitem>
+           <para>GHFunc <parameter>func</parameter></para>
+           <para> </para>
+         </listitem>
+         <listitem>
+           <para>gpointer <parameter>user_data</parameter></para>
+           <para> </para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+  </sect1>
+</chapter>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:("glib.sgml" "book" "sect1" "")
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
\ No newline at end of file
diff --git a/docs/ghash.sgml b/docs/ghash.sgml
new file mode 100644 (file)
index 0000000..63f0645
--- /dev/null
@@ -0,0 +1,262 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" []>
+<chapter id="hashtable-functions">
+  <docinfo>
+    <Title>Hash Table functions</title>
+  </docinfo>
+  <title>Hash Table functions</title>
+  <sect1 id="hashtable-introduction">
+    <title>Introduction</title>
+    <para> </para>
+  </sect1>
+  <sect1 id="hash-tables">
+    <title>Hash Table functions</title>
+    <para> </para>
+    <sect2 id="g-hash-table-new">
+      <title>g_hash_table_new</title>
+      <funcsynopsis>
+       <funcdef>GHashTable *<function>g_hash_table_new</function></funcdef>
+       <paramdef>GHashFunc *<parameter>hash_func</parameter></paramdef>
+       <paramdef>GCompareFunc <parameter>key_compare_func</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para>Allocate a new <type>GHashTable</type> for use and return a 
+        pointer to the new hash table. If the table could not be allocated
+        for some reason a <type>NULL</type> is returned.</para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+          GHashTable  *hash_table;
+
+          hash_table = g_hash_table_new (g_str_hash, g_str_equal);
+
+          /* use the hash table */
+       </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashFunc <parameter>hash_func</parameter></para>
+       <para>A function pointer for the hashing function for this hash table.
+        </para>
+       <para>GCompareFunc <parameter>key_compare_func</parameter></para>
+       <para>A function pointer for comparing keys, used by the hash function
+        specified in the first argument</para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-destroy">
+      <title>g_hash_table_destroy</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_hash_table_destroy</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-insert">
+      <title>g_hash_table_insert</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_hash_table_insert</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+       <paramdef>gpointer <parameter>key</parameter></paramdef>
+       <paramdef>gpointer <parameter>value</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-remove">
+      <title>g_hash_table_remove</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_hash_table_remove</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+       <paramdef>gconstpointer <parameter>key</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-lookup">
+      <title>g_hash_table_lookup</title>
+      <funcsynopsis>
+       <funcdef>gpointer <function>g_hash_table_lookup</function></funcdef>
+       <paramdef>gconstpointer <parameter>key</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-lookup-extended">
+      <title>g_hash_table_lookup_extended</title>
+      <funcsynopsis>
+       <funcdef>gboolean <function>g_hash_table_lookup_extended</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+       <paramdef>gconstpointer <parameter>lookup_key</parameter></paramdef>
+       <paramdef>gpointer *<parameter>orig_key</parameter></paramdef>
+       <paramdef>gpointer *<parameter>value</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-freeze">
+      <title>g_hash_table_freeze</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_hash_table_freeze</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-thaw">
+      <title>g_hash_table_thaw</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_hash_table_thaw</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-foreach">
+      <title>g_hash_table_foreach</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_hash_table_foreach</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+       <paramdef>GHFunc <parameter>func</parameter></paramdef>
+       <paramdef>gpointer <parameter>user_data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-foreach-remove">
+      <title>g_hash_table_foreach_remove</title>
+      <funcsynopsis>
+       <funcdef>gint <function>g_hash_table_foreach_remove</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+       <paramdef>GHRFunc <parameter>func</parameter></paramdef>
+       <paramdef>gpointer <parameter>user_data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para> </para>
+      </sect3>
+    </sect2>
+    <sect2 id="g-hash-table-size">
+      <title>g_hash_table_size</title>
+      <funcsynopsis>
+       <funcdef>gint <function>g_hash_table_size</function></funcdef>
+       <paramdef>GHashTable *<parameter>hash_table</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para>Get the size of the hash table passed in the
+        <parameter>hash_table</parameter>.</para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <para>GHashTable *<parameter>hash_table</parameter></para>
+       <para>A pointer to a <type>GHashTable</type> hash_table previously
+        allocated.</para>
+      </sect3>
+    </sect2>
+  </sect1>
+</chapter>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:("glib.sgml" "book" "sect1" "")
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
diff --git a/docs/glib.sgml b/docs/glib.sgml
new file mode 100644 (file)
index 0000000..8a74685
--- /dev/null
@@ -0,0 +1,77 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
+<!entity memory SYSTEM "gmem.sgml">
+<!entity lists SYSTEM "glist.sgml">
+<!entity hashtables SYSTEM "ghash.sgml">
+<!entity caches SYSTEM "gcache.sgml">
+<!entity trees SYSTEM "gtree.sgml">
+<!entity timers SYSTEM "gtimer.sgml">
+<!entity defintions SYSTEM "defintions.sgml">
+]>
+<book>
+  <bookinfo>
+    <title>GLIB Developers' Reference Guide</title>
+    <authorgroup>
+      <author>
+       <firstname>Gregory</firstname>
+       <surname>McLean</surname>
+       <affiliation>
+         <address><email>gregm@comstar.net</email></address>
+       </affiliation>
+      </author>
+    </authorgroup>
+    <copyright>
+      <year>1998</year>
+      <holder>Gregory A. McLean</holder>
+    </copyright>
+    <legalnotice>
+      <para>This documentation is <emphasis>free</emphasis>; this means that
+      everyone is free to use it and free to redistribute it on a free basis.
+      This documentation is not in the public domain; it is a copyrighted
+      work and there are restrictions on its distribution, but these 
+      restrictions are designed to permit everything that a good cooperating
+      citizen would want to do. What is not allowed is to try and prevent
+      others from further sharing any version of this documentation that they
+      might get from you.</para>
+      <para>Specifically, we want to make sure that you have the right to 
+      give away copies of this documentation, that you receive the source
+      or else can get it if you want it, that you can change the documentation
+      or use pieces of it in new free documentation, and that you know you 
+      can legally do these things.</para>
+      <para>This documentation is being distributed in the hope that it will
+      be useful, but <emphasis>WITHOUT ANY WARRANTY</emphasis>; without the
+      even implied warranty of <emphasis>MERCHANTABILITY OR FITNESS FOR A 
+      PARTICULAR PURPOSE</emphasis>.</para>
+      <para>For the exact details of copying this library and the related
+      documentation please see the <emphasis>COPYING</emphasis> file that 
+      should have come with this library.</para>
+    </legalnotice>
+  </bookinfo>
+  <toc></toc>
+  <chapter id="introduction">
+    <title>Introduction</title>
+    
+    <sect1 id="whatis">
+      <title>What is GLIB</title>
+      <para>GLIB is a collection of useful functions designed with portabilty
+       and ease of use in mind. Many of the functions provided by GLIB can
+       be duplicated or are wrappers to standard <trademark>UNIX</trademark>
+       functions and system calls. The are provided in this library mainly
+       for consistancy and the write once philophsy.</para>
+  </chapter>
+  <!-- Definitions provided by glib -->
+    &defintions;
+  <!-- Documentation for memory handling in glib -->
+    &memory;
+  <!-- Documentation for lists in glib -->
+    &lists;
+  <!-- Documentation for hash tables in glib -->
+    &hashtables;
+  <!-- Documentation for cache handing in glib -->
+    &caches;
+  <!-- Balanced binary trees -->
+    &trees;
+  <!-- Timer documentation -->
+    &timers;
+  <index></index>
+</book>
+
diff --git a/docs/glist.sgml b/docs/glist.sgml
new file mode 100644 (file)
index 0000000..f0887b8
--- /dev/null
@@ -0,0 +1,900 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" []>
+<chapter id="list-functions">
+  <docinfo>
+    <title>List handling functions</title>
+  </docinfo>
+  <title>List handling functions</title>
+  <sect1 id="list-introduction">
+    <title>Introduction</title>
+    <para>When developing an application of any mangnitude there comes a time
+      when you will need to deal with lists of data within your application. To
+      this end GLIB provides some convient functions to handle both signly 
+      linked lists, and doubly linked lists. Facilities also exist for custom
+      list handling if the basic lists don't suite your purpose.</para>
+    <para>This chapter will cover the all the functions provided in GLIB for
+      list management.</para>
+  </sect1>
+  <sect1 id="list-allocators">
+    <title>List Allocators</title>
+    <para> Describe the list allocation functions...</para>
+    <sect2 id="g-list-allocator-new">
+      <title>g_list_allocator_new</title>
+      
+      <funcsynopsis>
+       <funcdef>GListAllocator *<function>g_list_allocator_new</function></funcdef>
+       <paramdef>GListAllocator *<parameter>allocator</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para>Describe this function</para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME!
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GListAllocator *<parameter>allocator</parameter></para>
+           <para>A list allocator pointer</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-list-allocator-free">
+      <title>g_list_allocator_free</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_list_allocator_free</function></funcdef>
+       <paramdef>GListAllocator *<parameter>allocator</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para>Describe this thing.</para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME!
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GListAllocator *<parameter>allocator</parameter></para>
+           <para>The pointer to list allocator to free.</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-set-allocator">
+      <title>g_slist_set_allocator</title>
+      <funcsynopsis>
+       <funcdef>GListAllocator *<function>g_slist_set_allocator</function></funcdef>
+       <paramdef>GListAllocator *<parameter>allocator</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para>This function will set the allocator for a singly linked list</para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+         FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GListAllocator *<parameter>allocator</parameter></para>
+           <para>The pointer to the list allocator to use for the signly 
+             linked lists allocations.</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-list-set-allocator">
+      <title>g_list_set_allocator</title>
+      <funcsynopsis>
+       <funcdef>GListAllocator *<function>g_list_set_allocator</function></funcdef>
+       <paramdef>GListAllocator *<parameter>allocator</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para>This function will set the allocator for a doubly linked list</para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+         FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GListAllocator *<parameter>allocator</parameter></para>
+           <para>The pointer to the list allocator to use for the doubly 
+             linked list allocations.</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+  </sect1>
+  <!-- SINGLY LINKED LISTS -->
+  <sect1 id="signly-linked-lists">
+    <title>Signly linked lists</title>
+    <para>Signly linked lists!</para>
+    <sect2 id="g-slist-alloc">
+      <title>g_slist_alloc</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_alloc</function></funcdef>
+       <paramdef>void<parameter>none</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+         <itemizedlist>
+         <listitem>
+           <para>void <parameter>(null)</parameter></para>
+           <para>This function takes no arguments</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-free">
+      <title>g_slist_free</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_free</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GSList *<parameter>list</parameter></para>
+           <para>A pointer to a <type>GSList</type> structure.</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-free-1">
+      <title>g_slist_free_1</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_free_1</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GSList *<parameter>list</parameter></para>
+           <para>A pointer to a <type>GSList</type> structure.</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-append">
+      <title>g_slist_append</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_append</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para>Append the <parameter>data</parameter> to the list given
+         in the <parameter>list</parameter> argument. This function will
+         store the pointer to the data and return a new list pointer 
+         with the new element attached to the end.</para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting role="C">
+          FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GSList *<parameter>list</parameter></para>
+           <para>The pointer to the list to append the 
+             <parameter>data</parameter>item to. This can be <type>NULL</type>
+             in the case of a new list.</para>
+         </listitem>
+         <listitem>
+           <para>gpointer <parameter>data</parameter></para>
+           <para>A pointer to the data to store in this list element</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-preppend">
+      <title>g_slist_preppend</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_preppend</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GSList *<parameter>list</parameter></para>
+           <para>A pointer to a <type>GSList</type> structure.</para>
+         </listitem>
+         <listitem>
+           <para>gpointer <parameter>data</parameter></para>
+           <para>A pointer to the data for this list element</para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-insert">
+      <title>g_slist_insert</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_insert</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+       <paramdef>gint <parameter>position</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+         <itemizedlist>
+           <listitem>
+             <para>GSList *<parameter>list</parameter></para>
+             <para>A pointer to a <type>GSList</type> structure.</para>
+           </listitem>
+         </itemizedlist>
+       </sect3>
+    </sect2>
+    <sect2 id="g-slist-insert-sorted">
+      <title>g_slist_insert_sorted</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_insert_sorted</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+       <paramdef>GCompareFunc <parameter>func</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-concat">
+      <title>g_slist_concat</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_concat</function></funcdef>
+       <paramdef>GSList *<parameter>list1</parameter></paramdef>
+       <paramdef>GSList *<parameter>list2</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-remove">
+      <title>g_slist_remove</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_remove</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-remove-link">
+      <title>g_slist_remove_link</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_remove_link</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>GSList *<parameter>llink</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-reverse">
+      <title>g_slist_reverse</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_reverse</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-nth">
+      <title>g_slist_nth</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_nth</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>guint <parameter>n</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-find">
+      <title>g_slist_find</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_find</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-find-custom">
+      <title>g_slist_find_custom</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_find_custom</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+       <paramdef>GCompareFunc <parameter>func</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-position">
+      <title>g_slist_position</title>
+      <funcsynopsis>
+       <funcdef>gint <function>g_slist_position</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>GSList *<parameter>llink</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-index">
+      <title>g_slist_index</title>
+      <funcsynopsis>
+       <funcdef>gint <function>g_slist_index</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>gpointer <parameter>data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-last">
+      <title>g_slist_last</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_last</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-length">
+      <title>g_slist_length</title>
+      <funcsynopsis>
+       <funcdef>guint <function>g_slist_length</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-foreach">
+      <title>g_slist_foreach</title>
+      <funcsynopsis>
+       <funcdef>void <function>g_slist_foreach</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>GFunc <parameter>func</parameter></paramdef>
+       <paramdef>gpointer <parameter>user_data</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-nth-data">
+      <title>g_slist_nth_data</title>
+      <funcsynopsis>
+       <funcdef>gpointer <function>g_slist_nth_data</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+       <paramdef>guint <parameter>n</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-slist-next">
+      <title>g_slist_next</title>
+      <funcsynopsis>
+       <funcdef>GSList *<function>g_slist_next</function></funcdef>
+       <paramdef>GSList *<parameter>list</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+      </sect2>
+    </sect1>
+
+<!-- DOUBLY LINKED LISTS -->
+
+    <sect1 id="doubly-linked-lists">
+      <title>Doubly linked lists</title>
+    <para>Doubly linked lists!</para>
+      <sect2 id="g-list-alloc">
+      <title>g_list_alloc</title>
+      <funcsynopsis>
+       <funcdef>GList *<function>g_list_alloc</function></funcdef>
+       <paramdef>void<parameter>none</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+          FIXME
+        </programlisting>
+      </sect3>
+    </sect2>
+    <sect2 id="g-list-free">
+      <title>g_list_free</title>
+      <funcsynopsis>
+       <funcdef>GList *<function>g_list_free</function></funcdef>
+       <paramdef>GList *<parameter>list</parameter></paramdef>
+      </funcsynopsis>
+       <sect3><title>Description</title>
+       <para>This function will destroy and free the resources used by
+         the GList structure. It will not free the resources consumed by
+         the data pointers in the list that is up to the application to 
+         free.</para>
+      </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           GList   *list;
+           
+           /* add elements and otherwise manipulate the list */
+           /* once finished with the list free all elements of the list */
+           /* Then free the list structure itself */
+           g_list_free (list);
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <itemizedlist>
+           <listitem>
+             <para>GList *<parameter>list</parameter></para>
+             <para>A pointer to the GList structure to free</para>
+           </listitem>
+         </itemizedlist>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-free-1">
+       <title>g_list_free_1</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_free_1</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-append">
+       <title>g_list_append</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_append</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-preppend">
+       <title>g_list_preppend</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_preppend</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-insert">
+       <title>g_list_insert</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_insert</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+         <paramdef>gint <parameter>position</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-insert-sorted">
+       <title>g_list_insert_sorted</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_insert_sorted</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+         <paramdef>GCompareFunc <parameter>func</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-concat">
+       <title>g_list_concat</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_concat</function></funcdef>
+         <paramdef>GList *<parameter>list1</parameter></paramdef>
+         <paramdef>GList *<parameter>list2</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-remove">
+       <title>g_list_remove</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_remove</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-remove-link">
+       <title>g_list_remove_link</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_remove_link</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>GList *<parameter>llink</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-reverse">
+       <title>g_list_reverse</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_reverse</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-nth">
+       <title>g_list_nth</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_nth</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>guint <parameter>n</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-find">
+       <title>g_list_find</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_find</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-find-custom">
+       <title>g_list_find_custom</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_find_custom</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+         <paramdef>GCompareFunc <parameter>func</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-position">
+       <title>g_list_position</title>
+       <funcsynopsis>
+         <funcdef>gint <function>g_list_position</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>GList *<parameter>llink</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-index">
+       <title>g_list_index</title>
+       <funcsynopsis>
+         <funcdef>gint <function>g_list_index</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>gpointer <parameter>data</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-last">
+       <title>g_list_last</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_last</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-length">
+       <title>g_list_length</title>
+       <funcsynopsis>
+         <funcdef>guint <function>g_list_length</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-foreach">
+       <title>g_list_foreach</title>
+       <funcsynopsis>
+         <funcdef>void <function>g_list_foreach</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>GFunc <parameter>func</parameter></paramdef>
+         <paramdef>gpointer <parameter>user_data</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-nth-data">
+       <title>g_list_nth_data</title>
+       <funcsynopsis>
+         <funcdef>gpointer <function>g_list_nth_data</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+         <paramdef>guint <parameter>n</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+      <sect2 id="g-list-previous">
+       <title>g_list_previous</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_previous</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      <sect2 id="g-list-next">
+       <title>g_list_next</title>
+       <funcsynopsis>
+         <funcdef>GList *<function>g_list_next</function></funcdef>
+         <paramdef>GList *<parameter>list</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para> </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting>
+           FIXME
+         </programlisting>
+       </sect3>
+      </sect2>
+    </sect1>
+  </chapter>
+  <!-- Keep this comment at the end of the file
+  Local variables:
+  mode: sgml
+  sgml-omittag:t
+  sgml-shorttag:t
+  sgml-minimize-attributes:nil
+  sgml-always-quote-attributes:t
+  sgml-indent-step:2
+  sgml-indent-data:t
+  sgml-parent-document:("glib.sgml" "book" "sect1" "")
+  sgml-exposed-tags:nil
+  sgml-local-catalogs:nil
+  sgml-local-ecat-files:nil
+  End:
+  -->
diff --git a/docs/gmem.sgml b/docs/gmem.sgml
new file mode 100644 (file)
index 0000000..d78ea44
--- /dev/null
@@ -0,0 +1,181 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" []>
+<chapter id="memory-functions">
+  <docinfo>
+    <title>Memory handling functions</title>
+  </docinfo>
+  <title>Memory Handling functions</title>
+  <sect1 id="memory-introduction">
+    <title>Introduction</title>
+    <para> </para>
+    </sect1>
+  <sect1 id="standard-handlers">
+    <title>Standard memory handlers</title>
+    <para>This section describes the normal flat memory handling functions
+    provided by GLIB.</para>
+      <sect2 id="g-malloc">
+       <title>g_malloc</title>
+       <funcsynopsis>
+         <funcdef>gpointer <function>g_malloc</function</funcdef>
+         <paramdef>gulong <parameter>size</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>Allocate a piece of memory and return the pointer to the
+           newly allocated memory. This function does not clear the memory.
+         </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <itemizedlist>
+           <listitem>
+             <para>gulong <parameter>size</parameter></para>
+             <para>The size of the requested piece of memory</para>
+           </listitem>
+         </itemizedlist>
+       </sect3>
+      </sect2>
+      <sect2 id="g-malloc0">
+       <title>g_malloc0</title>
+       <funcsynopsis>
+         <funcdef>gpointer <function>g_malloc0</function></funcdef>
+         <paramdef>gulong <parameter>size</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>Allocate a piece of memory and, clear it, returning a 
+           pointer to the freshly allocated piece. <type>NULL</type> is
+           returned on failure.</para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <itemizedlist>
+           <listitem>
+             <para>gulong <parameter>size</parameter></para>
+             <para>The size of the requested piece of memory.</para>
+           </listitem>
+         </itemizedlist>
+       </sect3>
+      </sect2>
+      <sect2 id="g-realloc">
+       <title>g_realloc</title>
+       <funcsynopsis>
+         <funcdef>gpointer <function>g_realloc</function></funcdef>
+         <paramdef>gpointer <parameter>mem</parameter></paramdef>
+         <paramdef>gulong <parameter>size</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>Change the size of a previously allocated piece of memory.
+         </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <itemizedlist>
+           <listitem>
+             <para>gpointer <parameter>mem</parameter></para>
+             <para>A pointer to the allocated memory</para>
+           </listitem>
+           <listitem>
+             <para>gulong <parameter>size</parameter></para>
+             <para>The amount to change the allocation by.</para>
+           </listitem>
+         </itemizedlist>
+       </sect3>
+      </sect2>
+  </sect1>
+  <sect1 id="array-handlers">
+    <title>Array memory handlers</title>
+    <para>This section will describe the array memory handling functions
+    provided by GLIB</para>
+  </sect1>
+  <sect1 id="chunk-handlers">
+    <title>Chunk memory handlers</title>
+      <para>Memory chunks are used to allocate pieces of memory which are always
+       the same size. Lists are a good example of such a data type. The memory
+       chunk allocates and frees blocks of memory as needed. Just be sure to
+       call <function>g_mem_chunk_free</function> and not 
+       <function>g_free</function> on data allocated in a mem chunk. Calling
+       <function>g_free</function> will most likely cause a segmentation fault
+       somewhere that will be dificult to track down.
+      </para>
+    <para>The GLIB library allocates and tracks memory chunks with the opaque
+      data type <type>GMemChunk</type>.</para>
+    <para>Currently there are two types of memory chunks you can allocate and
+     manage with the functions documented in here.</para>
+    <itemizedlist>
+       <listitem>
+         <para><type>G_ALLOC_ONLY</type></para>
+         <para>The memory chunks of this type only allocate memory. The free
+          operations are interpreted as a <emphasis>no-op</emphasis> Also
+           memory chunks of thus type save four bytes per atom. They are
+          also useful for lists which use the MemChunk to allocate memory
+           but are also part of the MemChunk implementation.</para>
+       </listitem>
+       <listitem>
+         <para><type>G_ALLOC_AND_FREE</type></para>
+         <para>Memory chunks of this type can allocate and free memory.</para>
+       </listitem>
+      </itemizedlist>
+      <para>This section of the reference manual will detail out the functions
+       provided by GLIB for memory chunk handling.</para>
+      <sect2 id="g-blow-chunks">
+       <title>g_blow_chunks</title>
+       <funcsynopsis>
+         <funcdef>void <function>g_blow_chunks</function></funcdef>
+         <paramdef>void <parameter>(null)</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>The <function>g_blow_chunks</function> simply compresses all
+           the chunks of memory. This operation consists of freeing every
+           memory area that should be freed, but which we haven't gotten 
+           around to doing yet. And, no, <function>g_blow_chunks</function>
+           doesn't following the naming scheme, but it is a much better name
+           then <emphasis>g_mem_chunk_clean_all</emphasis> or something 
+           similar.</para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <itemizedlist>
+           <listitem>
+             <para>void <parameter>(null)</parameter></para>
+             <para>This function takes and returns no values or aruments.
+               </para>
+             </listitem>
+         </itemizedlist>
+       </sect3>
+      </sect2>
+  </sect1>
+</chapter>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:("glib.sgml" "book" "sect1" "")
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
+
+
+
diff --git a/docs/gtimer.sgml b/docs/gtimer.sgml
new file mode 100644 (file)
index 0000000..027588b
--- /dev/null
@@ -0,0 +1,214 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" []>
+<chapter id="timer-functions">
+  <docinfo>
+    <title>Timer functions</title>
+  </docinfo>
+  <title>Timer functions</title>
+  <sect1 id="timer-introduction">
+    <title>Introduction</title>
+    <para> </para>
+    </sect1>
+  <sect1 id="timers">
+    <title>Timer functions</title>
+    <para>This section describes the timer functions that are provided by 
+    GLIB.</para>
+      <sect2 id="g-timer-new">
+       <title>g_timer_new</title>
+       <funcsynopsis>
+         <funcdef>GTimer *<function>g_timer_new</function></funcdef>
+         <paramdef>void <parameter>(null) </parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>Allocate a new timer and return the pointer to the newly 
+          allocated timer structure. If enough resources are not available
+         for a new timer structure <type>NULL</type> will be returned.
+         This function will also start the timer once it has been allocated.
+         </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           GTimer  *timer;
+           
+           timer = g_timer_new ();
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <itemizedlist>
+           <listitem>
+             <para>void <parameter>(null)</parameter></para>
+             <para>This function takes no arguments</para>
+           </listitem>
+         </itemizedlist>
+       </sect3>
+      </sect2>
+      <sect2 id="g-timer-destroy">
+       <title>g_timer_destroy</title>
+       <funcsynopsis>
+         <funcdef>void <function>g_timer_destroy</function></funcdef>
+         <paramdef>GTimer *<parameter>timer</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>This will destroy and free up the resources used by the 
+          timer previously created with g_timer_new(). You should call this
+          function when your done with the timer in question.</para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           GTimer   *timer;
+
+           timer = g_timer_new ();
+
+           /* do something useful with the timer */
+
+           g_timer_destroy (timer);
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <para>GTimer *<parameter>timer</parameter></para>
+         <para>The pointer to the <type>GTimer</type> structre you wish to 
+           destroy.</para>
+         </sect3>
+      </sect2>
+      <sect2 id="g-timer-start">
+       <title>g_timer_start</title>
+       <funcsynopsis>
+         <funcdef>void <function>g_timer_start</function></funcdef>
+         <paramdef>GTimer *<parameter>timer</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>This will re-start the previously allocated timer running.
+         </para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           GTimer   *timer;
+
+           timer = g_timer_new ();
+           g_timer_stop (timer);
+
+           /* do stuff we don't want to time */
+
+           g_timer_start (timer);
+
+           /* do the stuff we want timed */
+
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <para>GTimer *<parameter>timer</parameter></para>
+         <para>The timer to start that has been previously allocted with 
+           g_timer_new ();
+         </para>
+       </sect3>
+      </sect2>
+      <sect2 id="g-timer-stop">
+       <title>g_timer_stop</title>
+       <funcsynopsis>
+         <funcdef>void <function>g_timer_stop</function></funcdef>
+         <paramdef> GTimer *<parameter>timer</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>This will stop a running timer.</para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           GTimer    *timer;
+
+           /* allocate and start new timer */
+           timer = g_timer_new ();
+
+           /* do anything you want timed with this timer */
+        
+           g_timer_stop (timer);     /* And stop the timer at the end */
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <para>GTimer *<parameter>timer</parameter></para>
+         <para>A pointer to the previously allocated timer structre to
+           stop.</para>
+       </sect3>
+      </sect2>
+      <sect2 id="g-timer-reset">
+       <title>g_timer_reset</title>
+       <funcsynopsis>
+         <funcdef>void <function>g_timer_reset</function></funcdef>
+         <paramdef>GTimer *<parameter>timer</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>Reset a previously allocated timer to prepare to time 
+           another sequence of events.</para>
+       </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           GTimer   *timer;
+           
+           /* allocate a timer */
+           timer = g_timer_new ();
+           
+           /* timed function loop or what have you */
+           g_timer_stop (timer);
+           g_timer_reset (timer);
+           g_timer_start (timer);
+           /* loop here with a clean timer */
+
+           g_timer_destroy (timer);   /* done with the timer */
+         </programlisting>
+       </sect3>
+       <sect3><title>Parameters</title>
+         <para>GTimer *<parameter>timer</parameter></para>
+         <para>A pointer to a previously allocated timer structure.</para>
+       </sect3>
+      </sect2>
+      <sect2 id="g-timer-elapsed">
+       <title>g_timer_elapsed</title>
+       <funcsynopsis>
+         <funcdef>gdouble <function>g_timer_elapsed</function></funcdef>
+         <paramdef>GTimer *<parameter>timer</parameter></paramdef>
+         <paramdef>gulong *<parameter>microseconds</parameter></paramdef>
+       </funcsynopsis>
+       <sect3><title>Description</title>
+         <para>Get the elapsed time between all g_timer_start() and the 
+           g_timer_stop() function calls. The return value of this function
+           is in seconds and the <parameter>microseconds</parameter> argument
+           will contain the microseconds value. If you are not intrested in
+           the microseconds value just pass a <type>NULL</type> as the 
+           second parameter.</para>
+         </sect3>
+       <sect3><title>Usage</title>
+         <programlisting role="C">
+           GTimer    *timer
+           gdouble   seconds;
+           gulong    microseconds;
+
+           timer = g_timer_new ();
+           
+           /* do something that you want timed. */
+           
+           g_timer_stop (timer);
+
+           seconds = g_timer_elapsed (timer, \&microseconds);
+
+           g_print ("Elapsed time was %f seconds and %f microseconds\n",
+                    seconds, microseconds);
+
+           g_timer_destroy (timer);
+         </programlisting>
+       </sect3>
+      </sect2>
+    </sect1>
+ </chapter>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:("glib.sgml" "book" "sect1" "")
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
diff --git a/docs/gtree.sgml b/docs/gtree.sgml
new file mode 100644 (file)
index 0000000..a04cf85
--- /dev/null
@@ -0,0 +1,57 @@
+<!doctype chapter PUBLIC "-//Davenport//DTD DocBook V3.0//EN" []>
+<chapter id="gtree-functions">
+  <docinfo>
+    <title>Balanced binary trees</title>
+  </docinfo>
+  <title>Balanced binary trees</title>
+  <sect1 id="tree-introduction">
+    <title>Introduction</title>
+    <para> </para>
+  </sect1>
+  <sect1 id="tree-functions">
+    <title>Binary tree functions</title>
+    <para> </para>
+    <sect2 id="g-tree-new">
+      <title>g_tree_new</title>
+      <funcsynopsis>
+       <funcdef>GTree *<function>g_tree_new</function></funcdef>
+       <paramdef>GCompareFunc <parameter>key_compare_func</parameter></paramdef>
+      </funcsynopsis>
+      <sect3><title>Description</title>
+       <para> </para>
+      </sect3>
+      <sect3><title>Usage</title>
+       <programlisting>
+
+        </programlisting>
+      </sect3>
+      <sect3><title>Parameters</title>
+       <itemizedlist>
+         <listitem>
+           <para>GCompareFunc <parameter>key_compare_func</parameter></para>
+           <para> </para>
+         </listitem>
+       </itemizedlist>
+      </sect3>
+    </sect2>
+  </sect1>
+  <sect1 id="node-functions">
+    <title>Node functions</title>
+    <para> </para>
+  </sect1>
+</chapter>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:("glib.sgml" "book" "sect1" "")
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
\ No newline at end of file