+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
+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
+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
+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
+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
+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
+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
+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
--- /dev/null
+<!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>
+
--- /dev/null
+<!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
--- /dev/null
+<!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:
+-->
--- /dev/null
+<!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>
+
--- /dev/null
+<!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:
+ -->
--- /dev/null
+<!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:
+-->
+
+
+
+
+
--- /dev/null
+<!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, \µseconds);
+
+ 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:
+-->
--- /dev/null
+<!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