head -n 4 ChangeLog
authorOwen Taylor <otaylor@src.gnome.org>
Wed, 6 Sep 2000 00:04:49 +0000 (00:04 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Wed, 6 Sep 2000 00:04:49 +0000 (00:04 +0000)
47 files changed:
docs/reference/ChangeLog
docs/reference/glib/Makefile.am
docs/reference/glib/autogen.sh [deleted file]
docs/reference/glib/configure.in [deleted file]
docs/reference/glib/glib-decl.txt
docs/reference/glib/glib-overrides.txt
docs/reference/glib/glib-sections.txt
docs/reference/glib/glib/ChangeLog
docs/reference/glib/glib/Makefile.am
docs/reference/glib/tmpl/allocators.sgml
docs/reference/glib/tmpl/arrays.sgml
docs/reference/glib/tmpl/arrays_byte.sgml
docs/reference/glib/tmpl/arrays_pointer.sgml
docs/reference/glib/tmpl/byte_order.sgml
docs/reference/glib/tmpl/caches.sgml
docs/reference/glib/tmpl/completion.sgml
docs/reference/glib/tmpl/datalist.sgml
docs/reference/glib/tmpl/datasets.sgml
docs/reference/glib/tmpl/date.sgml
docs/reference/glib/tmpl/hash_tables.sgml
docs/reference/glib/tmpl/hooks.sgml
docs/reference/glib/tmpl/iochannels.sgml
docs/reference/glib/tmpl/limits.sgml
docs/reference/glib/tmpl/linked_lists_double.sgml
docs/reference/glib/tmpl/linked_lists_single.sgml
docs/reference/glib/tmpl/macros.sgml
docs/reference/glib/tmpl/macros_misc.sgml
docs/reference/glib/tmpl/main.sgml
docs/reference/glib/tmpl/memory.sgml
docs/reference/glib/tmpl/memory_chunks.sgml
docs/reference/glib/tmpl/messages.sgml
docs/reference/glib/tmpl/misc_utils.sgml
docs/reference/glib/tmpl/modules.sgml
docs/reference/glib/tmpl/quarks.sgml
docs/reference/glib/tmpl/relations.sgml
docs/reference/glib/tmpl/scanner.sgml
docs/reference/glib/tmpl/string_chunks.sgml
docs/reference/glib/tmpl/string_utils.sgml
docs/reference/glib/tmpl/strings.sgml
docs/reference/glib/tmpl/threads.sgml
docs/reference/glib/tmpl/timers.sgml
docs/reference/glib/tmpl/trees-binary.sgml
docs/reference/glib/tmpl/trees-nary.sgml
docs/reference/glib/tmpl/type_conversion.sgml
docs/reference/glib/tmpl/types.sgml
docs/reference/glib/tmpl/warnings.sgml
docs/reference/glib/tmpl/windows.sgml

index 6f682b1bad9d7ed307c63e2128277fceb3faed5c..caf9f48bcc323b7a88bb00a57852c80de0144787 100644 (file)
@@ -1,3 +1,8 @@
+Tue Sep  5 20:03:25 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * Moved into glib source tree, updated glib-sections.txt
+       and Makefile.am for glib-1.3.x.
+
 2000-07-01  Damon Chaplin  <damon@helixcode.com>
 
        * tmpl/string_utils.sgml: updated g_strndup.
index 0c4da6277db6def253e37bf524d8ae10d39e4b42..4fea547e11b95dae15afa49f1cbe166b44842997 100644 (file)
@@ -6,42 +6,111 @@ DOC_MODULE=glib
 # The top-level SGML file.
 DOC_MAIN_SGML_FILE=glib-docs.sgml
 
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR=$(top_srcdir)
 
 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
+tmpl_sources =                         \
+       tmpl/allocators.sgml            \
+       tmpl/arrays.sgml                \
+       tmpl/arrays_byte.sgml           \
+       tmpl/arrays_pointer.sgml        \
+       tmpl/byte_order.sgml            \
+       tmpl/caches.sgml                \
+       tmpl/completion.sgml            \
+       tmpl/datalist.sgml              \
+       tmpl/datasets.sgml              \
+       tmpl/date.sgml                  \
+       tmpl/glib-unused.sgml           \
+       tmpl/hash_tables.sgml           \
+       tmpl/hooks.sgml                 \
+       tmpl/iochannels.sgml            \
+       tmpl/limits.sgml                \
+       tmpl/linked_lists_double.sgml   \
+       tmpl/linked_lists_single.sgml   \
+       tmpl/macros.sgml                \
+       tmpl/macros_misc.sgml           \
+       tmpl/main.sgml                  \
+       tmpl/memory.sgml                \
+       tmpl/memory_chunks.sgml         \
+       tmpl/messages.sgml              \
+       tmpl/misc_utils.sgml            \
+       tmpl/modules.sgml               \
+       tmpl/quarks.sgml                \
+       tmpl/relations.sgml             \
+       tmpl/scanner.sgml               \
+       tmpl/string_chunks.sgml         \
+       tmpl/string_utils.sgml          \
+       tmpl/strings.sgml               \
+       tmpl/threads.sgml               \
+       tmpl/timers.sgml                \
+       tmpl/trees-binary.sgml          \
+       tmpl/trees-nary.sgml            \
+       tmpl/type_conversion.sgml       \
+       tmpl/types.sgml                 \
+       tmpl/warnings.sgml              \
+       tmpl/windows.sgml
+
+glib_docdir = $(HTML_DIR)
+glib_doc_DATA =                                \
+       glib-decl.txt                   \
+       glib-sections.txt               \
+       glib-overrides.txt
+
+EXTRA_DIST =                           \
+       $(glib_doc_DATA)
+
+html/book1.html: sgml/glib-doc.bottom
+       $(MAKE) html
+
+sgml/glib-doc.bottom: $(tmpl_sources)
+       $(MAKE) sgml
+
 scan:
-       gtkdoc-scan --module=$(DOC_MODULE) `glib-config --prefix`/include/glib.h `glib-config --prefix`/include/gmodule.h `glib-config --prefix`/lib/glib/include/glibconfig.h 
+       -(cd $(srcdir) \
+       && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="config.h gmoduleconf.h gunidecomp.h gunichartables.h glibconfig-sysdefs.h" )
 
 templates: scan
-       gtkdoc-mktmpl --module=$(DOC_MODULE)
+       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
 
 sgml:
-       gtkdoc-mkdb --module=$(DOC_MODULE)
+       cd $(srcdir) \
+       && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
 
 html:
-       if ! test -d html ; then mkdir html ; fi
-       -cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       test -d $(srcdir)/html || mkdir $(srcdir)/html
+       -cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 
 clean-local:
-       rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt
+       rm -f *~ *.bak *.signals *-unused.txt
 
 maintainer-clean-local: clean
-       rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt 
+       cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
 
 install-data-local:
-       install -d -m 0755 $(TARGET_DIR)
-       install -m 0644 html/*.html $(TARGET_DIR)
-       install -m 0644 html/index.sgml $(TARGET_DIR)
-       gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)
-
-EXTRA_DIST = \
-       $(DOC_MAIN_SGML_FILE) \
-       $(DOC_MODULE)-sections.txt \
-       glib-decl.txt \
-       glib-overrides.txt
+       $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
+       (installfiles=`echo $(srcdir)/html/*.html`; \
+       if test "$$installfiles" = '$(srcdir)/html/*.html'; \
+       then echo '-- Nothing to install' ; \
+       else \
+         for i in $$installfiles; do \
+           echo '-- Installing '$$i ; \
+           $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
+         done; \
+         echo '-- Installing $(srcdir)/html/index.sgml' ; \
+         $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
+         echo '-- Fixing Crossreferences' ; \
+         gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)|| true; \
+       fi)
 
 dist-hook:
+       mkdir $(distdir)/html
+       mkdir $(distdir)/sgml
        mkdir $(distdir)/tmpl
-       cp -p tmpl/*.sgml $(distdir)/tmpl
+       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
+       -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
+       -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
+       -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
 
 .PHONY : html sgml templates scan
diff --git a/docs/reference/glib/autogen.sh b/docs/reference/glib/autogen.sh
deleted file mode 100755 (executable)
index 60bcd89..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-ORIGDIR=`pwd`
-cd $srcdir
-PROJECT=GLib-Reference
-TEST_TYPE=-f
-FILE=glib-sections.txt
-
-DIE=0
-
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
-       echo
-       echo "You must have autoconf installed to compile $PROJECT."
-       echo "Download the appropriate package for your distribution,"
-       echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
-       DIE=1
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-       echo
-       echo "You must have automake installed to compile $PROJECT."
-       echo "Get ftp://sourceware.cygnus.com/pub/automake/automake-1.4.tar.gz"
-       echo "(or a newer version if it is available)"
-       DIE=1
-}
-
-if test "$DIE" -eq 1; then
-       exit 1
-fi
-
-test $TEST_TYPE $FILE || {
-       echo "You must run this script in the top-level $PROJECT directory"
-       exit 1
-}
-
-if test -z "$*"; then
-       echo "I am going to run ./configure with no arguments - if you wish "
-        echo "to pass any to it, please specify them on the $0 command line."
-fi
-
-aclocal $ACLOCAL_FLAGS
-automake -a $am_opt
-autoconf
-cd $ORIGDIR
-
-$srcdir/configure --enable-maintainer-mode "$@"
-
-echo 
-echo "Now type 'make' to compile $PROJECT."
diff --git a/docs/reference/glib/configure.in b/docs/reference/glib/configure.in
deleted file mode 100644 (file)
index 009e186..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(glib-sections.txt)
-
-AM_INIT_AUTOMAKE(glib-reference, 1.1.3)
-
-AC_ARG_WITH(html-dir, [  --with-html-dir=PATH path to installed docs ])
-
-AC_ISC_POSIX
-AC_PROG_CC
-
-if test "x$with_html_dir" = "x" ; then
-  HTML_DIR='${datadir}/gtk-doc/html'
-else
-  HTML_DIR=$with_html_dir
-fi
-
-AC_SUBST(HTML_DIR)
-
-AC_OUTPUT([Makefile])
-
index 4a57bf92e93cb12736fc5f9c97de710bb411ff1b..f8dd681b827e9ba25d027404840d96babf6a3c4a 100644 (file)
@@ -1,3 +1,91 @@
+<STRUCT>
+<NAME>GError</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GError</NAME>
+struct GError
+{
+  GQuark       domain;
+  gint         code;
+  gchar       *message;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_error_new</NAME>
+<RETURNS>GError *</RETURNS>
+GQuark         domain,gint           code,const gchar   *format,...
+</FUNCTION>
+<FUNCTION>
+<NAME>g_error_new_literal</NAME>
+<RETURNS>GError *</RETURNS>
+GQuark         domain,gint           code,const gchar   *message
+</FUNCTION>
+<FUNCTION>
+<NAME>g_error_free</NAME>
+<RETURNS>void  </RETURNS>
+GError        *error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_error_copy</NAME>
+<RETURNS>GError *</RETURNS>
+const GError  *error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_error_matches</NAME>
+<RETURNS>gboolean  </RETURNS>
+const GError  *error,GQuark         domain,gint           code
+</FUNCTION>
+<FUNCTION>
+<NAME>g_set_error</NAME>
+<RETURNS>void  </RETURNS>
+GError       **err,GQuark         domain,gint           code,const gchar   *format,...
+</FUNCTION>
+<FUNCTION>
+<NAME>g_propagate_error</NAME>
+<RETURNS>void  </RETURNS>
+GError       **dest,GError        *src
+</FUNCTION>
+<FUNCTION>
+<NAME>g_clear_error</NAME>
+<RETURNS>void  </RETURNS>
+GError       **err
+</FUNCTION>
+<MACRO>
+<NAME>G_GNUC_EXTENSION</NAME>
+#  define G_GNUC_EXTENSION __extension__
+</MACRO>
+<MACRO>
+<NAME>G_GNUC_EXTENSION</NAME>
+#  define G_GNUC_EXTENSION
+</MACRO>
+<MACRO>
+<NAME>G_E</NAME>
+#define G_E     2.7182818284590452354E0
+</MACRO>
+<MACRO>
+<NAME>G_LN2</NAME>
+#define G_LN2   6.9314718055994530942E-1
+</MACRO>
+<MACRO>
+<NAME>G_LN10</NAME>
+#define G_LN10  2.3025850929940456840E0
+</MACRO>
+<MACRO>
+<NAME>G_PI</NAME>
+#define G_PI    3.14159265358979323846E0
+</MACRO>
+<MACRO>
+<NAME>G_PI_2</NAME>
+#define G_PI_2  1.57079632679489661923E0
+</MACRO>
+<MACRO>
+<NAME>G_PI_4</NAME>
+#define G_PI_4  0.78539816339744830962E0
+</MACRO>
+<MACRO>
+<NAME>G_SQRT2</NAME>
+#define G_SQRT2 1.4142135623730950488E0
+</MACRO>
 <MACRO>
 <NAME>G_DIR_SEPARATOR</NAME>
 #define G_DIR_SEPARATOR '\\'
 </MACRO>
 <MACRO>
 <NAME>NULL</NAME>
-#define        NULL    ((void*) 0)
+#    define NULL        (0L)
+</MACRO>
+<MACRO>
+<NAME>NULL</NAME>
+#    define NULL        ((void*) 0)
 </MACRO>
 <MACRO>
 <NAME>FALSE</NAME>
 #define CLAMP(x, low, high)  (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
 </MACRO>
 <MACRO>
+<NAME>G_STRINGIFY</NAME>
+#define G_STRINGIFY(macro_or_string)   G_STRINGIFY_ARG (macro_or_string)
+</MACRO>
+<MACRO>
+<NAME>G_STRINGIFY_ARG</NAME>
+#define        G_STRINGIFY_ARG(contents)       #contents
+</MACRO>
+<MACRO>
+<NAME>G_STRLOC</NAME>
+#  define G_STRLOC     __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()"
+</MACRO>
+<MACRO>
+<NAME>G_STRLOC</NAME>
+#  define G_STRLOC     __FILE__ ":" G_STRINGIFY (__LINE__)
+</MACRO>
+<MACRO>
+<NAME>G_N_ELEMENTS</NAME>
+#define G_N_ELEMENTS(arr)              (sizeof (arr) / sizeof ((arr)[0]))
+</MACRO>
+<MACRO>
 <NAME>G_VA_COPY</NAME>
 #  define G_VA_COPY(ap1, ap2)    (*(ap1) = *(ap2))
 </MACRO>
 <MACRO>
 <NAME>G_STRUCT_OFFSET</NAME>
 #define G_STRUCT_OFFSET(struct_type, member)   \
-    ((gulong) ((gchar*) &((struct_type*) 0)->member))
+    ((glong) ((guint8*) &((struct_type*) 0)->member))
 </MACRO>
 <MACRO>
 <NAME>G_STRUCT_MEMBER_P</NAME>
 #define G_STRUCT_MEMBER_P(struct_p, struct_offset)   \
-    ((gpointer) ((gchar*) (struct_p) + (gulong) (struct_offset)))
+    ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
 </MACRO>
 <MACRO>
 <NAME>G_STRUCT_MEMBER</NAME>
 } G_STMT_END
 </MACRO>
 <MACRO>
-<NAME>g_string</NAME>
-#define g_string(x) #x
-</MACRO>
-<MACRO>
 <NAME>g_assert</NAME>
 #define g_assert(expr)
 </MACRO>
 #define g_return_val_if_fail(expr,val)
 </MACRO>
 <MACRO>
+<NAME>g_return_if_reached</NAME>
+#define g_return_if_reached() return
+</MACRO>
+<MACRO>
+<NAME>g_return_val_if_reached</NAME>
+#define g_return_val_if_reached(val) return (val)
+</MACRO>
+<MACRO>
 <NAME>g_return_if_fail</NAME>
 #define g_return_if_fail(expr)         G_STMT_START{                   \
      if (!(expr))                                                      \
        {                                                               \
         g_log (G_LOG_DOMAIN,                                           \
                G_LOG_LEVEL_CRITICAL,                                   \
-               "file %s: line %d (%s): assertion `%s' failed.",        \
+               "file %s: line %d (%s): assertion `%s' failed",         \
                __FILE__,                                               \
                __LINE__,                                               \
                __PRETTY_FUNCTION__,                                    \
        {                                                               \
         g_log (G_LOG_DOMAIN,                                           \
                G_LOG_LEVEL_CRITICAL,                                   \
-               "file %s: line %d (%s): assertion `%s' failed.",        \
+               "file %s: line %d (%s): assertion `%s' failed",         \
                __FILE__,                                               \
                __LINE__,                                               \
                __PRETTY_FUNCTION__,                                    \
                #expr);                                                 \
-        return val;                                                    \
+        return (val);                                                  \
        };                              }G_STMT_END
 </MACRO>
 <MACRO>
+<NAME>g_return_if_reached</NAME>
+#define g_return_if_reached()          G_STMT_START{                   \
+     g_log (G_LOG_DOMAIN,                                              \
+           G_LOG_LEVEL_CRITICAL,                                       \
+           "file %s: line %d (%s): should not be reached",             \
+           __FILE__,                                                   \
+           __LINE__,                                                   \
+           __PRETTY_FUNCTION__);                                       \
+     return;                           }G_STMT_END
+</MACRO>
+<MACRO>
+<NAME>g_return_val_if_reached</NAME>
+#define g_return_val_if_reached(val)   G_STMT_START{                   \
+     g_log (G_LOG_DOMAIN,                                              \
+           G_LOG_LEVEL_CRITICAL,                                       \
+           "file %s: line %d (%s): should not be reached",             \
+           __FILE__,                                                   \
+           __LINE__,                                                   \
+           __PRETTY_FUNCTION__);                                       \
+     return (val);                     }G_STMT_END
+</MACRO>
+<MACRO>
 <NAME>g_return_if_fail</NAME>
 #define g_return_if_fail(expr)         G_STMT_START{           \
      if (!(expr))                                              \
        {                                                       \
         g_log (G_LOG_DOMAIN,                                   \
                G_LOG_LEVEL_CRITICAL,                           \
-               "file %s: line %d: assertion `%s' failed.",     \
+               "file %s: line %d: assertion `%s' failed",      \
                __FILE__,                                       \
                __LINE__,                                       \
                #expr);                                         \
        {                                                       \
         g_log (G_LOG_DOMAIN,                                   \
                G_LOG_LEVEL_CRITICAL,                           \
-               "file %s: line %d: assertion `%s' failed.",     \
+               "file %s: line %d: assertion `%s' failed",      \
                __FILE__,                                       \
                __LINE__,                                       \
                #expr);                                         \
-        return val;                                            \
+        return (val);                                          \
        };                              }G_STMT_END
 </MACRO>
+<MACRO>
+<NAME>g_return_if_reached</NAME>
+#define g_return_if_reached()          G_STMT_START{           \
+     g_log (G_LOG_DOMAIN,                                      \
+           G_LOG_LEVEL_CRITICAL,                               \
+           "file %s: line %d: should not be reached",          \
+           __FILE__,                                           \
+           __LINE__);                                          \
+     return;                           }G_STMT_END
+</MACRO>
+<MACRO>
+<NAME>g_return_val_if_reached</NAME>
+#define g_return_val_if_reached(val)   G_STMT_START{           \
+     g_log (G_LOG_DOMAIN,                                      \
+           G_LOG_LEVEL_CRITICAL,                               \
+           "file %s: line %d: should not be reached",          \
+           __FILE__,                                           \
+           __LINE__);                                          \
+     return (val);                     }G_STMT_END
+</MACRO>
 <TYPEDEF>
 <NAME>gchar</NAME>
 typedef char   gchar;
@@ -430,6 +588,10 @@ typedef int    gint;
 typedef gint   gboolean;
 </TYPEDEF>
 <TYPEDEF>
+<NAME>gstring</NAME>
+typedef gchar* gstring;
+</TYPEDEF>
+<TYPEDEF>
 <NAME>guchar</NAME>
 typedef unsigned char  guchar;
 </TYPEDEF>
@@ -445,6 +607,30 @@ typedef unsigned long      gulong;
 <NAME>guint</NAME>
 typedef unsigned int   guint;
 </TYPEDEF>
+<MACRO>
+<NAME>G_GSHORT_FORMAT</NAME>
+#define G_GSHORT_FORMAT  "hi"
+</MACRO>
+<MACRO>
+<NAME>G_GUSHORT_FORMAT</NAME>
+#define G_GUSHORT_FORMAT "hu"
+</MACRO>
+<MACRO>
+<NAME>G_GINT_FORMAT</NAME>
+#define G_GINT_FORMAT    "i"
+</MACRO>
+<MACRO>
+<NAME>G_GUINT_FORMAT</NAME>
+#define G_GUINT_FORMAT   "u"
+</MACRO>
+<MACRO>
+<NAME>G_GLONG_FORMAT</NAME>
+#define G_GLONG_FORMAT   "li"
+</MACRO>
+<MACRO>
+<NAME>G_GULONG_FORMAT</NAME>
+#define G_GULONG_FORMAT  "lu"
+</MACRO>
 <TYPEDEF>
 <NAME>gfloat</NAME>
 typedef float  gfloat;
@@ -470,14 +656,6 @@ typedef void* gpointer;
 typedef const void *gconstpointer;
 </TYPEDEF>
 <TYPEDEF>
-<NAME>gssize</NAME>
-typedef gint32 gssize;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gsize</NAME>
-typedef guint32 gsize;
-</TYPEDEF>
-<TYPEDEF>
 <NAME>GQuark</NAME>
 typedef guint32 GQuark;
 </TYPEDEF>
@@ -731,16 +909,16 @@ typedef gint32    GTime;
 #define g_htons(val) (GUINT16_TO_BE (val))
 </MACRO>
 <MACRO>
-<NAME>GUTILS_C_VAR</NAME>
-#    define GUTILS_C_VAR __declspec(dllexport)
+<NAME>GLIB_VAR</NAME>
+#    define GLIB_VAR __declspec(dllexport)
 </MACRO>
 <MACRO>
-<NAME>GUTILS_C_VAR</NAME>
-#    define GUTILS_C_VAR extern __declspec(dllimport)
+<NAME>GLIB_VAR</NAME>
+#    define GLIB_VAR extern __declspec(dllimport)
 </MACRO>
 <MACRO>
-<NAME>GUTILS_C_VAR</NAME>
-#  define GUTILS_C_VAR extern
+<NAME>GLIB_VAR</NAME>
+#  define GLIB_VAR extern
 </MACRO>
 <MACRO>
 <NAME>GLIB_CHECK_VERSION</NAME>
@@ -793,6 +971,12 @@ typedef gint32     GTime;
 <NAME>GPtrArray</NAME>
 </STRUCT>
 <STRUCT>
+<NAME>GQueue</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GRand</NAME>
+</STRUCT>
+<STRUCT>
 <NAME>GRelation</NAME>
 </STRUCT>
 <STRUCT>
@@ -814,6 +998,9 @@ typedef gint32      GTime;
 <NAME>GTimer</NAME>
 </STRUCT>
 <STRUCT>
+<NAME>GTrashStack</NAME>
+</STRUCT>
+<STRUCT>
 <NAME>GTree</NAME>
 </STRUCT>
 <STRUCT>
@@ -998,12 +1185,6 @@ GNode            *node,
                                                 gpointer       data
 </USER_FUNCTION>
 <USER_FUNCTION>
-<NAME>GSearchFunc</NAME>
-<RETURNS>gint </RETURNS>
-gpointer       key,
-                                                gpointer       data
-</USER_FUNCTION>
-<USER_FUNCTION>
 <NAME>GScannerMsgFunc</NAME>
 <RETURNS>void </RETURNS>
 GScanner      *scanner,
@@ -1023,6 +1204,30 @@ gpointer key,
 void
 </USER_FUNCTION>
 <STRUCT>
+<NAME>GArray</NAME>
+struct GArray
+{
+  gchar *data;
+  guint len;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GByteArray</NAME>
+struct GByteArray
+{
+  guint8 *data;
+  guint          len;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GDebugKey</NAME>
+struct GDebugKey
+{
+  gchar *key;
+  guint         value;
+};
+</STRUCT>
+<STRUCT>
 <NAME>GList</NAME>
 struct GList
 {
@@ -1032,6 +1237,23 @@ struct GList
 };
 </STRUCT>
 <STRUCT>
+<NAME>GPtrArray</NAME>
+struct GPtrArray
+{
+  gpointer *pdata;
+  guint            len;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GQueue</NAME>
+struct GQueue
+{
+  GList *head;
+  GList *tail;
+  guint  length;
+};
+</STRUCT>
+<STRUCT>
 <NAME>GSList</NAME>
 struct GSList
 {
@@ -1048,44 +1270,81 @@ struct GString
 };
 </STRUCT>
 <STRUCT>
-<NAME>GArray</NAME>
-struct GArray
+<NAME>GTrashStack</NAME>
+struct GTrashStack
 {
-  gchar *data;
-  guint len;
+  GTrashStack *next;
 };
 </STRUCT>
 <STRUCT>
-<NAME>GByteArray</NAME>
-struct GByteArray
+<NAME>GTuples</NAME>
+struct GTuples
 {
-  guint8 *data;
-  guint          len;
+  guint len;
 };
 </STRUCT>
-<STRUCT>
-<NAME>GPtrArray</NAME>
-struct GPtrArray
+<MACRO>
+<NAME>G_IEEE754_FLOAT_BIAS</NAME>
+#define G_IEEE754_FLOAT_BIAS   (127)
+</MACRO>
+<MACRO>
+<NAME>G_IEEE754_DOUBLE_BIAS</NAME>
+#define G_IEEE754_DOUBLE_BIAS  (1023)
+</MACRO>
+<MACRO>
+<NAME>G_LOG_2_BASE_10</NAME>
+#define G_LOG_2_BASE_10                (0.30102999566398119521)
+</MACRO>
+<UNION>
+<NAME>GFloatIEEE754</NAME>
+union GFloatIEEE754
 {
-  gpointer *pdata;
-  guint            len;
+  gfloat v_float;
+  struct {
+    guint mantissa : 23;
+    guint biased_exponent : 8;
+    guint sign : 1;
+  } mpn;
 };
-</STRUCT>
-<STRUCT>
-<NAME>GTuples</NAME>
-struct GTuples
+</UNION>
+<UNION>
+<NAME>GDoubleIEEE754</NAME>
+union GDoubleIEEE754
 {
-  guint len;
+  gdouble v_double;
+  struct {
+    guint mantissa_low : 32;
+    guint mantissa_high : 20;
+    guint biased_exponent : 11;
+    guint sign : 1;
+  } mpn;
 };
-</STRUCT>
-<STRUCT>
-<NAME>GDebugKey</NAME>
-struct GDebugKey
+</UNION>
+<UNION>
+<NAME>GFloatIEEE754</NAME>
+union GFloatIEEE754
 {
-  gchar *key;
-  guint         value;
+  gfloat v_float;
+  struct {
+    guint sign : 1;
+    guint biased_exponent : 8;
+    guint mantissa : 23;
+  } mpn;
 };
-</STRUCT>
+</UNION>
+<UNION>
+<NAME>GDoubleIEEE754</NAME>
+union GDoubleIEEE754
+{
+  gdouble v_double;
+  struct {
+    guint sign : 1;
+    guint biased_exponent : 11;
+    guint mantissa_high : 20;
+    guint mantissa_low : 32;
+  } mpn;
+};
+</UNION>
 <FUNCTION>
 <NAME>g_list_push_allocator</NAME>
 <RETURNS>void  </RETURNS>
@@ -1139,7 +1398,7 @@ GList             *list1,GList            *list2
 <FUNCTION>
 <NAME>g_list_remove</NAME>
 <RETURNS>GList *</RETURNS>
-GList          *list,gpointer   data
+GList          *list,gconstpointer      data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_list_remove_link</NAME>
@@ -1147,6 +1406,11 @@ GList            *list,gpointer   data
 GList          *list,GList             *llink
 </FUNCTION>
 <FUNCTION>
+<NAME>g_list_delete_link</NAME>
+<RETURNS>GList *</RETURNS>
+GList          *list,GList             *link
+</FUNCTION>
+<FUNCTION>
 <NAME>g_list_reverse</NAME>
 <RETURNS>GList *</RETURNS>
 GList          *list
@@ -1164,12 +1428,12 @@ GList           *list,guint              n
 <FUNCTION>
 <NAME>g_list_find</NAME>
 <RETURNS>GList *</RETURNS>
-GList          *list,gpointer   data
+GList          *list,gconstpointer      data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_list_find_custom</NAME>
 <RETURNS>GList *</RETURNS>
-GList          *list,gpointer   data,GCompareFunc       func
+GList          *list,gconstpointer      data,GCompareFunc       func
 </FUNCTION>
 <FUNCTION>
 <NAME>g_list_position</NAME>
@@ -1179,7 +1443,7 @@ GList             *list,GList             *llink
 <FUNCTION>
 <NAME>g_list_index</NAME>
 <RETURNS>gint  </RETURNS>
-GList          *list,gpointer   data
+GList          *list,gconstpointer      data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_list_last</NAME>
@@ -1265,6 +1529,11 @@ GSList           *list,gpointer   data,gint               position
 GSList         *list,gpointer   data,GCompareFunc       func
 </FUNCTION>
 <FUNCTION>
+<NAME>g_slist_insert_before</NAME>
+<RETURNS>GSList *</RETURNS>
+GSList         *slist,GSList         *sibling,gpointer        data
+</FUNCTION>
+<FUNCTION>
 <NAME>g_slist_concat</NAME>
 <RETURNS>GSList *</RETURNS>
 GSList         *list1,GSList           *list2
@@ -1272,12 +1541,17 @@ GSList          *list1,GSList           *list2
 <FUNCTION>
 <NAME>g_slist_remove</NAME>
 <RETURNS>GSList *</RETURNS>
-GSList         *list,gpointer   data
+GSList         *list,gconstpointer      data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_slist_remove_link</NAME>
 <RETURNS>GSList *</RETURNS>
-GSList         *list,GSList            *llink
+GSList         *list,GSList            *link
+</FUNCTION>
+<FUNCTION>
+<NAME>g_slist_delete_link</NAME>
+<RETURNS>GSList *</RETURNS>
+GSList         *list,GSList         *link
 </FUNCTION>
 <FUNCTION>
 <NAME>g_slist_reverse</NAME>
@@ -1297,12 +1571,12 @@ GSList          *list,guint              n
 <FUNCTION>
 <NAME>g_slist_find</NAME>
 <RETURNS>GSList *</RETURNS>
-GSList         *list,gpointer   data
+GSList         *list,gconstpointer      data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_slist_find_custom</NAME>
 <RETURNS>GSList *</RETURNS>
-GSList         *list,gpointer   data,GCompareFunc       func
+GSList         *list,gconstpointer      data,GCompareFunc       func
 </FUNCTION>
 <FUNCTION>
 <NAME>g_slist_position</NAME>
@@ -1312,7 +1586,7 @@ GSList            *list,GSList            *llink
 <FUNCTION>
 <NAME>g_slist_index</NAME>
 <RETURNS>gint  </RETURNS>
-GSList         *list,gpointer   data
+GSList         *list,gconstpointer      data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_slist_last</NAME>
@@ -1341,9 +1615,74 @@ GSList           *list,guint              n
 </FUNCTION>
 <MACRO>
 <NAME>g_slist_next</NAME>
-#define g_slist_next(slist)    ((slist) ? (((GSList *)(slist))->next) : NULL)
+#define  g_slist_next(slist)   ((slist) ? (((GSList *)(slist))->next) : NULL)
 </MACRO>
 <FUNCTION>
+<NAME>g_queue_new</NAME>
+<RETURNS>GQueue *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_free</NAME>
+<RETURNS>void  </RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_push_head</NAME>
+<RETURNS>void  </RETURNS>
+GQueue  *queue,gpointer data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_push_tail</NAME>
+<RETURNS>void  </RETURNS>
+GQueue  *queue,gpointer data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_pop_head</NAME>
+<RETURNS>gpointer  </RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_pop_tail</NAME>
+<RETURNS>gpointer  </RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_is_empty</NAME>
+<RETURNS>gboolean  </RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_peek_head</NAME>
+<RETURNS>gpointer  </RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_peek_tail</NAME>
+<RETURNS>gpointer  </RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_push_head_link</NAME>
+<RETURNS>void  </RETURNS>
+GQueue  *queue,GList   *link
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_push_tail_link</NAME>
+<RETURNS>void  </RETURNS>
+GQueue  *queue,GList   *link
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_pop_head_link</NAME>
+<RETURNS>GList *</RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_queue_pop_tail_link</NAME>
+<RETURNS>GList *</RETURNS>
+GQueue  *queue
+</FUNCTION>
+<FUNCTION>
 <NAME>g_hash_table_new</NAME>
 <RETURNS>GHashTable *</RETURNS>
 GHashFunc       hash_func,GCompareFunc  key_compare_func
@@ -1374,19 +1713,9 @@ GHashTable       *hash_table,gconstpointer        key
 GHashTable     *hash_table,gconstpointer        lookup_key,gpointer    *orig_key,gpointer      *value
 </FUNCTION>
 <FUNCTION>
-<NAME>g_hash_table_freeze</NAME>
+<NAME>g_hash_table_foreach</NAME>
 <RETURNS>void  </RETURNS>
-GHashTable     *hash_table
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_thaw</NAME>
-<RETURNS>void  </RETURNS>
-GHashTable     *hash_table
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_foreach</NAME>
-<RETURNS>void  </RETURNS>
-GHashTable     *hash_table,GHFunc               func,gpointer   user_data
+GHashTable     *hash_table,GHFunc               func,gpointer   user_data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_hash_table_foreach_remove</NAME>
@@ -1399,6 +1728,16 @@ GHashTable       *hash_table,GHRFunc      func,gpointer   user_data
 GHashTable     *hash_table
 </FUNCTION>
 <FUNCTION>
+<NAME>g_hash_table_freeze</NAME>
+<RETURNS>void  </RETURNS>
+GHashTable     *hash_table
+</FUNCTION>
+<FUNCTION>
+<NAME>g_hash_table_thaw</NAME>
+<RETURNS>void  </RETURNS>
+GHashTable     *hash_table
+</FUNCTION>
+<FUNCTION>
 <NAME>g_cache_new</NAME>
 <RETURNS>GCache *</RETURNS>
 GCacheNewFunc     value_new_func,GCacheDestroyFunc  value_destroy_func,GCacheDupFunc      key_dup_func,GCacheDestroyFunc  key_destroy_func,GHashFunc      hash_key_func,GHashFunc         hash_value_func,GCompareFunc    key_compare_func
@@ -1416,7 +1755,7 @@ GCache              *cache,gpointer          key
 <FUNCTION>
 <NAME>g_cache_remove</NAME>
 <RETURNS>void  </RETURNS>
-GCache           *cache,gpointer          value
+GCache           *cache,gconstpointer     value
 </FUNCTION>
 <FUNCTION>
 <NAME>g_cache_key_foreach</NAME>
@@ -1446,12 +1785,12 @@ GTree           *tree,gpointer   key,gpointer    value
 <FUNCTION>
 <NAME>g_tree_remove</NAME>
 <RETURNS>void  </RETURNS>
-GTree          *tree,gpointer   key
+GTree          *tree,gconstpointer      key
 </FUNCTION>
 <FUNCTION>
 <NAME>g_tree_lookup</NAME>
 <RETURNS>gpointer  </RETURNS>
-GTree          *tree,gpointer   key
+GTree          *tree,gconstpointer      key
 </FUNCTION>
 <FUNCTION>
 <NAME>g_tree_traverse</NAME>
@@ -1461,7 +1800,7 @@ GTree             *tree,GTraverseFunc      traverse_func,GTraverseType     traverse_type,gpointer
 <FUNCTION>
 <NAME>g_tree_search</NAME>
 <RETURNS>gpointer  </RETURNS>
-GTree          *tree,GSearchFunc        search_func,gpointer    data
+GTree          *tree,GCompareFunc       search_func,gconstpointer       data
 </FUNCTION>
 <FUNCTION>
 <NAME>g_tree_height</NAME>
@@ -1520,6 +1859,11 @@ GNode              *root
 GNode            *node
 </FUNCTION>
 <FUNCTION>
+<NAME>g_node_copy</NAME>
+<RETURNS>GNode *</RETURNS>
+GNode            *node
+</FUNCTION>
+<FUNCTION>
 <NAME>g_node_insert</NAME>
 <RETURNS>GNode *</RETURNS>
 GNode            *parent,gint             position,GNode                 *node
@@ -1900,21 +2244,51 @@ GLogLevelFlags   fatal_mask
 </MACRO>
 <MACRO>
 <NAME>g_error</NAME>
-#define        g_error(format, args...)        g_log (G_LOG_DOMAIN, \
-                                              G_LOG_LEVEL_ERROR, \
-                                              format, ##args)
+#define        g_error(...)    g_log (G_LOG_DOMAIN,         \
+                              G_LOG_LEVEL_ERROR,    \
+                              __VA_ARGS__)
+</MACRO>
+<MACRO>
+<NAME>g_message</NAME>
+#define        g_message(...)  g_log (G_LOG_DOMAIN,         \
+                              G_LOG_LEVEL_MESSAGE,  \
+                              __VA_ARGS__)
+</MACRO>
+<MACRO>
+<NAME>g_critical</NAME>
+#define        g_critical(...) g_log (G_LOG_DOMAIN,         \
+                              G_LOG_LEVEL_CRITICAL, \
+                              __VA_ARGS__)
+</MACRO>
+<MACRO>
+<NAME>g_warning</NAME>
+#define        g_warning(...)  g_log (G_LOG_DOMAIN,         \
+                              G_LOG_LEVEL_WARNING,  \
+                              __VA_ARGS__)
+</MACRO>
+<MACRO>
+<NAME>g_error</NAME>
+#define        g_error(format...)      g_log (G_LOG_DOMAIN,         \
+                                      G_LOG_LEVEL_ERROR,    \
+                                      format)
 </MACRO>
 <MACRO>
 <NAME>g_message</NAME>
-#define        g_message(format, args...)      g_log (G_LOG_DOMAIN, \
-                                              G_LOG_LEVEL_MESSAGE, \
-                                              format, ##args)
+#define        g_message(format...)    g_log (G_LOG_DOMAIN,         \
+                                      G_LOG_LEVEL_MESSAGE,  \
+                                      format)
+</MACRO>
+<MACRO>
+<NAME>g_critical</NAME>
+#define        g_critical(format...)   g_log (G_LOG_DOMAIN,         \
+                                      G_LOG_LEVEL_CRITICAL, \
+                                      format)
 </MACRO>
 <MACRO>
 <NAME>g_warning</NAME>
-#define        g_warning(format, args...)      g_log (G_LOG_DOMAIN, \
-                                              G_LOG_LEVEL_WARNING, \
-                                              format, ##args)
+#define        g_warning(format...)    g_log (G_LOG_DOMAIN,         \
+                                      G_LOG_LEVEL_WARNING,  \
+                                      format)
 </MACRO>
 <USER_FUNCTION>
 <NAME>GPrintFunc</NAME>
@@ -2092,6 +2466,10 @@ void
 <RETURNS>void  </RETURNS>
 void
 </FUNCTION>
+<MACRO>
+<NAME>G_MICROSEC</NAME>
+#define G_MICROSEC 1000000
+</MACRO>
 <FUNCTION>
 <NAME>g_timer_new</NAME>
 <RETURNS>GTimer *</RETURNS>
@@ -2122,6 +2500,11 @@ GTimer    *timer
 <RETURNS>gdouble  </RETURNS>
 GTimer  *timer,gulong   *microseconds
 </FUNCTION>
+<FUNCTION>
+<NAME>g_usleep</NAME>
+<RETURNS>void  </RETURNS>
+gulong microseconds
+</FUNCTION>
 <MACRO>
 <NAME>G_STR_DELIMITERS</NAME>
 #define         G_STR_DELIMITERS       "_-|> <."
@@ -2132,6 +2515,11 @@ GTimer    *timer,gulong   *microseconds
 gchar       *string,const gchar *delimiters,gchar            new_delimiter
 </FUNCTION>
 <FUNCTION>
+<NAME>g_strcanon</NAME>
+<RETURNS>gchar *</RETURNS>
+gchar       *string,const gchar *valid_chars,gchar        subsitutor
+</FUNCTION>
+<FUNCTION>
 <NAME>g_strtod</NAME>
 <RETURNS>gdouble       </RETURNS>
 const gchar *nptr,gchar            **endptr
@@ -2158,20 +2546,30 @@ const gchar *s1,const gchar *s2,guint         n
 </FUNCTION>
 <FUNCTION>
 <NAME>g_strdown</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>gchar *</RETURNS>
 gchar       *string
 </FUNCTION>
 <FUNCTION>
 <NAME>g_strup</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>gchar *</RETURNS>
 gchar       *string
 </FUNCTION>
 <FUNCTION>
 <NAME>g_strreverse</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>gchar *</RETURNS>
 gchar       *string
 </FUNCTION>
 <FUNCTION>
+<NAME>g_strlcpy</NAME>
+<RETURNS>gsize         </RETURNS>
+gchar       *dest,const gchar *src,gsize        dest_size
+</FUNCTION>
+<FUNCTION>
+<NAME>g_strlcat</NAME>
+<RETURNS>gsize         </RETURNS>
+gchar       *dest,const gchar *src,gsize        dest_size
+</FUNCTION>
+<FUNCTION>
 <NAME>g_strchug</NAME>
 <RETURNS>gchar *</RETURNS>
 gchar        *string
@@ -2221,9 +2619,24 @@ const gchar *string1,...
 const gchar  *separator,...
 </FUNCTION>
 <FUNCTION>
+<NAME>g_strcompress</NAME>
+<RETURNS>gchar *</RETURNS>
+const gchar *source
+</FUNCTION>
+<FUNCTION>
+<NAME>g_filename_to_utf8</NAME>
+<RETURNS>gchar *</RETURNS>
+const gchar *opsysstring
+</FUNCTION>
+<FUNCTION>
+<NAME>g_filename_from_utf8</NAME>
+<RETURNS>gchar *</RETURNS>
+const gchar *utf8string
+</FUNCTION>
+<FUNCTION>
 <NAME>g_strescape</NAME>
 <RETURNS>gchar *</RETURNS>
-gchar        *string
+const gchar *source,const gchar *exceptions
 </FUNCTION>
 <FUNCTION>
 <NAME>g_memdup</NAME>
@@ -2296,11 +2709,6 @@ gchar         *string,gulong           n,gchar const *format,...
 gchar       *string,gulong           n,gchar const *format,va_list      args
 </FUNCTION>
 <FUNCTION>
-<NAME>g_basename</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar *file_name
-</FUNCTION>
-<FUNCTION>
 <NAME>g_path_is_absolute</NAME>
 <RETURNS>gboolean  </RETURNS>
 const gchar *file_name
@@ -2311,6 +2719,11 @@ const gchar *file_name
 gchar       *file_name
 </FUNCTION>
 <FUNCTION>
+<NAME>g_basename</NAME>
+<RETURNS>gchar *</RETURNS>
+const gchar *file_name
+</FUNCTION>
+<FUNCTION>
 <NAME>g_dirname</NAME>
 <RETURNS>gchar *</RETURNS>
 const gchar *file_name
@@ -2321,6 +2734,16 @@ const gchar *file_name
 void
 </FUNCTION>
 <FUNCTION>
+<NAME>g_path_get_basename</NAME>
+<RETURNS>gchar *</RETURNS>
+const gchar *file_name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_path_get_dirname</NAME>
+<RETURNS>gchar *</RETURNS>
+const gchar *file_name
+</FUNCTION>
+<FUNCTION>
 <NAME>g_getenv</NAME>
 <RETURNS>gchar *</RETURNS>
 const gchar *variable
@@ -2346,6 +2769,26 @@ guint32 mask,gint    nth_bit
 guint number
 </FUNCTION>
 <FUNCTION>
+<NAME>g_trash_stack_push</NAME>
+<RETURNS>void  </RETURNS>
+GTrashStack **stack_p,gpointer      data_p
+</FUNCTION>
+<FUNCTION>
+<NAME>g_trash_stack_pop</NAME>
+<RETURNS>gpointer      </RETURNS>
+GTrashStack **stack_p
+</FUNCTION>
+<FUNCTION>
+<NAME>g_trash_stack_peek</NAME>
+<RETURNS>gpointer      </RETURNS>
+GTrashStack **stack_p
+</FUNCTION>
+<FUNCTION>
+<NAME>g_trash_stack_height</NAME>
+<RETURNS>guint         </RETURNS>
+GTrashStack **stack_p
+</FUNCTION>
+<FUNCTION>
 <NAME>g_string_chunk_new</NAME>
 <RETURNS>GStringChunk *</RETURNS>
 gint size
@@ -2368,62 +2811,87 @@ GStringChunk *chunk,const gchar  *string
 <FUNCTION>
 <NAME>g_string_new</NAME>
 <RETURNS>GString *</RETURNS>
-const gchar *init
+const gchar     *init
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_sized_new</NAME>
 <RETURNS>GString *</RETURNS>
-guint    dfl_size
+guint            dfl_size
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_free</NAME>
-<RETURNS>void  </RETURNS>
-GString         *string,gint     free_segment
+<RETURNS>gchar *</RETURNS>
+GString         *string,gboolean         free_segment
+</FUNCTION>
+<FUNCTION>
+<NAME>g_string_equal</NAME>
+<RETURNS>gboolean  </RETURNS>
+const GString   *v,const GString        *v2
+</FUNCTION>
+<FUNCTION>
+<NAME>g_string_hash</NAME>
+<RETURNS>guint  </RETURNS>
+const GString   *str
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_assign</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *lval,const gchar *rval
+GString         *string,const gchar     *rval
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_truncate</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,gint     len
+GString         *string,guint            len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_string_insert_len</NAME>
+<RETURNS>GString *</RETURNS>
+GString         *string,gint             pos,const gchar     *val,gint             len
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_append</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,const gchar *val
+GString         *string,const gchar     *val
+</FUNCTION>
+<FUNCTION>
+<NAME>g_string_append_len</NAME>
+<RETURNS>GString *</RETURNS>
+GString         *string,const gchar     *val,gint             len
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_append_c</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,gchar    c
+GString         *string,gchar            c
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_prepend</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,const gchar *val
+GString         *string,const gchar     *val
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_prepend_c</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,gchar    c
+GString         *string,gchar            c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_string_prepend_len</NAME>
+<RETURNS>GString *</RETURNS>
+GString         *string,const gchar     *val,gint             len
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_insert</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,gint     pos,const gchar *val
+GString         *string,gint             pos,const gchar        *val
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_insert_c</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,gint     pos,gchar       c
+GString         *string,gint             pos,gchar               c
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_erase</NAME>
 <RETURNS>GString *</RETURNS>
-GString         *string,gint     pos,gint        len
+GString         *string,gint             pos,gint                len
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_down</NAME>
@@ -2437,13 +2905,13 @@ GString  *string
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_sprintf</NAME>
-<RETURNS>void  </RETURNS>
-GString         *string,const gchar *format,...
+<RETURNS>void  </RETURNS>
+GString         *string,const gchar     *format,...
 </FUNCTION>
 <FUNCTION>
 <NAME>g_string_sprintfa</NAME>
-<RETURNS>void  </RETURNS>
-GString         *string,const gchar *format,...
+<RETURNS>void  </RETURNS>
+GString         *string,const gchar     *format,...
 </FUNCTION>
 <MACRO>
 <NAME>g_array_append_val</NAME>
@@ -2467,8 +2935,13 @@ GString   *string,const gchar *format,...
 gboolean           zero_terminated,gboolean        clear,guint     element_size
 </FUNCTION>
 <FUNCTION>
+<NAME>g_array_sized_new</NAME>
+<RETURNS>GArray *</RETURNS>
+gboolean           zero_terminated,gboolean        clear,guint     element_size,guint            reserved_size
+</FUNCTION>
+<FUNCTION>
 <NAME>g_array_free</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>gchar *</RETURNS>
 GArray    *array,gboolean          free_segment
 </FUNCTION>
 <FUNCTION>
@@ -2511,8 +2984,13 @@ GArray      *array,guint     index
 void
 </FUNCTION>
 <FUNCTION>
+<NAME>g_ptr_array_sized_new</NAME>
+<RETURNS>GPtrArray *</RETURNS>
+guint        reserved_size
+</FUNCTION>
+<FUNCTION>
 <NAME>g_ptr_array_free</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>gpointer *</RETURNS>
 GPtrArray      *array,gboolean  free_seg
 </FUNCTION>
 <FUNCTION>
@@ -2551,8 +3029,13 @@ GPtrArray        *array,gpointer  data
 void
 </FUNCTION>
 <FUNCTION>
+<NAME>g_byte_array_sized_new</NAME>
+<RETURNS>GByteArray *</RETURNS>
+guint        reserved_size
+</FUNCTION>
+<FUNCTION>
 <NAME>g_byte_array_free</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>guint8 *</RETURNS>
 GByteArray      *array,gboolean          free_segment
 </FUNCTION>
 <FUNCTION>
@@ -2582,22 +3065,22 @@ GByteArray       *array,guint     index
 </FUNCTION>
 <FUNCTION>
 <NAME>g_str_equal</NAME>
-<RETURNS>gint  </RETURNS>
+<RETURNS>gboolean  </RETURNS>
 gconstpointer   v,gconstpointer   v2
 </FUNCTION>
 <FUNCTION>
 <NAME>g_str_hash</NAME>
-<RETURNS>guint  </RETURNS>
+<RETURNS>guint         </RETURNS>
 gconstpointer   v
 </FUNCTION>
 <FUNCTION>
 <NAME>g_int_equal</NAME>
-<RETURNS>gint  </RETURNS>
+<RETURNS>gint  </RETURNS>
 gconstpointer   v,gconstpointer   v2
 </FUNCTION>
 <FUNCTION>
 <NAME>g_int_hash</NAME>
-<RETURNS>guint  </RETURNS>
+<RETURNS>guint         </RETURNS>
 gconstpointer   v
 </FUNCTION>
 <FUNCTION>
@@ -2652,7 +3135,7 @@ GData              **datalist,GQuark         key_id,gpointer         data,GDestroyNotify   destroy_fu
 </FUNCTION>
 <FUNCTION>
 <NAME>g_datalist_id_remove_no_notify</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>gpointer  </RETURNS>
 GData           **datalist,GQuark         key_id
 </FUNCTION>
 <FUNCTION>
@@ -2712,7 +3195,7 @@ gconstpointer       dataset_location,GQuark                 key_id,gpointer         data,GDestroyNotify
 </FUNCTION>
 <FUNCTION>
 <NAME>g_dataset_id_remove_no_notify</NAME>
-<RETURNS>void  </RETURNS>
+<RETURNS>gpointer  </RETURNS>
 gconstpointer    dataset_location,GQuark                 key_id
 </FUNCTION>
 <FUNCTION>
@@ -2764,6 +3247,10 @@ gconstpointer      dataset_location,GDataForeachFunc func,gpointer         user_data
 #define G_CSET_a_2_z   "abcdefghijklmnopqrstuvwxyz"
 </MACRO>
 <MACRO>
+<NAME>G_CSET_DIGITS</NAME>
+#define G_CSET_DIGITS  "0123456789"
+</MACRO>
+<MACRO>
 <NAME>G_CSET_LATINC</NAME>
 #define G_CSET_LATINC  "\300\301\302\303\304\305\306"\
                        "\307\310\311\312\313\314\315\316\317\320"\
@@ -3019,16 +3506,6 @@ GScanner *scanner,guint           scope_id,GHFunc                 func,gpointer   user_data
 GScanner       *scanner,const gchar    *symbol
 </FUNCTION>
 <FUNCTION>
-<NAME>g_scanner_freeze_symbol_table</NAME>
-<RETURNS>void  </RETURNS>
-GScanner       *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_thaw_symbol_table</NAME>
-<RETURNS>void  </RETURNS>
-GScanner       *scanner
-</FUNCTION>
-<FUNCTION>
 <NAME>g_scanner_unexp_token</NAME>
 <RETURNS>void  </RETURNS>
 GScanner       *scanner,GTokenType     expected_token,const gchar      *identifier_spec,const gchar    *symbol_spec,const gchar        *symbol_name,const gchar        *message,gint            is_error
@@ -3066,6 +3543,16 @@ const gchar      *filename
   g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \
 } G_STMT_END
 </MACRO>
+<FUNCTION>
+<NAME>g_scanner_freeze_symbol_table</NAME>
+<RETURNS>void  </RETURNS>
+GScanner       *scanner
+</FUNCTION>
+<FUNCTION>
+<NAME>g_scanner_thaw_symbol_table</NAME>
+<RETURNS>void  </RETURNS>
+GScanner       *scanner
+</FUNCTION>
 <STRUCT>
 <NAME>GCompletion</NAME>
 struct GCompletion
@@ -3457,6 +3944,71 @@ GTuples     *tuples
 GTuples           *tuples,gint     index,gint      field
 </FUNCTION>
 <FUNCTION>
+<NAME>g_rand_new_with_seed</NAME>
+<RETURNS>GRand *</RETURNS>
+guint32     seed
+</FUNCTION>
+<FUNCTION>
+<NAME>g_rand_new</NAME>
+<RETURNS>GRand *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_rand_free</NAME>
+<RETURNS>void  </RETURNS>
+GRand      *rand
+</FUNCTION>
+<FUNCTION>
+<NAME>g_rand_set_seed</NAME>
+<RETURNS>void  </RETURNS>
+GRand      *rand,guint32     seed
+</FUNCTION>
+<FUNCTION>
+<NAME>g_rand_int</NAME>
+<RETURNS>guint32  </RETURNS>
+GRand      *rand
+</FUNCTION>
+<FUNCTION>
+<NAME>g_rand_int_range</NAME>
+<RETURNS>gint32  </RETURNS>
+GRand      *rand,gint32      min,gint32      max
+</FUNCTION>
+<FUNCTION>
+<NAME>g_rand_double</NAME>
+<RETURNS>gdouble  </RETURNS>
+GRand      *rand
+</FUNCTION>
+<FUNCTION>
+<NAME>g_rand_double_range</NAME>
+<RETURNS>gdouble  </RETURNS>
+GRand      *rand,gdouble     min,gdouble     max
+</FUNCTION>
+<FUNCTION>
+<NAME>g_random_set_seed</NAME>
+<RETURNS>void  </RETURNS>
+guint32     seed
+</FUNCTION>
+<FUNCTION>
+<NAME>g_random_int</NAME>
+<RETURNS>guint32  </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_random_int_range</NAME>
+<RETURNS>gint32  </RETURNS>
+gint32      min,gint32      max
+</FUNCTION>
+<FUNCTION>
+<NAME>g_random_double</NAME>
+<RETURNS>gdouble  </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_random_double_range</NAME>
+<RETURNS>gdouble  </RETURNS>
+gdouble     min,gdouble     max
+</FUNCTION>
+<FUNCTION>
 <NAME>g_spaced_primes_closest</NAME>
 <RETURNS>guint         </RETURNS>
 guint num
@@ -3610,7 +4162,7 @@ struct GSourceFuncs
                        GTimeVal *current_time,
                        gpointer  user_data);
   gboolean (*dispatch) (gpointer  source_data, 
-                       GTimeVal *current_time,
+                       GTimeVal *dispatch_time,
                        gpointer  user_data);
   GDestroyNotify destroy;
 };
@@ -3668,7 +4220,7 @@ GSourceFuncs  *funcs,gpointer       user_data
 <FUNCTION>
 <NAME>g_get_current_time</NAME>
 <RETURNS>void  </RETURNS>
-GTimeVal          *result
+GTimeVal       *result
 </FUNCTION>
 <FUNCTION>
 <NAME>g_main_new</NAME>
@@ -3765,6 +4317,11 @@ GPollFD    *fd
 GPollFunc   func
 </FUNCTION>
 <FUNCTION>
+<NAME>g_main_win32_get_poll_func</NAME>
+<RETURNS>GPollFunc  </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
 <NAME>g_io_channel_unix_new</NAME>
 <RETURNS>GIOChannel *</RETURNS>
 int         fd
@@ -3779,34 +4336,29 @@ GIOChannel *channel
 #define G_WIN32_MSG_HANDLE 19981206
 </MACRO>
 <FUNCTION>
-<NAME>g_main_poll_win32_msg_add</NAME>
+<NAME>g_io_channel_win32_make_pollfd</NAME>
 <RETURNS>void  </RETURNS>
-gint        priority,GPollFD    *fd,guint       hwnd
+GIOChannel   *channel,GIOCondition  condition,GPollFD      *fd
 </FUNCTION>
 <FUNCTION>
-<NAME>g_io_channel_win32_new_messages</NAME>
-<RETURNS>GIOChannel  *</RETURNS>
-guint hwnd
+<NAME>g_io_channel_win32_poll</NAME>
+<RETURNS>gint  </RETURNS>
+GPollFD    *fds,gint        n_fds,gint        timeout
 </FUNCTION>
 <FUNCTION>
-<NAME>g_io_channel_win32_new_pipe</NAME>
-<RETURNS>GIOChannel  *</RETURNS>
-int fd
+<NAME>g_main_poll_win32_msg_add</NAME>
+<RETURNS>void  </RETURNS>
+gint        priority,GPollFD    *fd,guint       hwnd
 </FUNCTION>
 <FUNCTION>
-<NAME>g_io_channel_win32_new_pipe_with_wakeups</NAME>
+<NAME>g_io_channel_win32_new_messages</NAME>
 <RETURNS>GIOChannel  *</RETURNS>
-int   fd,guint peer,int   peer_fd
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_win32_pipe_request_wakeups</NAME>
-<RETURNS>void  </RETURNS>
-GIOChannel *channel,guint       peer,int         peer_fd
+guint hwnd
 </FUNCTION>
 <FUNCTION>
-<NAME>g_io_channel_win32_pipe_readable</NAME>
-<RETURNS>void  </RETURNS>
-int   fd,guint offset
+<NAME>g_io_channel_win32_new_fd</NAME>
+<RETURNS>GIOChannel *</RETURNS>
+int         fd
 </FUNCTION>
 <FUNCTION>
 <NAME>g_io_channel_win32_get_fd</NAME>
@@ -3827,134 +4379,163 @@ int socket
 typedef int pid_t;
 </TYPEDEF>
 <MACRO>
-<NAME>getcwd</NAME>
-#    define getcwd             _getcwd
-</MACRO>
-<MACRO>
-<NAME>getpid</NAME>
-#    define getpid             _getpid
-</MACRO>
-<MACRO>
-<NAME>access</NAME>
-#    define access             _access
-</MACRO>
-<MACRO>
-<NAME>open</NAME>
-#    define open               _open
-</MACRO>
-<MACRO>
-<NAME>read</NAME>
-#    define read               _read
-</MACRO>
-<MACRO>
-<NAME>write</NAME>
-#    define write              _write
-</MACRO>
-<MACRO>
-<NAME>lseek</NAME>
-#    define lseek              _lseek
-</MACRO>
-<MACRO>
-<NAME>close</NAME>
-#    define close              _close
-</MACRO>
-<MACRO>
 <NAME>pipe</NAME>
-#    define pipe(phandles)     _pipe (phandles, 4096, _O_BINARY)
-</MACRO>
-<MACRO>
-<NAME>popen</NAME>
-#    define popen              _popen
-</MACRO>
-<MACRO>
-<NAME>pclose</NAME>
-#    define pclose             _pclose
-</MACRO>
-<MACRO>
-<NAME>fdopen</NAME>
-#    define fdopen             _fdopen
+#define pipe(phandles) _pipe (phandles, 4096, _O_BINARY)
 </MACRO>
 <MACRO>
 <NAME>ftruncate</NAME>
-#    define ftruncate(fd, size)        gwin_ftruncate (fd, size)
+#    define ftruncate(fd, size)        g_win32_ftruncate (fd, size)
 </MACRO>
 <MACRO>
 <NAME>opendir</NAME>
-#    define opendir            gwin_opendir
+#    define opendir            g_win32_opendir
 </MACRO>
 <MACRO>
 <NAME>readdir</NAME>
-#    define readdir            gwin_readdir
+#    define readdir            g_win32_readdir
 </MACRO>
 <MACRO>
 <NAME>rewinddir</NAME>
-#    define rewinddir          gwin_rewinddir
+#    define rewinddir          g_win32_rewinddir
 </MACRO>
 <MACRO>
 <NAME>closedir</NAME>
-#    define closedir           gwin_closedir
+#    define closedir           g_win32_closedir
 </MACRO>
 <MACRO>
 <NAME>NAME_MAX</NAME>
 #    define NAME_MAX 255
 </MACRO>
 <FUNCTION>
-<NAME>gwin_ftruncate</NAME>
+<NAME>g_win32_ftruncate</NAME>
 <RETURNS>int   </RETURNS>
 gint            f,guint                 size
 </FUNCTION>
 <FUNCTION>
-<NAME>gwin_opendir</NAME>
+<NAME>g_win32_opendir</NAME>
 <RETURNS>DIR *</RETURNS>
 const gchar    *dirname
 </FUNCTION>
 <FUNCTION>
-<NAME>gwin_rewinddir</NAME>
+<NAME>g_win32_rewinddir</NAME>
 <RETURNS>void  </RETURNS>
 DIR            *dir
 </FUNCTION>
 <FUNCTION>
-<NAME>gwin_closedir</NAME>
+<NAME>g_win32_closedir</NAME>
 <RETURNS>gint  </RETURNS>
 DIR            *dir
 </FUNCTION>
-<STRUCT>
-<NAME>GMutex</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GCond</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GPrivate</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GStaticPrivate</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GThreadFunctions</NAME>
-</STRUCT>
-<STRUCT>
+<FUNCTION>
+<NAME>g_win32_getlocale</NAME>
+<RETURNS>gchar  *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_win32_error_message</NAME>
+<RETURNS>gchar  *</RETURNS>
+gint error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_thread_error_quark</NAME>
+<RETURNS>GQuark  </RETURNS>
+
+</FUNCTION>
+<MACRO>
+<NAME>G_THREAD_ERROR</NAME>
+#define G_THREAD_ERROR g_thread_error_quark()
+</MACRO>
+<ENUM>
+<NAME>GThreadError</NAME>
+typedef enum
+{
+  G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */
+} GThreadError;
+</ENUM>
+<USER_FUNCTION>
+<NAME>GThreadFunc</NAME>
+<RETURNS>void </RETURNS>
+gpointer       value
+</USER_FUNCTION>
+<ENUM>
+<NAME>GThreadPriority</NAME>
+typedef enum
+{
+    G_THREAD_PRIORITY_LOW,
+    G_THREAD_PRIORITY_NORMAL,
+    G_THREAD_PRIORITY_HIGH,
+    G_THREAD_PRIORITY_URGENT
+} GThreadPriority;
+</ENUM>
+<STRUCT>
+<NAME>GThread</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GThread</NAME>
+struct GThread
+{
+  GThreadPriority priority;
+  gboolean bound;
+  gboolean joinable;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GMutex</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GCond</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GStaticPrivate</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GAsyncQueue</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GThreadPool</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GThreadFunctions</NAME>
+</STRUCT>
+<STRUCT>
 <NAME>GThreadFunctions</NAME>
 struct GThreadFunctions
 {
-  GMutex*  (*mutex_new)       (void);
-  void     (*mutex_lock)      (GMutex          *mutex);
-  gboolean (*mutex_trylock)   (GMutex          *mutex);
-  void     (*mutex_unlock)    (GMutex          *mutex);
-  void     (*mutex_free)      (GMutex          *mutex);
-  GCond*   (*cond_new)        (void);
-  void     (*cond_signal)     (GCond           *cond);
-  void     (*cond_broadcast)  (GCond           *cond);
-  void     (*cond_wait)       (GCond           *cond,
-                              GMutex           *mutex);
-  gboolean (*cond_timed_wait) (GCond           *cond,
-                              GMutex           *mutex, 
-                              GTimeVal         *end_time);
-  void      (*cond_free)      (GCond           *cond);
-  GPrivate* (*private_new)    (GDestroyNotify   destructor);
-  gpointer  (*private_get)    (GPrivate                *private_key);
-  void      (*private_set)    (GPrivate                *private_key,
-                              gpointer          data);
+  GMutex*  (*mutex_new)           (void);
+  void     (*mutex_lock)          (GMutex              *mutex);
+  gboolean (*mutex_trylock)       (GMutex              *mutex);
+  void     (*mutex_unlock)        (GMutex              *mutex);
+  void     (*mutex_free)          (GMutex              *mutex);
+  GCond*   (*cond_new)            (void);
+  void     (*cond_signal)         (GCond               *cond);
+  void     (*cond_broadcast)      (GCond               *cond);
+  void     (*cond_wait)           (GCond               *cond,
+                                  GMutex               *mutex);
+  gboolean (*cond_timed_wait)     (GCond               *cond,
+                                  GMutex               *mutex, 
+                                  GTimeVal             *end_time);
+  void      (*cond_free)          (GCond               *cond);
+  GPrivate* (*private_new)        (GDestroyNotify       destructor);
+  gpointer  (*private_get)        (GPrivate            *private_key);
+  void      (*private_set)        (GPrivate            *private_key,
+                                  gpointer              data);
+  void      (*thread_create)      (GThreadFunc                  thread_func,
+                                  gpointer              arg,
+                                  gulong                stack_size,
+                                  gboolean              joinable,
+                                  gboolean              bound,
+                                  GThreadPriority       priority,
+                                  gpointer              thread,
+                                  GError              **error);
+  void      (*thread_yield)       (void);
+  void      (*thread_join)        (gpointer             thread);
+  void      (*thread_exit)        (void);
+  void      (*thread_set_priority)(gpointer             thread, 
+                                  GThreadPriority       priority);
+  void      (*thread_self)        (gpointer              thread);
 };
 </STRUCT>
 <FUNCTION>
@@ -4047,6 +4628,34 @@ GMutex   **mutex
                                                        (private_key, value))
 </MACRO>
 <MACRO>
+<NAME>g_thread_yield</NAME>
+#define g_thread_yield()              G_THREAD_CF (thread_yield, (void)0, ())
+</MACRO>
+<MACRO>
+<NAME>g_thread_exit</NAME>
+#define g_thread_exit()               G_THREAD_CF (thread_exit, (void)0, ())
+</MACRO>
+<FUNCTION>
+<NAME>g_thread_create</NAME>
+<RETURNS>GThread *</RETURNS>
+GThreadFunc             thread_func,gpointer            arg,gulong              stack_size,gboolean             joinable,gboolean               bound,GThreadPriority   priority,GError               **error
+</FUNCTION>
+<FUNCTION>
+<NAME>g_thread_self</NAME>
+<RETURNS>GThread *</RETURNS>
+
+</FUNCTION>
+<FUNCTION>
+<NAME>g_thread_join</NAME>
+<RETURNS>void  </RETURNS>
+GThread *thread
+</FUNCTION>
+<FUNCTION>
+<NAME>g_thread_set_priority</NAME>
+<RETURNS>void  </RETURNS>
+GThread         *thread,GThreadPriority  priority
+</FUNCTION>
+<MACRO>
 <NAME>g_static_mutex_lock</NAME>
 #define g_static_mutex_lock(mutex) \
     g_mutex_lock (g_static_mutex_get_mutex (mutex))
@@ -4083,13 +4692,118 @@ GStaticPrivate *private_key
 GStaticPrivate *private_key,gpointer            data,GDestroyNotify    notify
 </FUNCTION>
 <FUNCTION>
+<NAME>g_static_private_get_for_thread</NAME>
+<RETURNS>gpointer  </RETURNS>
+GStaticPrivate *private_key,GThread        *thread
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_private_set_for_thread</NAME>
+<RETURNS>void  </RETURNS>
+GStaticPrivate *private_key,GThread        *thread,gpointer        data,GDestroyNotify  notify
+</FUNCTION>
+<STRUCT>
+<NAME>GStaticRecMutex</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GStaticRecMutex</NAME>
+struct GStaticRecMutex
+{
+  GStaticMutex mutex;
+  unsigned int depth;
+  GSystemThread owner;
+};
+</STRUCT>
+<MACRO>
+<NAME>G_STATIC_REC_MUTEX_INIT</NAME>
+#define G_STATIC_REC_MUTEX_INIT { G_STATIC_MUTEX_INIT }
+</MACRO>
+<FUNCTION>
+<NAME>g_static_rec_mutex_lock</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRecMutex *mutex
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rec_mutex_trylock</NAME>
+<RETURNS>gboolean  </RETURNS>
+GStaticRecMutex *mutex
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rec_mutex_unlock</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRecMutex *mutex
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rec_mutex_lock_full</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRecMutex *mutex,guint            depth
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rec_mutex_unlock_full</NAME>
+<RETURNS>guint  </RETURNS>
+GStaticRecMutex *mutex
+</FUNCTION>
+<STRUCT>
+<NAME>GStaticRWLock</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GStaticRWLock</NAME>
+struct GStaticRWLock
+{
+  GStaticMutex mutex; 
+  GCond *read_cond;
+  GCond *write_cond;
+  guint read_counter;
+  gboolean write;
+  guint want_to_write;
+};
+</STRUCT>
+<MACRO>
+<NAME>G_STATIC_RW_LOCK_INIT</NAME>
+#define G_STATIC_RW_LOCK_INIT { G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, FALSE }
+</MACRO>
+<FUNCTION>
+<NAME>g_static_rw_lock_reader_lock</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRWLock* lock
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rw_lock_reader_trylock</NAME>
+<RETURNS>gboolean  </RETURNS>
+GStaticRWLock* lock
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rw_lock_reader_unlock</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRWLock* lock
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rw_lock_writer_lock</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRWLock* lock
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rw_lock_writer_trylock</NAME>
+<RETURNS>gboolean  </RETURNS>
+GStaticRWLock* lock
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rw_lock_writer_unlock</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRWLock* lock
+</FUNCTION>
+<FUNCTION>
+<NAME>g_static_rw_lock_free</NAME>
+<RETURNS>void  </RETURNS>
+GStaticRWLock* lock
+</FUNCTION>
+<FUNCTION>
 <NAME>glib_dummy_decl</NAME>
 <RETURNS>void  </RETURNS>
 void
 </FUNCTION>
 <MACRO>
 <NAME>G_LOCK_NAME</NAME>
-#define G_LOCK_NAME(name)              (g__ ## name ## _lock)
+#define G_LOCK_NAME(name)              g__ ## name ## _lock
 </MACRO>
 <MACRO>
 <NAME>G_LOCK_DEFINE_STATIC</NAME>
@@ -4126,12 +4840,11 @@ void
 </MACRO>
 <MACRO>
 <NAME>G_TRYLOCK</NAME>
-#    define G_TRYLOCK(name)            G_STMT_START{             \
-        g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,                          \
+#    define G_TRYLOCK(name)                                      \
+        (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,                 \
               "file %s: line %d (%s): try locking: %s ",         \
               __FILE__,        __LINE__, G_GNUC_PRETTY_FUNCTION, \
-               #name);                                            \
-     }G_STMT_END,      g_static_mutex_trylock (&G_LOCK_NAME (name))
+               #name), g_static_mutex_trylock (&G_LOCK_NAME (name)))
 </MACRO>
 <MACRO>
 <NAME>G_LOCK</NAME>
@@ -4167,99 +4880,433 @@ void
 </MACRO>
 <MACRO>
 <NAME>G_TRYLOCK</NAME>
-#  define G_TRYLOCK(name)              (FALSE)
-</MACRO>
-<VARIABLE>
-<NAME>g_log_domain_gmodule</NAME>
-extern const char      *g_log_domain_gmodule;
-</VARIABLE>
-<MACRO>
-<NAME>G_MODULE_IMPORT</NAME>
-#define        G_MODULE_IMPORT         extern
-</MACRO>
-<MACRO>
-<NAME>G_MODULE_EXPORT</NAME>
-#  define      G_MODULE_EXPORT         __declspec(dllexport)
-</MACRO>
-<MACRO>
-<NAME>G_MODULE_EXPORT</NAME>
-#  define      G_MODULE_EXPORT
+#  define G_TRYLOCK(name)              (TRUE)
 </MACRO>
-<ENUM>
-<NAME>GModuleFlags</NAME>
-typedef enum
-{
-  G_MODULE_BIND_LAZY   = 1 << 0,
-  G_MODULE_BIND_MASK   = 0x01
-} GModuleFlags;
-</ENUM>
+<FUNCTION>
+<NAME>g_async_queue_new</NAME>
+<RETURNS>GAsyncQueue *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_lock</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_unlock</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_ref</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_ref_unlocked</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_unref</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_unref_and_unlock</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_push</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue,gpointer     data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_push_unlocked</NAME>
+<RETURNS>void  </RETURNS>
+GAsyncQueue *queue,gpointer     data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_pop</NAME>
+<RETURNS>gpointer  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_pop_unlocked</NAME>
+<RETURNS>gpointer  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_try_pop</NAME>
+<RETURNS>gpointer  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_try_pop_unlocked</NAME>
+<RETURNS>gpointer  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_timed_pop</NAME>
+<RETURNS>gpointer  </RETURNS>
+GAsyncQueue *queue,GTimeVal    *end_time
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_timed_pop_unlocked</NAME>
+<RETURNS>gpointer  </RETURNS>
+GAsyncQueue *queue,GTimeVal    *end_time
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_length</NAME>
+<RETURNS>gint  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
+<FUNCTION>
+<NAME>g_async_queue_length_unlocked</NAME>
+<RETURNS>gint  </RETURNS>
+GAsyncQueue *queue
+</FUNCTION>
 <STRUCT>
-<NAME>GModule</NAME>
+<NAME>GThreadPool</NAME>
+struct GThreadPool
+{
+  GFunc thread_func;
+  gulong stack_size;
+  gboolean bound; 
+  GThreadPriority priority;
+  gboolean exclusive;
+  gpointer user_data;
+};
 </STRUCT>
-<USER_FUNCTION>
-<NAME>GModuleCheckInit</NAME>
-<RETURNS>const gchar *</RETURNS>
-GModule        *module
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GModuleUnload</NAME>
-<RETURNS>void </RETURNS>
-GModule        *module
-</USER_FUNCTION>
 <FUNCTION>
-<NAME>g_module_supported</NAME>
-<RETURNS>gboolean      </RETURNS>
-void
+<NAME>g_thread_pool_new</NAME>
+<RETURNS>GThreadPool *</RETURNS>
+GFunc            thread_func,gint             max_threads,gulong           stack_size,gboolean         bound,GThreadPriority  priority,gboolean         exclusive,gpointer         user_data,GError         **error
 </FUNCTION>
 <FUNCTION>
-<NAME>g_module_open</NAME>
-<RETURNS>GModule *</RETURNS>
-const gchar            *file_name,GModuleFlags  flags
+<NAME>g_thread_pool_push</NAME>
+<RETURNS>void  </RETURNS>
+GThreadPool     *pool,gpointer         data,GError         **error
 </FUNCTION>
 <FUNCTION>
-<NAME>g_module_close</NAME>
-<RETURNS>gboolean      </RETURNS>
-GModule                *module
+<NAME>g_thread_pool_set_max_threads</NAME>
+<RETURNS>void  </RETURNS>
+GThreadPool     *pool,gint             max_threads,GError         **error
 </FUNCTION>
 <FUNCTION>
-<NAME>g_module_make_resident</NAME>
-<RETURNS>void  </RETURNS>
-GModule                *module
+<NAME>g_thread_pool_get_max_threads</NAME>
+<RETURNS>gint  </RETURNS>
+GThreadPool     *pool
 </FUNCTION>
 <FUNCTION>
-<NAME>g_module_error</NAME>
-<RETURNS>gchar *</RETURNS>
-void
+<NAME>g_thread_pool_get_num_threads</NAME>
+<RETURNS>guint  </RETURNS>
+GThreadPool     *pool
 </FUNCTION>
 <FUNCTION>
-<NAME>g_module_symbol</NAME>
-<RETURNS>gboolean      </RETURNS>
-GModule                *module,const gchar             *symbol_name,gpointer           *symbol
+<NAME>g_thread_pool_unprocessed</NAME>
+<RETURNS>guint  </RETURNS>
+GThreadPool     *pool
 </FUNCTION>
 <FUNCTION>
-<NAME>g_module_name</NAME>
-<RETURNS>gchar *</RETURNS>
-GModule                *module
+<NAME>g_thread_pool_free</NAME>
+<RETURNS>void  </RETURNS>
+GThreadPool     *pool,gboolean         immediate,gboolean         wait
 </FUNCTION>
 <FUNCTION>
-<NAME>g_module_build_path</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar            *directory,const gchar          *module_name
+<NAME>g_thread_pool_set_max_unused_threads</NAME>
+<RETURNS>void  </RETURNS>
+gint      max_threads
 </FUNCTION>
-<MACRO>
-<NAME>GLIB_HAVE_SYS_POLL_H</NAME>
-#define GLIB_HAVE_SYS_POLL_H
-</MACRO>
-<MACRO>
-<NAME>G_MINFLOAT</NAME>
-#define G_MINFLOAT     FLT_MIN
-</MACRO>
-<MACRO>
-<NAME>G_MAXFLOAT</NAME>
-#define G_MAXFLOAT     FLT_MAX
-</MACRO>
-<MACRO>
-<NAME>G_MINDOUBLE</NAME>
+<FUNCTION>
+<NAME>g_thread_pool_get_max_unused_threads</NAME>
+<RETURNS>gint  </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_thread_pool_get_num_unused_threads</NAME>
+<RETURNS>guint  </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_thread_pool_stop_unused_threads</NAME>
+<RETURNS>void  </RETURNS>
+void
+</FUNCTION>
+<TYPEDEF>
+<NAME>gunichar</NAME>
+typedef guint32 gunichar;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>gunichar2</NAME>
+typedef guint16 gunichar2;
+</TYPEDEF>
+<ENUM>
+<NAME>GUnicodeType</NAME>
+typedef enum {
+  G_UNICODE_CONTROL,
+  G_UNICODE_FORMAT,
+  G_UNICODE_UNASSIGNED,
+  G_UNICODE_PRIVATE_USE,
+  G_UNICODE_SURROGATE,
+  G_UNICODE_LOWERCASE_LETTER,
+  G_UNICODE_MODIFIER_LETTER,
+  G_UNICODE_OTHER_LETTER,
+  G_UNICODE_TITLECASE_LETTER,
+  G_UNICODE_UPPERCASE_LETTER,
+  G_UNICODE_COMBINING_MARK,
+  G_UNICODE_ENCLOSING_MARK,
+  G_UNICODE_NON_SPACING_MARK,
+  G_UNICODE_DECIMAL_NUMBER,
+  G_UNICODE_LETTER_NUMBER,
+  G_UNICODE_OTHER_NUMBER,
+  G_UNICODE_CONNECT_PUNCTUATION,
+  G_UNICODE_DASH_PUNCTUATION,
+  G_UNICODE_CLOSE_PUNCTUATION,
+  G_UNICODE_FINAL_PUNCTUATION,
+  G_UNICODE_INITIAL_PUNCTUATION,
+  G_UNICODE_OTHER_PUNCTUATION,
+  G_UNICODE_OPEN_PUNCTUATION,
+  G_UNICODE_CURRENCY_SYMBOL,
+  G_UNICODE_MODIFIER_SYMBOL,
+  G_UNICODE_MATH_SYMBOL,
+  G_UNICODE_OTHER_SYMBOL,
+  G_UNICODE_LINE_SEPARATOR,
+  G_UNICODE_PARAGRAPH_SEPARATOR,
+  G_UNICODE_SPACE_SEPARATOR
+} GUnicodeType;
+</ENUM>
+<FUNCTION>
+<NAME>g_get_charset</NAME>
+<RETURNS>gboolean  </RETURNS>
+char **charset
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isalnum</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isalpha</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_iscntrl</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isdigit</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isgraph</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_islower</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isprint</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_ispunct</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isspace</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isupper</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isxdigit</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_istitle</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_isdefined</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_iswide</NAME>
+<RETURNS>gboolean  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_toupper</NAME>
+<RETURNS>gunichar  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_tolower</NAME>
+<RETURNS>gunichar  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_totitle</NAME>
+<RETURNS>gunichar  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_digit_value</NAME>
+<RETURNS>gint  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_xdigit_value</NAME>
+<RETURNS>gint  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_type</NAME>
+<RETURNS>GUnicodeType  </RETURNS>
+gunichar c
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unicode_canonical_ordering</NAME>
+<RETURNS>void  </RETURNS>
+gunichar *string,size_t   len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unicode_canonical_decomposition</NAME>
+<RETURNS>gunichar  *</RETURNS>
+gunichar  ch,size_t   *result_len
+</FUNCTION>
+<MACRO>
+<NAME>GLIB_VAR</NAME>
+#      define GLIB_VAR __declspec(dllexport)
+</MACRO>
+<MACRO>
+<NAME>GLIB_VAR</NAME>
+#      define GLIB_VAR extern __declspec(dllimport)
+</MACRO>
+<MACRO>
+<NAME>GLIB_VAR</NAME>
+#    define GLIB_VAR extern
+</MACRO>
+<MACRO>
+<NAME>g_utf8_next_char</NAME>
+#define g_utf8_next_char(p) (char *)((p) + g_utf8_skip[*(guchar *)(p)])
+</MACRO>
+<FUNCTION>
+<NAME>g_utf8_get_char</NAME>
+<RETURNS>gunichar  </RETURNS>
+const gchar *p
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_offset_to_pointer</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gchar *str,gint         offset
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_pointer_to_offset</NAME>
+<RETURNS>gint  </RETURNS>
+const gchar *str,const gchar *pos
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_prev_char</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gchar *p
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_find_next_char</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gchar *p,const gchar *bound
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_find_prev_char</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gchar *str,const gchar *p
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_strlen</NAME>
+<RETURNS>gint  </RETURNS>
+const gchar *p,gint         max
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_strncpy</NAME>
+<RETURNS>gchar  *</RETURNS>
+gchar       *dest,const gchar *src,size_t       n
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_strchr</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gchar *p,gunichar     ch
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_strrchr</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gchar *p,gunichar     ch
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_to_utf16</NAME>
+<RETURNS>gunichar2  *</RETURNS>
+const gchar     *str,gint             len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf8_to_ucs4</NAME>
+<RETURNS>gunichar  *</RETURNS>
+const gchar     *str,gint             len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf16_to_ucs4</NAME>
+<RETURNS>gunichar  *</RETURNS>
+const gunichar2 *str,gint             len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_utf16_to_utf8</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gunichar2 *str,gint             len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ucs4_to_utf16</NAME>
+<RETURNS>gunichar  *</RETURNS>
+const gunichar  *str,gint             len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_ucs4_to_utf8</NAME>
+<RETURNS>gchar  *</RETURNS>
+const gunichar  *str,gint             len
+</FUNCTION>
+<FUNCTION>
+<NAME>g_unichar_to_utf8</NAME>
+<RETURNS>gint  </RETURNS>
+gunichar    c,char       *outbuf
+</FUNCTION>
+<MACRO>
+<NAME>GLIB_HAVE_SYS_POLL_H</NAME>
+#define GLIB_HAVE_SYS_POLL_H
+</MACRO>
+<MACRO>
+<NAME>G_MINFLOAT</NAME>
+#define G_MINFLOAT     FLT_MIN
+</MACRO>
+<MACRO>
+<NAME>G_MAXFLOAT</NAME>
+#define G_MAXFLOAT     FLT_MAX
+</MACRO>
+<MACRO>
+<NAME>G_MINDOUBLE</NAME>
 #define G_MINDOUBLE    DBL_MIN
 </MACRO>
 <MACRO>
@@ -4275,6 +5322,10 @@ const gchar              *directory,const gchar          *module_name
 #define G_MAXSHORT     SHRT_MAX
 </MACRO>
 <MACRO>
+<NAME>G_MAXUSHORT</NAME>
+#define G_MAXUSHORT    USHRT_MAX
+</MACRO>
+<MACRO>
 <NAME>G_MININT</NAME>
 #define G_MININT       INT_MIN
 </MACRO>
@@ -4283,6 +5334,10 @@ const gchar              *directory,const gchar          *module_name
 #define G_MAXINT       INT_MAX
 </MACRO>
 <MACRO>
+<NAME>G_MAXUINT</NAME>
+#define G_MAXUINT      UINT_MAX
+</MACRO>
+<MACRO>
 <NAME>G_MINLONG</NAME>
 #define G_MINLONG      LONG_MIN
 </MACRO>
@@ -4290,6 +5345,10 @@ const gchar              *directory,const gchar          *module_name
 <NAME>G_MAXLONG</NAME>
 #define G_MAXLONG      LONG_MAX
 </MACRO>
+<MACRO>
+<NAME>G_MAXULONG</NAME>
+#define G_MAXULONG     ULONG_MAX
+</MACRO>
 <TYPEDEF>
 <NAME>gint8</NAME>
 typedef signed char gint8;
@@ -4306,6 +5365,14 @@ typedef signed short gint16;
 <NAME>guint16</NAME>
 typedef unsigned short guint16;
 </TYPEDEF>
+<MACRO>
+<NAME>G_GINT16_FORMAT</NAME>
+#define G_GINT16_FORMAT "hi"
+</MACRO>
+<MACRO>
+<NAME>G_GUINT16_FORMAT</NAME>
+#define G_GUINT16_FORMAT "hu"
+</MACRO>
 <TYPEDEF>
 <NAME>gint32</NAME>
 typedef signed int gint32;
@@ -4315,12 +5382,12 @@ typedef signed int gint32;
 typedef unsigned int guint32;
 </TYPEDEF>
 <MACRO>
-<NAME>G_GNUC_EXTENSION</NAME>
-#  define G_GNUC_EXTENSION __extension__
+<NAME>G_GINT32_FORMAT</NAME>
+#define G_GINT32_FORMAT "i"
 </MACRO>
 <MACRO>
-<NAME>G_GNUC_EXTENSION</NAME>
-#  define G_GNUC_EXTENSION
+<NAME>G_GUINT32_FORMAT</NAME>
+#define G_GUINT32_FORMAT "u"
 </MACRO>
 <MACRO>
 <NAME>G_HAVE_GINT64</NAME>
@@ -4335,9 +5402,25 @@ G_GNUC_EXTENSION typedef signed long long gint64;
 G_GNUC_EXTENSION typedef unsigned long long guint64;
 </TYPEDEF>
 <MACRO>
+<NAME>G_GINT64_FORMAT</NAME>
+#define G_GINT64_FORMAT "lli"
+</MACRO>
+<MACRO>
+<NAME>G_GUINT64_FORMAT</NAME>
+#define G_GUINT64_FORMAT "llu"
+</MACRO>
+<MACRO>
 <NAME>G_GINT64_CONSTANT</NAME>
 #define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL))
 </MACRO>
+<TYPEDEF>
+<NAME>gssize</NAME>
+typedef gint32  gssize;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>gsize</NAME>
+typedef guint32 gsize;
+</TYPEDEF>
 <MACRO>
 <NAME>GPOINTER_TO_INT</NAME>
 #define GPOINTER_TO_INT(p)     ((gint)   (p))
@@ -4372,11 +5455,19 @@ G_GNUC_EXTENSION typedef unsigned long long guint64;
 </MACRO>
 <MACRO>
 <NAME>GLIB_MINOR_VERSION</NAME>
-#define GLIB_MINOR_VERSION 2
+#define GLIB_MINOR_VERSION 3
 </MACRO>
 <MACRO>
 <NAME>GLIB_MICRO_VERSION</NAME>
-#define GLIB_MICRO_VERSION 3
+#define GLIB_MICRO_VERSION 1
+</MACRO>
+<MACRO>
+<NAME>G_OS_UNIX</NAME>
+#define G_OS_UNIX
+</MACRO>
+<MACRO>
+<NAME>G_VA_COPY</NAME>
+#define G_VA_COPY      __va_copy
 </MACRO>
 <MACRO>
 <NAME>G_HAVE_INLINE</NAME>
@@ -4426,6 +5517,16 @@ struct GStaticMutex
 <NAME>g_static_mutex_get_mutex</NAME>
 #define        g_static_mutex_get_mutex(mutex)   (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) :    g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
 </MACRO>
+<UNION>
+<NAME>GSystemThread</NAME>
+union GSystemThread
+{
+  char   data[4];
+  double dummy_double;
+  void  *dummy_pointer;
+  long   dummy_long;
+};
+</UNION>
 <MACRO>
 <NAME>GINT16_TO_LE</NAME>
 #define GINT16_TO_LE(val)      ((gint16) (val))
@@ -4534,11 +5635,1786 @@ struct GStaticMutex
 <NAME>GLIB_SYSDEF_POLLNVAL</NAME>
 #define GLIB_SYSDEF_POLLNVAL =32
 </MACRO>
+<VARIABLE>
+<NAME>g_log_domain_gmodule</NAME>
+extern const char      *g_log_domain_gmodule;
+</VARIABLE>
+<MACRO>
+<NAME>G_MODULE_IMPORT</NAME>
+#define        G_MODULE_IMPORT         extern
+</MACRO>
+<MACRO>
+<NAME>G_MODULE_EXPORT</NAME>
+#  define      G_MODULE_EXPORT         __declspec(dllexport)
+</MACRO>
+<MACRO>
+<NAME>G_MODULE_EXPORT</NAME>
+#  define      G_MODULE_EXPORT
+</MACRO>
+<ENUM>
+<NAME>GModuleFlags</NAME>
+typedef enum
+{
+  G_MODULE_BIND_LAZY   = 1 << 0,
+  G_MODULE_BIND_MASK   = 0x01
+} GModuleFlags;
+</ENUM>
+<STRUCT>
+<NAME>GModule</NAME>
+</STRUCT>
+<USER_FUNCTION>
+<NAME>GModuleCheckInit</NAME>
+<RETURNS>const gchar *</RETURNS>
+GModule        *module
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GModuleUnload</NAME>
+<RETURNS>void </RETURNS>
+GModule        *module
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>g_module_supported</NAME>
+<RETURNS>gboolean      </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_module_open</NAME>
+<RETURNS>GModule *</RETURNS>
+const gchar            *file_name,GModuleFlags  flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_module_close</NAME>
+<RETURNS>gboolean      </RETURNS>
+GModule                *module
+</FUNCTION>
+<FUNCTION>
+<NAME>g_module_make_resident</NAME>
+<RETURNS>void  </RETURNS>
+GModule                *module
+</FUNCTION>
+<FUNCTION>
+<NAME>g_module_error</NAME>
+<RETURNS>gchar *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_module_symbol</NAME>
+<RETURNS>gboolean      </RETURNS>
+GModule                *module,const gchar             *symbol_name,gpointer           *symbol
+</FUNCTION>
+<FUNCTION>
+<NAME>g_module_name</NAME>
+<RETURNS>gchar *</RETURNS>
+GModule                *module
+</FUNCTION>
+<FUNCTION>
+<NAME>g_module_build_path</NAME>
+<RETURNS>gchar *</RETURNS>
+const gchar            *directory,const gchar          *module_name
+</FUNCTION>
+<MACRO>
+<NAME>G_TYPE_IS_ENUM</NAME>
+#define G_TYPE_IS_ENUM(type)          (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM)
+</MACRO>
+<MACRO>
+<NAME>G_ENUM_CLASS</NAME>
+#define G_ENUM_CLASS(class)           (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass))
+</MACRO>
 <MACRO>
-<NAME>G_HAVE_WCHAR_H</NAME>
-#define G_HAVE_WCHAR_H 1
+<NAME>G_IS_ENUM_CLASS</NAME>
+#define G_IS_ENUM_CLASS(class)        (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM))
 </MACRO>
 <MACRO>
-<NAME>G_HAVE_WCTYPE_H</NAME>
-#define G_HAVE_WCTYPE_H 1
+<NAME>G_ENUM_CLASS_TYPE</NAME>
+#define G_ENUM_CLASS_TYPE(class)       (G_TYPE_FROM_CLASS (class))
 </MACRO>
+<MACRO>
+<NAME>G_ENUM_CLASS_TYPE_NAME</NAME>
+#define G_ENUM_CLASS_TYPE_NAME(class)  (g_type_name (G_ENUM_TYPE (class)))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_IS_FLAGS</NAME>
+#define G_TYPE_IS_FLAGS(type)         (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS)
+</MACRO>
+<MACRO>
+<NAME>G_FLAGS_CLASS</NAME>
+#define G_FLAGS_CLASS(class)          (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass))
+</MACRO>
+<MACRO>
+<NAME>G_IS_FLAGS_CLASS</NAME>
+#define G_IS_FLAGS_CLASS(class)        (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS))
+</MACRO>
+<MACRO>
+<NAME>G_FLAGS_CLASS_TYPE</NAME>
+#define G_FLAGS_CLASS_TYPE(class)      (G_TYPE_FROM_CLASS (class))
+</MACRO>
+<MACRO>
+<NAME>G_FLAGS_CLASS_TYPE_NAME</NAME>
+#define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_TYPE (class)))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_ENUM</NAME>
+#define G_IS_VALUE_ENUM(value)         (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_ENUM))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_FLAGS</NAME>
+#define G_IS_VALUE_FLAGS(value)        (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_FLAGS))
+</MACRO>
+<STRUCT>
+<NAME>GEnumClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GFlagsClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GEnumValue</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GFlagsValue</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GEnumValue</NAME>
+struct GEnumValue
+{
+  gint  value;
+  gchar *value_name;
+  gchar *value_nick;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GFlagsValue</NAME>
+struct GFlagsValue
+{
+  guint         value;
+  gchar *value_name;
+  gchar *value_nick;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_enum_get_value</NAME>
+<RETURNS>GEnumValue *</RETURNS>
+GEnumClass     *enum_class,gint                 value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_enum_get_value_by_name</NAME>
+<RETURNS>GEnumValue *</RETURNS>
+GEnumClass     *enum_class,const gchar *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_enum_get_value_by_nick</NAME>
+<RETURNS>GEnumValue *</RETURNS>
+GEnumClass     *enum_class,const gchar *nick
+</FUNCTION>
+<FUNCTION>
+<NAME>g_flags_get_first_value</NAME>
+<RETURNS>GFlagsValue *</RETURNS>
+GFlagsClass    *flags_class,guint               value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_flags_get_value_by_name</NAME>
+<RETURNS>GFlagsValue *</RETURNS>
+GFlagsClass    *flags_class,const gchar        *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_flags_get_value_by_nick</NAME>
+<RETURNS>GFlagsValue *</RETURNS>
+GFlagsClass    *flags_class,const gchar        *nick
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_enum</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,gint            v_enum
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_enum</NAME>
+<RETURNS>gint  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_flags</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,guint           v_flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_flags</NAME>
+<RETURNS>guint  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_enum_register_static</NAME>
+<RETURNS>GType         </RETURNS>
+const gchar          *name,const GEnumValue  *const_static_values
+</FUNCTION>
+<FUNCTION>
+<NAME>g_flags_register_static</NAME>
+<RETURNS>GType         </RETURNS>
+const gchar          *name,const GFlagsValue *const_static_values
+</FUNCTION>
+<FUNCTION>
+<NAME>g_enum_complete_type_info</NAME>
+<RETURNS>void  </RETURNS>
+GType         g_enum_type,GTypeInfo          *info,const GEnumValue  *const_values
+</FUNCTION>
+<FUNCTION>
+<NAME>g_flags_complete_type_info</NAME>
+<RETURNS>void  </RETURNS>
+GType         g_flags_type,GTypeInfo         *info,const GFlagsValue *const_values
+</FUNCTION>
+<MACRO>
+<NAME>G_TYPE_IS_OBJECT</NAME>
+#define G_TYPE_IS_OBJECT(type)    (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
+</MACRO>
+<MACRO>
+<NAME>G_OBJECT</NAME>
+#define G_OBJECT(object)          (G_IS_OBJECT (object) ? ((GObject*) (object)) : \
+                                   G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
+</MACRO>
+<MACRO>
+<NAME>G_OBJECT_CLASS</NAME>
+#define G_OBJECT_CLASS(class)     (G_IS_OBJECT_CLASS (class) ? ((GObjectClass*) (class)) : \
+                                   G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
+</MACRO>
+<MACRO>
+<NAME>G_IS_OBJECT</NAME>
+#define G_IS_OBJECT(object)       (((GObject*) (object)) != NULL && \
+                                   G_IS_OBJECT_CLASS (((GTypeInstance*) (object))->g_class))
+</MACRO>
+<MACRO>
+<NAME>G_IS_OBJECT_CLASS</NAME>
+#define G_IS_OBJECT_CLASS(class)   (((GTypeClass*) (class)) != NULL && \
+                                   G_TYPE_IS_OBJECT (((GTypeClass*) (class))->g_type))
+</MACRO>
+<MACRO>
+<NAME>G_OBJECT_GET_CLASS</NAME>
+#define G_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
+</MACRO>
+<MACRO>
+<NAME>G_OBJECT_TYPE</NAME>
+#define G_OBJECT_TYPE(object)     (G_TYPE_FROM_INSTANCE (object))
+</MACRO>
+<MACRO>
+<NAME>G_OBJECT_TYPE_NAME</NAME>
+#define G_OBJECT_TYPE_NAME(object) (g_type_name (G_OBJECT_TYPE (object)))
+</MACRO>
+<MACRO>
+<NAME>G_OBJECT_CLASS_TYPE</NAME>
+#define G_OBJECT_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
+</MACRO>
+<MACRO>
+<NAME>G_OBJECT_CLASS_NAME</NAME>
+#define G_OBJECT_CLASS_NAME(class) (g_type_name (G_OBJECT_CLASS_TYPE (class)))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_OBJECT</NAME>
+#define G_IS_VALUE_OBJECT(value)   (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_OBJECT))
+</MACRO>
+<MACRO>
+<NAME>G_NOTIFY_PRIORITY</NAME>
+#define        G_NOTIFY_PRIORITY          (G_PRIORITY_HIGH_IDLE + 20)
+</MACRO>
+<STRUCT>
+<NAME>GObject</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GObjectClass</NAME>
+</STRUCT>
+<USER_FUNCTION>
+<NAME>GObjectGetParamFunc</NAME>
+<RETURNS>void </RETURNS>
+GObject     *object,
+                                        guint        param_id,
+                                        GValue      *value,
+                                        GParamSpec  *pspec,
+                                        const gchar *trailer
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GObjectSetParamFunc</NAME>
+<RETURNS>void </RETURNS>
+GObject     *object,
+                                        guint        param_id,
+                                        GValue      *value,
+                                        GParamSpec  *pspec,
+                                        const gchar *trailer
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GObjectFinalizeFunc</NAME>
+<RETURNS>void </RETURNS>
+GObject     *object
+</USER_FUNCTION>
+<STRUCT>
+<NAME>GObject</NAME>
+struct GObject
+{
+  GTypeInstance g_type_instance;
+  
+  /*< private >*/
+  guint                ref_count;
+  GData               *qdata;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_object_class_install_param</NAME>
+<RETURNS>void  </RETURNS>
+GObjectClass   *oclass,guint       param_id,GParamSpec    *pspec
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_class_find_param_spec</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+GObjectClass   *oclass,const gchar        *param_name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_new</NAME>
+<RETURNS>gpointer  </RETURNS>
+GType      object_type,const gchar        *first_param_name,...
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_new_valist</NAME>
+<RETURNS>gpointer  </RETURNS>
+GType      object_type,const gchar        *first_param_name,va_list        var_args
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_set</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,const gchar     *first_param_name,...
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_get</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,const gchar     *first_param_name,...
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_set_valist</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,const gchar     *first_param_name,va_list        var_args
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_get_valist</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,const gchar     *first_param_name,va_list        var_args
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_set_param</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,const gchar    *param_name,const GValue   *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_get_param</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,const gchar    *param_name,GValue       *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_queue_param_changed</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,const gchar     *param_name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_ref</NAME>
+<RETURNS>GObject *</RETURNS>
+GObject           *object
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_unref</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_get_qdata</NAME>
+<RETURNS>gpointer  </RETURNS>
+GObject           *object,GQuark           quark
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_set_qdata</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,GQuark           quark,gpointer          data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_set_qdata_full</NAME>
+<RETURNS>void  </RETURNS>
+GObject           *object,GQuark           quark,gpointer          data,GDestroyNotify  destroy
+</FUNCTION>
+<FUNCTION>
+<NAME>g_object_steal_qdata</NAME>
+<RETURNS>gpointer  </RETURNS>
+GObject           *object,GQuark           quark
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_object</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,GObject        *v_object
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_object</NAME>
+<RETURNS>GObject *</RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_dup_object</NAME>
+<RETURNS>GObject *</RETURNS>
+GValue         *value
+</FUNCTION>
+<MACRO>
+<NAME>G_WARN_INVALID_PARAM_ID</NAME>
+#define G_WARN_INVALID_PARAM_ID(object, param_id, pspec) \
+G_STMT_START { \
+  GObject *_object = (GObject*) (object); \
+  GParamSpec *_pspec = (GParamSpec*) (pspec); \
+  guint _param_id = (param_id); \
+  g_warning ("%s: invalid parameter id %u for \"%s\" of type `%s' in `%s'", \
+            G_STRLOC, \
+            _param_id, \
+            _pspec->name, \
+            g_type_name (G_PARAM_SPEC_TYPE (_pspec)), \
+            BSE_OBJECT_TYPE_NAME (_object)); \
+} G_STMT_END
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_IS_PARAM</NAME>
+#define G_TYPE_IS_PARAM(type)          (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM)
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_TYPE</NAME>
+#define G_PARAM_SPEC_TYPE(pspec)       (G_TYPE_FROM_INSTANCE (pspec))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_TYPE_NAME</NAME>
+#define G_PARAM_SPEC_TYPE_NAME(pspec)  (g_type_name (G_PARAM_SPEC_TYPE (pspec)))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC</NAME>
+#define G_PARAM_SPEC(pspec)            (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC</NAME>
+#define G_IS_PARAM_SPEC(pspec)         (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_GET_CLASS</NAME>
+#define G_PARAM_SPEC_GET_CLASS(pspec)  (G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_VALUE</NAME>
+#define        G_IS_PARAM_VALUE(pspec, value)  (g_type_is_a (G_VALUE_TYPE (value), G_PARAM_SPEC_VALUE_TYPE (pspec))) /* FIXME */
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_VALUE_TYPE</NAME>
+#define        G_PARAM_SPEC_VALUE_TYPE(pspec)  (G_PARAM_SPEC_GET_CLASS (pspec)->value_type)
+</MACRO>
+<ENUM>
+<NAME>GParamFlags</NAME>
+typedef enum
+{
+  G_PARAM_READABLE            = 1 << 0,
+  G_PARAM_WRITABLE            = 1 << 1,
+  G_PARAM_MASK                = 0x000f,
+  /* bits in the range 0xfff0 are reserved for 3rd party usage */
+  G_PARAM_USER_MASK           = 0xfff0
+} GParamFlags;
+</ENUM>
+<STRUCT>
+<NAME>GParamSpecClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpec</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpec</NAME>
+struct GParamSpec
+{
+  GTypeInstance  g_instance;
+
+  gchar         *name;
+  gchar         *nick;
+  gchar         *blurb;
+  GParamFlags    flags;
+
+  /*< private >*/
+  GType                 owner_type;
+  GData                *qdata;
+  guint          ref_count;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_param_spec_ref</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+GParamSpec    *pspec
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_unref</NAME>
+<RETURNS>void  </RETURNS>
+GParamSpec    *pspec
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_get_qdata</NAME>
+<RETURNS>gpointer  </RETURNS>
+GParamSpec    *pspec,GQuark         quark
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_set_qdata</NAME>
+<RETURNS>void  </RETURNS>
+GParamSpec    *pspec,GQuark         quark,gpointer       data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_set_qdata_full</NAME>
+<RETURNS>void  </RETURNS>
+GParamSpec    *pspec,GQuark         quark,gpointer       data,GDestroyNotify destroy
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_steal_qdata</NAME>
+<RETURNS>gpointer  </RETURNS>
+GParamSpec    *pspec,GQuark         quark
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_value_set_default</NAME>
+<RETURNS>void  </RETURNS>
+GParamSpec    *pspec,GValue           *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_value_defaults</NAME>
+<RETURNS>gboolean      </RETURNS>
+GParamSpec    *pspec,GValue           *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_value_validate</NAME>
+<RETURNS>gboolean      </RETURNS>
+GParamSpec    *pspec,GValue           *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_values_cmp</NAME>
+<RETURNS>gint  </RETURNS>
+GParamSpec    *pspec,const GValue  *value1,const GValue  *value2
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_internal</NAME>
+<RETURNS>gpointer      </RETURNS>
+GType          param_type,const gchar   *name,const gchar   *nick,const gchar   *blurb,GParamFlags    flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_hash_table_new</NAME>
+<RETURNS>GHashTable *</RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_hash_table_insert</NAME>
+<RETURNS>void  </RETURNS>
+GHashTable    *hash_table,GParamSpec    *pspec,GType           owner_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_hash_table_remove</NAME>
+<RETURNS>void  </RETURNS>
+GHashTable    *hash_table,GParamSpec    *pspec
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_hash_table_lookup</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+GHashTable    *hash_table,const gchar   *param_name,GType              owner_type,gboolean       try_ancestors,const gchar  **trailer
+</FUNCTION>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_CHAR</NAME>
+#define G_IS_PARAM_SPEC_CHAR(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_CHAR</NAME>
+#define G_PARAM_SPEC_CHAR(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_UCHAR</NAME>
+#define G_IS_PARAM_SPEC_UCHAR(pspec)    (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_UCHAR</NAME>
+#define G_PARAM_SPEC_UCHAR(pspec)       (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_BOOLEAN</NAME>
+#define G_IS_PARAM_SPEC_BOOLEAN(pspec)  (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_BOOLEAN</NAME>
+#define G_PARAM_SPEC_BOOLEAN(pspec)     (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_INT</NAME>
+#define G_IS_PARAM_SPEC_INT(pspec)      (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_INT</NAME>
+#define G_PARAM_SPEC_INT(pspec)         (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_UINT</NAME>
+#define G_IS_PARAM_SPEC_UINT(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_UINT</NAME>
+#define G_PARAM_SPEC_UINT(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_LONG</NAME>
+#define G_IS_PARAM_SPEC_LONG(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_LONG</NAME>
+#define G_PARAM_SPEC_LONG(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_ULONG</NAME>
+#define G_IS_PARAM_SPEC_ULONG(pspec)    (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_ULONG</NAME>
+#define G_PARAM_SPEC_ULONG(pspec)       (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_ENUM</NAME>
+#define G_IS_PARAM_SPEC_ENUM(pspec)     (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_ENUM</NAME>
+#define G_PARAM_SPEC_ENUM(pspec)        (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_FLAGS</NAME>
+#define G_IS_PARAM_SPEC_FLAGS(pspec)    (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_FLAGS</NAME>
+#define G_PARAM_SPEC_FLAGS(pspec)       (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_FLOAT</NAME>
+#define G_IS_PARAM_SPEC_FLOAT(pspec)    (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_FLOAT</NAME>
+#define G_PARAM_SPEC_FLOAT(pspec)       (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_DOUBLE</NAME>
+#define G_IS_PARAM_SPEC_DOUBLE(pspec)   (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_DOUBLE</NAME>
+#define G_PARAM_SPEC_DOUBLE(pspec)      (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_STRING</NAME>
+#define G_IS_PARAM_SPEC_STRING(pspec)   (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_STRING</NAME>
+#define G_PARAM_SPEC_STRING(pspec)      (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))
+</MACRO>
+<MACRO>
+<NAME>G_IS_PARAM_SPEC_OBJECT</NAME>
+#define G_IS_PARAM_SPEC_OBJECT(pspec)   (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
+</MACRO>
+<MACRO>
+<NAME>G_PARAM_SPEC_OBJECT</NAME>
+#define G_PARAM_SPEC_OBJECT(pspec)      (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
+</MACRO>
+<STRUCT>
+<NAME>GParamSpecChar</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecUChar</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecBoolean</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecInt</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecUInt</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecLong</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecULong</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecEnum</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecFlags</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecFloat</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecDouble</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecString</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecObject</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecChar</NAME>
+struct GParamSpecChar
+{
+  GParamSpec    parent_instance;
+  
+  gint8         minimum;
+  gint8         maximum;
+  gint8         default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecUChar</NAME>
+struct GParamSpecUChar
+{
+  GParamSpec    parent_instance;
+  
+  guint8        minimum;
+  guint8        maximum;
+  guint8        default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecBoolean</NAME>
+struct GParamSpecBoolean
+{
+  GParamSpec    parent_instance;
+  
+  gboolean      default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecInt</NAME>
+struct GParamSpecInt
+{
+  GParamSpec    parent_instance;
+  
+  gint          minimum;
+  gint          maximum;
+  gint          default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecUInt</NAME>
+struct GParamSpecUInt
+{
+  GParamSpec    parent_instance;
+  
+  guint         minimum;
+  guint         maximum;
+  guint         default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecLong</NAME>
+struct GParamSpecLong
+{
+  GParamSpec    parent_instance;
+  
+  glong         minimum;
+  glong         maximum;
+  glong         default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecULong</NAME>
+struct GParamSpecULong
+{
+  GParamSpec    parent_instance;
+  
+  gulong        minimum;
+  gulong        maximum;
+  gulong        default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecEnum</NAME>
+struct GParamSpecEnum
+{
+  GParamSpec    parent_instance;
+  
+  GEnumClass   *enum_class;
+  glong         default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecFlags</NAME>
+struct GParamSpecFlags
+{
+  GParamSpec    parent_instance;
+  
+  GFlagsClass  *flags_class;
+  gulong        default_value;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecFloat</NAME>
+struct GParamSpecFloat
+{
+  GParamSpec    parent_instance;
+  
+  gfloat        minimum;
+  gfloat        maximum;
+  gfloat        default_value;
+  gfloat        epsilon;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecDouble</NAME>
+struct GParamSpecDouble
+{
+  GParamSpec    parent_instance;
+  
+  gdouble       minimum;
+  gdouble       maximum;
+  gdouble       default_value;
+  gdouble       epsilon;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecString</NAME>
+struct GParamSpecString
+{
+  GParamSpec    parent_instance;
+  
+  gchar        *default_value;
+  gchar        *cset_first;
+  gchar        *cset_nth;
+  gchar         substitutor;
+  guint         null_fold_if_empty : 1;
+  guint         ensure_non_null : 1;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GParamSpecObject</NAME>
+struct GParamSpecObject
+{
+  GParamSpec    parent_instance;
+  
+  GType         object_type;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_param_spec_char</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,gint8           minimum,gint8           maximum,gint8           default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_uchar</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,guint8          minimum,guint8          maximum,guint8          default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_boolean</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,gboolean        default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_int</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,gint            minimum,gint            maximum,gint            default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_uint</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,guint           minimum,guint           maximum,guint           default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_long</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,glong           minimum,glong           maximum,glong           default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_ulong</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,gulong          minimum,gulong          maximum,gulong          default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_enum</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,GType           enum_type,gint            default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_flags</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,GType           flags_type,guint           default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_float</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,gfloat          minimum,gfloat          maximum,gfloat          default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_double</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,gdouble         minimum,gdouble         maximum,gdouble         default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_string</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,const gchar    *default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_string_c</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,const gchar    *default_value,GParamFlags     flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_param_spec_object</NAME>
+<RETURNS>GParamSpec *</RETURNS>
+const gchar    *name,const gchar    *nick,const gchar    *blurb,GType           object_type,GParamFlags     flags
+</FUNCTION>
+<VARIABLE>
+<NAME>g_log_domain_gobject</NAME>
+extern const char *g_log_domain_gobject;
+</VARIABLE>
+<MACRO>
+<NAME>G_TYPE_FUNDAMENTAL</NAME>
+#define G_TYPE_FUNDAMENTAL(type)                ((type) & 0xff)
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_FUNDAMENTAL_MAX</NAME>
+#define        G_TYPE_FUNDAMENTAL_MAX                  (0xff)
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_DERIVE_ID</NAME>
+#define G_TYPE_DERIVE_ID(ptype, branch_seqno)   (G_TYPE_FUNDAMENTAL (ptype) | ((branch_seqno) << 8))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_BRANCH_SEQNO</NAME>
+#define G_TYPE_BRANCH_SEQNO(type)               ((type) >> 8)
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_FUNDAMENTAL_LAST</NAME>
+#define G_TYPE_FUNDAMENTAL_LAST                 ((GType) g_type_fundamental_last ())
+</MACRO>
+<ENUM>
+<NAME>GTypeFundamentals</NAME>
+typedef enum    /*< skip >*/
+{
+  /* standard types, introduced by g_type_init() */
+  G_TYPE_INVALID,
+  G_TYPE_NONE,
+  G_TYPE_INTERFACE,
+
+  /* GLib type ids */
+  G_TYPE_CHAR,
+  G_TYPE_UCHAR,
+  G_TYPE_BOOLEAN,
+  G_TYPE_INT,
+  G_TYPE_UINT,
+  G_TYPE_LONG,
+  G_TYPE_ULONG,
+  G_TYPE_ENUM,
+  G_TYPE_FLAGS,
+  G_TYPE_FLOAT,
+  G_TYPE_DOUBLE,
+  G_TYPE_STRING,
+  G_TYPE_PARAM,
+  G_TYPE_OBJECT,
+
+  /* the following reserved ids should vanish soon */
+  G_TYPE_GTK_BOXED,
+  G_TYPE_GTK_POINTER,
+  G_TYPE_GTK_SIGNAL,
+
+  /* reserved fundamental type ids,
+   * mail gtk-devel-list@redhat.com for reservations
+   */
+  G_TYPE_BSE_PROCEDURE,
+  G_TYPE_BSE_TIME,
+  G_TYPE_BSE_NOTE,
+  G_TYPE_BSE_DOTS,
+  G_TYPE_GLE_GOBJECT,
+
+  G_TYPE_LAST_RESERVED_FUNDAMENTAL,
+
+  /* derived type ids */
+  /* FIXME: G_TYPE_PARAM_INTERFACE */
+  G_TYPE_PARAM_CHAR             = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 1),
+  G_TYPE_PARAM_UCHAR            = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 2),
+  G_TYPE_PARAM_BOOLEAN          = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 3),
+  G_TYPE_PARAM_INT              = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 4),
+  G_TYPE_PARAM_UINT             = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 5),
+  G_TYPE_PARAM_LONG             = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 6),
+  G_TYPE_PARAM_ULONG            = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 7),
+  G_TYPE_PARAM_ENUM             = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 8),
+  G_TYPE_PARAM_FLAGS            = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 9),
+  G_TYPE_PARAM_FLOAT            = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 10),
+  G_TYPE_PARAM_DOUBLE           = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 11),
+  G_TYPE_PARAM_STRING           = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 12),
+  /* FIXME: G_TYPE_PARAM_PARAM */
+  G_TYPE_PARAM_OBJECT           = G_TYPE_DERIVE_ID (G_TYPE_PARAM, 13)
+} GTypeFundamentals;
+</ENUM>
+<MACRO>
+<NAME>G_TYPE_IS_INTERFACE</NAME>
+#define G_TYPE_IS_INTERFACE(type)               (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_IS_CLASSED</NAME>
+#define G_TYPE_IS_CLASSED(type)                 (g_type_check_flags ((type), G_TYPE_FLAG_CLASSED))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_IS_INSTANTIATABLE</NAME>
+#define G_TYPE_IS_INSTANTIATABLE(type)          (g_type_check_flags ((type), G_TYPE_FLAG_INSTANTIATABLE))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_IS_DERIVABLE</NAME>
+#define G_TYPE_IS_DERIVABLE(type)               (g_type_check_flags ((type), G_TYPE_FLAG_DERIVABLE))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_IS_DEEP_DERIVABLE</NAME>
+#define G_TYPE_IS_DEEP_DERIVABLE(type)          (g_type_check_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_IS_PARAM</NAME>
+#define G_TYPE_IS_PARAM(type)                   (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM)
+</MACRO>
+<TYPEDEF>
+<NAME>GType</NAME>
+typedef guint32                         GType;
+</TYPEDEF>
+<STRUCT>
+<NAME>GValue</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypePlugin</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypePluginVTable</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypeClass</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypeInterface</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypeInstance</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypeInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypeFundamentalInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GInterfaceInfo</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypeValueTable</NAME>
+</STRUCT>
+<STRUCT>
+<NAME>GTypeInstance</NAME>
+struct GTypeInstance
+{
+  /*< private >*/
+  GTypeClass *g_class;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GTypeInterface</NAME>
+struct GTypeInterface
+{
+  /*< private >*/
+  GType g_type;         /* iface type */
+  GType g_instance_type;
+};
+</STRUCT>
+<MACRO>
+<NAME>G_TYPE_CHECK_INSTANCE_CAST</NAME>
+#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_CHECK_CLASS_CAST</NAME>
+#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type)        (_G_TYPE_CCC ((g_class), (g_type), c_type))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_CHECK_INSTANCE_TYPE</NAME>
+#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type)            (_G_TYPE_CIT ((instance), (g_type)))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_CHECK_CLASS_TYPE</NAME>
+#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type)                (_G_TYPE_CCT ((g_class), (g_type)))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_INSTANCE_GET_CLASS</NAME>
+#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type)     (_G_TYPE_IGC ((instance), c_type))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_FROM_INSTANCE</NAME>
+#define G_TYPE_FROM_INSTANCE(instance)                          (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class))
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_FROM_CLASS</NAME>
+#define G_TYPE_FROM_CLASS(g_class)                              (((GTypeClass*) (g_class))->g_type)
+</MACRO>
+<MACRO>
+<NAME>G_TYPE_FROM_INTERFACE</NAME>
+#define G_TYPE_FROM_INTERFACE(g_iface)                          (((GTypeInterface*) (g_iface))->g_type)
+</MACRO>
+<FUNCTION>
+<NAME>g_type_init</NAME>
+<RETURNS>void  </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_name</NAME>
+<RETURNS>gchar *</RETURNS>
+GType                   type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_qname</NAME>
+<RETURNS>GQuark  </RETURNS>
+GType                   type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_from_name</NAME>
+<RETURNS>GType  </RETURNS>
+const gchar            *name
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_parent</NAME>
+<RETURNS>GType  </RETURNS>
+GType                   type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_next_base</NAME>
+<RETURNS>GType  </RETURNS>
+GType                   type,GType                   base_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_is_a</NAME>
+<RETURNS>gboolean  </RETURNS>
+GType                   type,GType                   is_a_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_conforms_to</NAME>
+<RETURNS>gboolean  </RETURNS>
+GType                   type,GType                   iface_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_fundamental_branch_last</NAME>
+<RETURNS>guint  </RETURNS>
+GType                   type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_class_ref</NAME>
+<RETURNS>gpointer  </RETURNS>
+GType                   type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_class_peek</NAME>
+<RETURNS>gpointer  </RETURNS>
+GType                   type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_class_unref</NAME>
+<RETURNS>void  </RETURNS>
+gpointer                g_class
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_class_peek_parent</NAME>
+<RETURNS>gpointer  </RETURNS>
+gpointer                g_class
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_interface_peek</NAME>
+<RETURNS>gpointer  </RETURNS>
+gpointer                instance_class,GType                   iface_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_children</NAME>
+<RETURNS>GType *</RETURNS>
+GType                   type,guint                  *n_children
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_interfaces</NAME>
+<RETURNS>GType *</RETURNS>
+GType                   type,guint                  *n_interfaces
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_set_qdata</NAME>
+<RETURNS>void  </RETURNS>
+GType                   type,GQuark                  quark,gpointer                data
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_get_qdata</NAME>
+<RETURNS>gpointer  </RETURNS>
+GType                   type,GQuark                  quark
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>GBaseInitFunc</NAME>
+<RETURNS>void </RETURNS>
+gpointer         g_class
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GBaseFinalizeFunc</NAME>
+<RETURNS>void </RETURNS>
+gpointer         g_class
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GClassInitFunc</NAME>
+<RETURNS>void </RETURNS>
+gpointer         g_class,
+                                             gpointer         class_data
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GClassFinalizeFunc</NAME>
+<RETURNS>void </RETURNS>
+gpointer         g_class,
+                                             gpointer         class_data
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GInstanceInitFunc</NAME>
+<RETURNS>void </RETURNS>
+GTypeInstance   *instance,
+                                             gpointer         g_class
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GInterfaceInitFunc</NAME>
+<RETURNS>void </RETURNS>
+gpointer         g_iface,
+                                             gpointer         iface_data
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GInterfaceFinalizeFunc</NAME>
+<RETURNS>void </RETURNS>
+gpointer         g_iface,
+                                             gpointer         iface_data
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GTypePluginRef</NAME>
+<RETURNS>void </RETURNS>
+GTypePlugin     *plugin
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GTypePluginUnRef</NAME>
+<RETURNS>void </RETURNS>
+GTypePlugin     *plugin
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GTypePluginFillTypeInfo</NAME>
+<RETURNS>void </RETURNS>
+GTypePlugin     *plugin,
+                                              GType            g_type,
+                                              GTypeInfo       *info,
+                                             GTypeValueTable *value_table
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GTypePluginFillInterfaceInfo</NAME>
+<RETURNS>void </RETURNS>
+GTypePlugin     *plugin,
+                                              GType            interface_type,
+                                              GType            instance_type,
+                                              GInterfaceInfo  *info
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>GTypeClassCacheFunc</NAME>
+<RETURNS>gboolean </RETURNS>
+gpointer              cache_data,
+                                             GTypeClass      *g_class
+</USER_FUNCTION>
+<STRUCT>
+<NAME>GTypePlugin</NAME>
+struct GTypePlugin
+{
+  GTypePluginVTable     *vtable;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GTypePluginVTable</NAME>
+struct GTypePluginVTable
+{
+  GTypePluginRef                plugin_ref;
+  GTypePluginUnRef              plugin_unref;
+  GTypePluginFillTypeInfo       complete_type_info;
+  GTypePluginFillInterfaceInfo  complete_interface_info;
+};
+</STRUCT>
+<ENUM>
+<NAME>GTypeFlags</NAME>
+typedef enum    /*< skip >*/
+{
+  G_TYPE_FLAG_CLASSED           = (1 << 0),
+  G_TYPE_FLAG_INSTANTIATABLE    = (1 << 1),
+  G_TYPE_FLAG_DERIVABLE         = (1 << 2),
+  G_TYPE_FLAG_DEEP_DERIVABLE    = (1 << 3)
+} GTypeFlags;
+</ENUM>
+<STRUCT>
+<NAME>GTypeInfo</NAME>
+struct GTypeInfo
+{
+  /* interface types, classed types, instantiated types */
+  guint16                class_size;
+
+  GBaseInitFunc          base_init;
+  GBaseFinalizeFunc      base_finalize;
+
+  /* classed types, instantiated types */
+  GClassInitFunc         class_init;
+  GClassFinalizeFunc     class_finalize;
+  gconstpointer          class_data;
+
+  /* instantiated types */
+  guint16                instance_size;
+  guint16                n_preallocs;
+  GInstanceInitFunc      instance_init;
+
+  /* value handling */
+  const GTypeValueTable        *value_table;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GTypeFundamentalInfo</NAME>
+struct GTypeFundamentalInfo
+{
+  GTypeFlags             type_flags;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GInterfaceInfo</NAME>
+struct GInterfaceInfo
+{
+  GInterfaceInitFunc     interface_init;
+  GInterfaceFinalizeFunc interface_finalize;
+  gpointer               interface_data;
+};
+</STRUCT>
+<STRUCT>
+<NAME>GTypeValueTable</NAME>
+struct GTypeValueTable
+{
+  void   (*value_init)    (GValue       *value);
+  void   (*value_free)    (GValue       *value);
+  void   (*value_copy)    (const GValue *src_value,
+                          GValue       *dest_value);
+  /* varargs functionality (optional) */
+  guint    collect_type;
+  gchar* (*collect_value) (GValue       *value,
+                          guint         nth_value,
+                          GType        *collect_type,
+                          GTypeCValue  *collect_value);
+  guint    lcopy_type;
+  gchar* (*lcopy_value)   (const GValue *value,
+                          guint         nth_value,
+                          GType        *collect_type,
+                          GTypeCValue  *collect_value);
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_type_register_static</NAME>
+<RETURNS>GType  </RETURNS>
+GType                       parent_type,const gchar                *type_name,const GTypeInfo            *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_register_dynamic</NAME>
+<RETURNS>GType  </RETURNS>
+GType                       parent_type,const gchar                *type_name,GTypePlugin                *plugin
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_register_fundamental</NAME>
+<RETURNS>GType  </RETURNS>
+GType                       type_id,const gchar                *type_name,const GTypeInfo            *info,const GTypeFundamentalInfo *finfo
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_add_interface_static</NAME>
+<RETURNS>void  </RETURNS>
+GType                       instance_type,GType                       interface_type,GInterfaceInfo             *info
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_add_interface_dynamic</NAME>
+<RETURNS>void  </RETURNS>
+GType                       instance_type,GType                       interface_type,GTypePlugin                *plugin
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_class_is_a</NAME>
+<RETURNS>gboolean  </RETURNS>
+GTypeClass         *g_class,GType               is_a_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_check_class_cast</NAME>
+<RETURNS>GTypeClass *</RETURNS>
+GTypeClass         *g_class,GType               is_a_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_check_instance_cast</NAME>
+<RETURNS>GTypeInstance *</RETURNS>
+GTypeInstance      *instance,GType               iface_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_instance_conforms_to</NAME>
+<RETURNS>gboolean  </RETURNS>
+GTypeInstance      *instance,GType               iface_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_check_flags</NAME>
+<RETURNS>gboolean  </RETURNS>
+GType               type,GTypeFlags          flags
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_create_instance</NAME>
+<RETURNS>GTypeInstance *</RETURNS>
+GType               type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_free_instance</NAME>
+<RETURNS>void  </RETURNS>
+GTypeInstance      *instance
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_value_table_peek</NAME>
+<RETURNS>GTypeValueTable *</RETURNS>
+GType               type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_add_class_cache_func</NAME>
+<RETURNS>void  </RETURNS>
+gpointer            cache_data,GTypeClassCacheFunc cache_func
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_remove_class_cache_func</NAME>
+<RETURNS>void  </RETURNS>
+gpointer            cache_data,GTypeClassCacheFunc cache_func
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_class_unref_uncached</NAME>
+<RETURNS>void  </RETURNS>
+gpointer            g_class
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_get_plugin</NAME>
+<RETURNS>GTypePlugin *</RETURNS>
+GType               type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_type_fundamental_last</NAME>
+<RETURNS>GType         </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>G_TYPE_IS_VALUE</NAME>
+#define        G_TYPE_IS_VALUE(type)           (g_type_value_table_peek (type) != NULL)
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE</NAME>
+#define        G_IS_VALUE(value)               (G_TYPE_IS_VALUE (G_VALUE_TYPE (value))) /* FIXME */
+</MACRO>
+<MACRO>
+<NAME>G_VALUE_TYPE</NAME>
+#define        G_VALUE_TYPE(value)             (G_TYPE_FROM_CLASS (value))
+</MACRO>
+<MACRO>
+<NAME>G_VALUE_TYPE_NAME</NAME>
+#define        G_VALUE_TYPE_NAME(value)        (g_type_name (G_VALUE_TYPE (value)))
+</MACRO>
+<USER_FUNCTION>
+<NAME>GValueExchange</NAME>
+<RETURNS>void </RETURNS>
+GValue *value1,
+                               GValue  *value2
+</USER_FUNCTION>
+<STRUCT>
+<NAME>GValue</NAME>
+struct GValue
+{
+  /*< private >*/
+  GType                g_type;
+
+  /* public for GTypeValueTable methods */
+  union {
+    gint       v_int;
+    guint      v_uint;
+    glong      v_long;
+    gulong     v_ulong;
+    gfloat     v_float;
+    gdouble    v_double;
+    gpointer   v_pointer;
+  } data[4];
+};
+</STRUCT>
+<FUNCTION>
+<NAME>g_value_init</NAME>
+<RETURNS>void  </RETURNS>
+GValue       *value,GType         g_type
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_copy</NAME>
+<RETURNS>void  </RETURNS>
+const GValue *src_value,GValue       *dest_value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_convert</NAME>
+<RETURNS>gboolean      </RETURNS>
+const GValue *src_value,GValue       *dest_value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_reset</NAME>
+<RETURNS>void  </RETURNS>
+GValue       *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_unset</NAME>
+<RETURNS>void  </RETURNS>
+GValue       *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_values_exchange</NAME>
+<RETURNS>gboolean  </RETURNS>
+GValue       *value1,GValue       *value2
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_types_exchangable</NAME>
+<RETURNS>gboolean  </RETURNS>
+GType         value_type1,GType         value_type2
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_register_exchange_func</NAME>
+<RETURNS>void  </RETURNS>
+GType         value_type1,GType         value_type2,GValueExchange func
+</FUNCTION>
+<UNION>
+<NAME>GTypeCValue</NAME>
+union GTypeCValue
+{
+  gint     v_int;
+  glong    v_long;
+  gdouble  v_double;
+  gpointer v_pointer;
+};
+</UNION>
+<MACRO>
+<NAME>G_VALUE_COLLECT</NAME>
+#define G_VALUE_COLLECT(value, var_args, __error)                                      \
+G_STMT_START {                                                                         \
+  GValue *_value = (value);                                                            \
+  GTypeValueTable *_vtable = g_type_value_table_peek (G_VALUE_TYPE (_value));          \
+  gchar *_error_msg = NULL;                                                            \
+  guint _collect_type = _vtable->collect_type;                                         \
+  guint _nth_value = 0;                                                                        \
+                                                                                        \
+  g_value_reset (_value);                                                              \
+  while (_collect_type && !_error_msg)                                                 \
+    {                                                                                  \
+      GTypeCValue _cvalue;                                                             \
+                                                                                        \
+      memset (&_cvalue, 0, sizeof (_cvalue));                                          \
+      switch (_collect_type)                                                           \
+       {                                                                               \
+       case G_VALUE_COLLECT_INT:                                                       \
+         _cvalue.v_int = va_arg ((var_args), gint);                                    \
+         break;                                                                        \
+       case G_VALUE_COLLECT_LONG:                                                      \
+         _cvalue.v_long = va_arg ((var_args), glong);                                  \
+         break;                                                                        \
+       case G_VALUE_COLLECT_DOUBLE:                                                    \
+         _cvalue.v_double = va_arg ((var_args), gdouble);                              \
+         break;                                                                        \
+       case G_VALUE_COLLECT_POINTER:                                                   \
+         _cvalue.v_pointer = va_arg ((var_args), gpointer);                            \
+         break;                                                                        \
+       default:                                                                        \
+         _error_msg  = g_strdup_printf ("%s: invalid collect type (%d) used for %s",   \
+                                        G_STRLOC,                                      \
+                                        _collect_type,                                 \
+                                        "G_VALUE_COLLECT()");                          \
+         continue;                                                                     \
+       }                                                                               \
+      _error_msg = _vtable->collect_value (_value,                                     \
+                                          _nth_value++,                                \
+                                          &_collect_type,                              \
+                                          &_cvalue);                                   \
+    }                                                                                  \
+  *(__error) = _error_msg;                                                             \
+} G_STMT_END
+</MACRO>
+<MACRO>
+<NAME>G_VALUE_LCOPY</NAME>
+#define G_VALUE_LCOPY(value, var_args, __error)                                                \
+G_STMT_START {                                                                         \
+  GValue *_value = (value);                                                            \
+  GTypeValueTable *_vtable = g_type_value_table_peek (G_VALUE_TYPE (_value));          \
+  gchar *_error_msg = NULL;                                                            \
+  guint _lcopy_type = _vtable->lcopy_type;                                             \
+  guint _nth_value = 0;                                                                        \
+                                                                                        \
+  while (_lcopy_type && !_error_msg)                                                   \
+    {                                                                                  \
+      GTypeCValue _cvalue;                                                             \
+                                                                                        \
+      memset (&_cvalue, 0, sizeof (_cvalue));                                          \
+      switch (_lcopy_type)                                                             \
+       {                                                                               \
+       case G_VALUE_COLLECT_INT:                                                       \
+         _cvalue.v_int = va_arg ((var_args), gint);                                    \
+         break;                                                                        \
+       case G_VALUE_COLLECT_LONG:                                                      \
+         _cvalue.v_long = va_arg ((var_args), glong);                                  \
+         break;                                                                        \
+       case G_VALUE_COLLECT_DOUBLE:                                                    \
+         _cvalue.v_double = va_arg ((var_args), gdouble);                              \
+         break;                                                                        \
+       case G_VALUE_COLLECT_POINTER:                                                   \
+         _cvalue.v_pointer = va_arg ((var_args), gpointer);                            \
+         break;                                                                        \
+       default:                                                                        \
+         _error_msg  = g_strdup_printf ("%s: invalid collect type (%d) used for %s",   \
+                                        G_STRLOC,                                      \
+                                        _lcopy_type,                                   \
+                                        "G_VALUE_LCOPY()");                            \
+         continue;                                                                     \
+       }                                                                               \
+      _error_msg = _vtable->lcopy_value (_value,                                       \
+                                        _nth_value++,                                  \
+                                        &_lcopy_type,                                  \
+                                        &_cvalue);                                     \
+    }                                                                                  \
+  *(__error) = _error_msg;                                                             \
+} G_STMT_END
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_CHAR</NAME>
+#define G_IS_VALUE_CHAR(value)          (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_CHAR))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_UCHAR</NAME>
+#define G_IS_VALUE_UCHAR(value)         (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_UCHAR))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_BOOLEAN</NAME>
+#define G_IS_VALUE_BOOLEAN(value)       (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_BOOLEAN))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_INT</NAME>
+#define G_IS_VALUE_INT(value)           (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_INT))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_UINT</NAME>
+#define G_IS_VALUE_UINT(value)          (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_UINT))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_LONG</NAME>
+#define G_IS_VALUE_LONG(value)          (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_LONG))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_ULONG</NAME>
+#define G_IS_VALUE_ULONG(value)         (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_ULONG))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_FLOAT</NAME>
+#define G_IS_VALUE_FLOAT(value)         (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_FLOAT))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_DOUBLE</NAME>
+#define G_IS_VALUE_DOUBLE(value)        (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_DOUBLE))
+</MACRO>
+<MACRO>
+<NAME>G_IS_VALUE_STRING</NAME>
+#define G_IS_VALUE_STRING(value)        (G_TYPE_CHECK_CLASS_TYPE ((value), G_TYPE_STRING))
+</MACRO>
+<FUNCTION>
+<NAME>g_value_set_char</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,gint8           v_char
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_char</NAME>
+<RETURNS>gint8  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_uchar</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,guint8          v_uchar
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_uchar</NAME>
+<RETURNS>guint8  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_boolean</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,gboolean        v_boolean
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_boolean</NAME>
+<RETURNS>gboolean  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_int</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,gint            v_int
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_int</NAME>
+<RETURNS>gint  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_uint</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,guint           v_uint
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_uint</NAME>
+<RETURNS>guint  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_long</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,glong           v_long
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_long</NAME>
+<RETURNS>glong  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_ulong</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,gulong          v_ulong
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_ulong</NAME>
+<RETURNS>gulong  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_float</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,gfloat          v_float
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_float</NAME>
+<RETURNS>gfloat  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_double</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,gdouble         v_double
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_double</NAME>
+<RETURNS>gdouble  </RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_set_string</NAME>
+<RETURNS>void  </RETURNS>
+GValue         *value,const gchar    *v_string
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_get_string</NAME>
+<RETURNS>gchar *</RETURNS>
+GValue         *value
+</FUNCTION>
+<FUNCTION>
+<NAME>g_value_dup_string</NAME>
+<RETURNS>gchar *</RETURNS>
+GValue         *value
+</FUNCTION>
index 002bcfb922c6680fb6aa28acd3fa66c59e6690d4..e11bbb096c4ec29c52853fe21dc76d93740efb1d 100644 (file)
@@ -187,5 +187,19 @@ GPrivate *private_key, gpointer data
 #define G_STATIC_PRIVATE_INIT 
 </MACRO>
 
+# Definitions for different operating systems
 
+<MACRO>
+<NAME>G_OS_UNIX</NAME>
+#define G_OS_UNIX
+</MACRO>
 
+<MACRO>
+<NAME>G_OS_WIN32</NAME>
+#define G_OS_WIN32
+</MACRO>
+
+<MACRO>
+<NAME>G_OS_BEOS</NAME>
+#define G_OS_BEOS
+</MACRO>
index e48890e01fa212a3bf9e7f0c141c70e72a87e4d9..d810745c41df9cb928935b160b6e64ff35acc429 100644 (file)
@@ -1,4 +1,3 @@
-
 <INCLUDE>glib.h</INCLUDE>
 
 <SECTION>
@@ -40,13 +39,11 @@ gdouble
 gsize
 gssize
 
+<SUBSECTION>
+gstring
+
 <SUBSECTION Private>
 gldouble
-
-# I don't really know where to put these.
-G_HAVE_WCHAR_H
-G_HAVE_WCTYPE_H
-GUTILS_C_VAR
 </SECTION>
 
 <SECTION>
@@ -54,14 +51,17 @@ GUTILS_C_VAR
 <FILE>limits</FILE>
 G_MININT
 G_MAXINT
+G_MAXUINT
 
 <SUBSECTION>
 G_MINSHORT
 G_MAXSHORT
+G_MAXUSHORT
 
 <SUBSECTION>
 G_MINLONG
 G_MAXLONG
+G_MAXULONG
 
 <SUBSECTION>
 G_MINFLOAT
@@ -79,6 +79,11 @@ GLIB_MAJOR_VERSION
 GLIB_MINOR_VERSION
 GLIB_MICRO_VERSION
 
+<SUBSECTION>
+G_OS_WIN32
+G_OS_BEOS
+G_OS_UNIX
+
 <SUBSECTION>
 GLIB_CHECK_VERSION
 
@@ -216,6 +221,26 @@ GUINT64_SWAP_LE_BE_CONSTANT
 GUINT64_SWAP_LE_BE_X86
 </SECTION>
 
+<SECTION>
+<TITLE>Numerical Definitions</TITLE>
+<FILE>numerical</FILE>
+G_IEEE754_FLOAT_BIAS
+G_IEEE754_DOUBLE_BIAS
+GFloatIEEE754
+GDoubleIEEE754
+
+<SUBSECTION>
+<SUBSECTION>
+G_E
+G_LN2
+G_LN10
+G_PI
+G_PI_2
+G_PI_4
+G_SQRT2
+G_LOG_2_BASE_10
+</SECTION>
+
 <SECTION>
 <TITLE>Miscellaneous Macros</TITLE>
 <FILE>macros_misc</FILE>
@@ -225,9 +250,15 @@ G_INLINE_FUNC
 G_STMT_START
 G_STMT_END
 
+<SUBSECTION>
+G_N_ELEMENTS
+
 <SUBSECTION>
 G_VA_COPY
 
+<SUBSECTION>
+G_STRINGIFY
+
 <SUBSECTION>
 G_GNUC_EXTENSION
 G_GNUC_CONST
@@ -240,9 +271,25 @@ G_GNUC_FUNCTION
 G_GNUC_PRETTY_FUNCTION
 
 <SUBSECTION>
-g_string
+G_STRLOC
+
+<SUBSECTION>
+G_GSHORT_FORMAT
+G_GUSHORT_FORMAT
+G_GINT_FORMAT
+G_GUINT_FORMAT
+G_GLONG_FORMAT
+G_GULONG_FORMAT
+G_GINT16_FORMAT
+G_GUINT16_FORMAT
+G_GINT32_FORMAT
+G_GUINT32_FORMAT
+G_GINT64_FORMAT
+G_GUINT64_FORMAT
 
 <SUBSECTION Private>
+GLIB_VAR
+G_STRINGIFY_ARG
 G_HAVE_INLINE
 G_CAN_INLINE
 inline
@@ -250,6 +297,20 @@ G_HAVE___INLINE
 G_HAVE___INLINE__
 </SECTION>
 
+<SECTION>
+<TITLE>Error Reporting</TITLE>
+<FILE>error_reporting</FILE>
+GError
+g_error_new
+g_error_new_literal
+g_error_free
+g_error_copy
+g_error_matches
+g_set_error
+g_propagate_error
+g_clear_error
+</SECTION>
+
 <SECTION>
 <TITLE>The Main Event Loop</TITLE>
 <FILE>main</FILE>
@@ -286,6 +347,7 @@ g_main_remove_poll
 
 <SUBSECTION>
 g_main_set_poll_func
+g_main_win32_get_poll_func
 GPollFunc
 
 <SUBSECTION>
@@ -317,11 +379,26 @@ G_THREADS_IMPL_POSIX
 G_THREADS_IMPL_SOLARIS
 G_THREADS_IMPL_NONE
 
+<SUBSECTION>
+G_THREAD_ERROR
+GThreadError
+
 <SUBSECTION>
 GThreadFunctions
 g_thread_init
 g_thread_supported
 
+<SUBSECTION>
+GThreadFunc
+GThreadPriority
+GThread
+g_thread_create
+g_thread_self
+g_thread_join
+g_thread_set_priority
+g_thread_yield
+g_thread_exit
+
 <SUBSECTION>
 GMutex
 g_mutex_new
@@ -346,6 +423,26 @@ G_LOCK
 G_TRYLOCK
 G_UNLOCK
 
+<SUBSECTION>
+GStaticRecMutex
+G_STATIC_REC_MUTEX_INIT
+g_static_rec_mutex_lock
+g_static_rec_mutex_trylock
+g_static_rec_mutex_unlock
+g_static_rec_mutex_lock_full
+g_static_rec_mutex_unlock_full
+
+<SUBSECTION>
+GStaticRWLock
+G_STATIC_RW_LOCK_INIT
+g_static_rw_lock_reader_lock
+g_static_rw_lock_reader_trylock
+g_static_rw_lock_reader_unlock
+g_static_rw_lock_writer_lock
+g_static_rw_lock_writer_trylock
+g_static_rw_lock_writer_unlock
+g_static_rw_lock_free
+
 <SUBSECTION>
 GCond
 g_cond_new
@@ -365,7 +462,9 @@ g_private_set
 GStaticPrivate
 G_STATIC_PRIVATE_INIT
 g_static_private_get
+g_static_private_get_for_thread
 g_static_private_set
+g_static_private_set_for_thread
 
 <SUBSECTION Private>
 G_THREAD_CF
@@ -373,6 +472,48 @@ G_THREAD_UF
 g_static_mutex_get_mutex_impl
 G_LOCK_NAME
 glib_dummy_decl
+GSystemThread
+g_thread_error_quark
+</SECTION>
+
+<SECTION>
+<TITLE>Thread Pools</TITLE>
+<FILE>thread_pools</FILE>
+GThreadPool
+g_thread_pool_new
+g_thread_pool_push
+g_thread_pool_set_max_threads
+g_thread_pool_get_max_threads
+g_thread_pool_get_num_threads
+g_thread_pool_unprocessed
+g_thread_pool_free
+g_thread_pool_set_max_unused_threads
+g_thread_pool_get_max_unused_threads
+g_thread_pool_get_num_unused_threads
+g_thread_pool_stop_unused_threads
+</SECTION>
+
+<SECTION>
+<TITLE>Asynchronous Queues</TITLE>
+<FILE>async_queues</FILE>
+GAsyncQueue
+g_async_queue_new
+g_async_queue_lock
+g_async_queue_unlock
+g_async_queue_ref
+g_async_queue_ref_unlocked
+g_async_queue_unref
+g_async_queue_unref_and_unlock
+g_async_queue_push
+g_async_queue_push_unlocked
+g_async_queue_pop
+g_async_queue_pop_unlocked
+g_async_queue_try_pop
+g_async_queue_try_pop_unlocked
+g_async_queue_timed_pop
+g_async_queue_timed_pop_unlocked
+g_async_queue_length
+g_async_queue_length_unlocked
 </SECTION>
 
 <SECTION>
@@ -409,14 +550,12 @@ GIOFunc
 GIOFuncs
 
 <SUBSECTION Private>
+g_io_channel_win32_new_fd
 g_io_channel_win32_new_messages
-g_io_channel_win32_new_pipe
-g_io_channel_win32_new_pipe_with_wakeups
 g_io_channel_win32_new_stream_socket
-
+g_io_channel_win32_poll
+g_io_channel_win32_make_pollfd
 g_io_channel_win32_get_fd
-g_io_channel_win32_pipe_readable
-g_io_channel_win32_pipe_request_wakeups
 </SECTION>
 
 <SECTION>
@@ -458,6 +597,8 @@ g_set_printerr_handler
 <SUBSECTION>
 g_return_if_fail
 g_return_val_if_fail
+g_return_if_reached
+g_return_val_if_reached
 
 <SUBSECTION>
 g_assert
@@ -487,6 +628,7 @@ g_log
 g_logv
 g_message
 g_warning
+g_critical
 g_error
 
 <SUBSECTION>
@@ -523,6 +665,10 @@ g_strdup
 g_strndup
 g_strnfill
 
+<SUBSECTION>
+g_strlcpy
+g_strlcat
+
 <SUBSECTION>
 g_strdup_printf
 g_strdup_vprintf
@@ -551,6 +697,8 @@ g_strstrip
 g_strdelimit
 G_STR_DELIMITERS
 g_strescape
+g_strcompress
+g_strcanon
 g_strsplit
 g_strfreev
 g_strconcat
@@ -565,8 +713,10 @@ g_strsignal
 <SECTION>
 <TITLE>Date and Time Functions</TITLE>
 <FILE>date</FILE>
+G_MICROSEC
 GTimeVal
 g_get_current_time
+g_usleep
 
 <SUBSECTION>
 GDate
@@ -715,6 +865,10 @@ g_basename
 g_dirname
 g_path_is_absolute
 g_path_skip_root
+g_path_get_dirname
+g_path_get_basename
+g_filename_to_utf8
+g_filename_from_utf8
 
 <SUBSECTION>
 g_bit_nth_lsf
@@ -791,6 +945,7 @@ GTokenValue
 GErrorType
 G_CSET_a_2_z
 G_CSET_A_2_Z
+G_CSET_DIGITS
 G_CSET_LATINC
 G_CSET_LATINS
 
@@ -838,30 +993,22 @@ g_completion_free
 <FILE>windows</FILE>
 MAXPATHLEN
 NAME_MAX
-getcwd
-getpid
 pid_t
-access
-open
-read
-write
-lseek
-close
 pipe
-popen
-pclose
-fdopen
 ftruncate
 opendir
 readdir
 rewinddir
 closedir
 
+g_win32_error_message
+g_win32_getlocale
+
 <SUBSECTION Private>
-gwin_ftruncate
-gwin_closedir
-gwin_opendir
-gwin_rewinddir
+g_win32_ftruncate
+g_win32_closedir
+g_win32_opendir
+g_win32_rewinddir
 
 </SECTION>
 
@@ -910,6 +1057,7 @@ g_list_insert
 g_list_insert_sorted
 g_list_remove
 g_list_remove_link
+g_list_delete_link
 g_list_free
 
 <SUBSECTION>
@@ -954,9 +1102,11 @@ g_slist_alloc
 g_slist_append
 g_slist_prepend
 g_slist_insert
+g_slist_insert_before
 g_slist_insert_sorted
 g_slist_remove
 g_slist_remove_link
+g_slist_delete_link
 g_slist_free
 g_slist_free_1
 
@@ -985,6 +1135,37 @@ g_slist_push_allocator
 g_slist_pop_allocator
 </SECTION>
 
+<SECTION>
+<TITLE>Doubly-ended Queues</TITLE>
+<FILE>queue</FILE>
+
+GQueue
+g_queue_new
+g_queue_free
+g_queue_push_head
+g_queue_push_tail
+g_queue_pop_head
+g_queue_pop_tail
+g_queue_is_empty
+g_queue_peek_head
+g_queue_peek_tail
+g_queue_push_head_link
+g_queue_push_tail_link
+g_queue_pop_head_link
+g_queue_pop_tail_link
+</SECTION>
+
+<SECTION>
+<TITLE>Trash Stacks</TITLE>
+<FILE>trash_stack</FILE>
+GTrashStack
+
+g_trash_stack_push
+g_trash_stack_pop
+g_trash_stack_peek
+g_trash_stack_height
+</SECTION>
+
 <SECTION>
 <TITLE>Hash Tables</TITLE>
 <FILE>hash_tables</FILE>
@@ -1026,10 +1207,13 @@ g_string_sprintf
 g_string_sprintfa
 g_string_append
 g_string_append_c
+g_string_append_len
 g_string_prepend
 g_string_prepend_c
+g_string_prepend_len
 g_string_insert
 g_string_insert_c
+g_string_insert_len
 g_string_erase
 g_string_truncate
 g_string_free
@@ -1038,6 +1222,10 @@ g_string_free
 g_string_up
 g_string_down
 
+<SUBSECTION>
+g_string_hash
+g_string_equal
+
 </SECTION>
 
 <SECTION>
@@ -1056,6 +1244,7 @@ g_string_chunk_free
 <FILE>arrays</FILE>
 GArray
 g_array_new
+g_array_sized_new
 g_array_append_val
 g_array_append_vals
 g_array_prepend_val
@@ -1074,6 +1263,7 @@ g_array_free
 <FILE>arrays_pointer</FILE>
 GPtrArray
 g_ptr_array_new
+g_ptr_array_sized_new
 g_ptr_array_add
 g_ptr_array_remove
 g_ptr_array_remove_index
@@ -1090,6 +1280,7 @@ g_ptr_array_free
 <FILE>arrays_byte</FILE>
 GByteArray
 g_byte_array_new
+g_byte_array_sized_new
 g_byte_array_append
 g_byte_array_prepend
 g_byte_array_remove_index
@@ -1109,7 +1300,6 @@ g_tree_nnodes
 g_tree_height
 g_tree_lookup
 g_tree_search
-GSearchFunc
 g_tree_traverse
 GTraverseFunc
 GTraverseType
@@ -1122,6 +1312,7 @@ g_tree_destroy
 <FILE>trees-nary</FILE>
 GNode
 g_node_new
+g_node_copy
 
 <SUBSECTION>
 g_node_insert
@@ -1290,3 +1481,400 @@ G_ALLOCATOR_LIST
 G_ALLOCATOR_NODE
 G_ALLOCATOR_SLIST
 </SECTION>
+
+<SECTION>
+<TITLE>Random Numbers</TITLE>
+<FILE>random_numbers</FILE>
+GRand
+g_rand_new_with_seed
+g_rand_new
+g_rand_free
+g_rand_set_seed
+g_rand_int
+g_rand_int_range
+g_rand_double
+g_rand_double_range
+g_random_set_seed
+g_random_int
+g_random_int_range
+g_random_double
+g_random_double_range
+</SECTION>
+
+<SECTION>
+<TITLE>Unicode Manipulation</TITLE>
+<FILE>unicode</FILE>
+
+<SECTION>
+<FILE>gunicode</FILE>
+gunichar
+gunichar2
+
+<SUBSECTION>
+g_get_charset
+
+<SUBSECTION>
+g_unichar_isalnum
+g_unichar_isalpha
+g_unichar_iscntrl
+g_unichar_isdigit
+g_unichar_isgraph
+g_unichar_islower
+g_unichar_isprint
+g_unichar_ispunct
+g_unichar_isspace
+g_unichar_isupper
+g_unichar_isxdigit
+g_unichar_istitle
+g_unichar_isdefined
+g_unichar_iswide
+g_unichar_toupper
+g_unichar_tolower
+g_unichar_totitle
+g_unichar_digit_value
+g_unichar_xdigit_value
+GUnicodeType
+g_unichar_type
+g_unicode_canonical_ordering
+g_unicode_canonical_decomposition
+
+<SUBSECTION>
+g_utf8_next_char
+g_utf8_get_char
+g_utf8_offset_to_pointer
+g_utf8_pointer_to_offset
+g_utf8_prev_char
+g_utf8_find_next_char
+g_utf8_find_prev_char
+g_utf8_strlen
+g_utf8_strncpy
+g_utf8_strchr
+g_utf8_strrchr
+
+<SUBSECTION>
+g_utf8_to_utf16
+g_utf8_to_ucs4
+g_utf16_to_ucs4
+g_utf16_to_utf8
+g_ucs4_to_utf16
+g_ucs4_to_utf8
+g_unichar_to_utf8
+</SECTION>
+
+<SECTION>
+<TITLE>Type Information</TITLE>
+<FILE>types</FILE>
+GType
+G_TYPE_FUNDAMENTAL
+G_TYPE_FUNDAMENTAL_MAX
+G_TYPE_DERIVE_ID
+G_TYPE_BRANCH_SEQNO
+G_TYPE_FUNDAMENTAL_LAST
+GTypeFundamentals
+G_TYPE_IS_CLASSED
+G_TYPE_IS_INSTANTIATABLE
+G_TYPE_IS_DERIVABLE
+G_TYPE_IS_DEEP_DERIVABLE
+G_TYPE_IS_PARAM
+G_TYPE_IS_INTERFACE
+GTypePlugin
+GTypePluginVTable
+GTypeInterface
+GTypeInstance
+GTypeInfo
+GTypeFundamentalInfo
+GInterfaceInfo
+GTypeValueTable
+<TITLE>GType</TITLE>
+G_TYPE_CHECK_INSTANCE_CAST
+G_TYPE_CHECK_CLASS_CAST
+G_TYPE_CHECK_INSTANCE_TYPE
+G_TYPE_CHECK_CLASS_TYPE
+G_TYPE_INSTANCE_GET_CLASS
+G_TYPE_FROM_INSTANCE
+G_TYPE_FROM_CLASS
+G_TYPE_FROM_INTERFACE
+g_type_init
+g_type_name
+g_type_qname
+g_type_from_name
+g_type_parent
+g_type_next_base
+g_type_is_a
+g_type_conforms_to
+g_type_fundamental_branch_last
+g_type_class_ref
+g_type_class_peek
+g_type_class_unref
+g_type_class_peek_parent
+g_type_interface_peek
+g_type_children
+g_type_interfaces
+g_type_set_qdata
+g_type_get_qdata
+GBaseInitFunc
+GBaseFinalizeFunc
+GClassInitFunc
+GClassFinalizeFunc
+GInstanceInitFunc
+GInterfaceInitFunc
+GInterfaceFinalizeFunc
+GTypePluginRef
+GTypePluginUnRef
+GTypePluginFillTypeInfo
+GTypePluginFillInterfaceInfo
+GTypeClassCacheFunc
+GTypeFlags
+g_type_register_static
+g_type_register_dynamic
+g_type_register_fundamental
+g_type_add_interface_static
+g_type_add_interface_dynamic
+g_type_class_is_a
+g_type_check_class_cast
+g_type_check_instance_cast
+g_type_instance_conforms_to
+g_type_check_flags
+g_type_create_instance
+g_type_free_instance
+g_type_value_table_peek
+g_type_add_class_cache_func
+g_type_remove_class_cache_func
+g_type_class_unref_uncached
+g_type_get_plugin
+g_type_fundamental_last
+
+<SUBSECTION Private>
+g_log_domain_gobject
+</SECTION>
+
+<SECTION>
+<TITLE>The Base Object Type</TITLE>
+<FILE>objects</FILE>
+GObject
+GObjectClass
+G_OBJECT
+G_OBJECT_GET_CLASS
+G_OBJECT_TYPE
+G_OBJECT_TYPE_NAME
+G_OBJECT_CLASS_TYPE
+G_OBJECT_CLASS_NAME
+G_IS_VALUE_OBJECT
+G_TYPE_IS_OBJECT
+G_IS_OBJECT
+G_OBJECT_CLASS
+G_IS_OBJECT_CLASS
+G_NOTIFY_PRIORITY
+GObjectGetParamFunc
+GObjectSetParamFunc
+GObjectFinalizeFunc
+g_object_class_install_param
+g_object_class_find_param_spec
+g_object_new
+g_object_new_valist
+g_object_set
+g_object_get
+g_object_set_valist
+g_object_get_valist
+g_object_set_param
+g_object_get_param
+g_object_queue_param_changed
+g_object_ref
+g_object_unref
+g_object_get_qdata
+g_object_set_qdata
+g_object_set_qdata_full
+g_object_steal_qdata
+g_value_set_object
+g_value_get_object
+g_value_dup_object
+G_WARN_INVALID_PARAM_ID
+</SECTION>
+
+<SECTION>
+<TITLE>Enumeration and Flag Types</TITLE>
+<FILE>enumerations_flags</FILE>
+GEnumClass
+GFlagsClass
+G_ENUM_CLASS_TYPE
+G_ENUM_CLASS_TYPE_NAME
+G_TYPE_IS_ENUM
+G_ENUM_CLASS
+G_IS_ENUM_CLASS
+G_TYPE_IS_FLAGS
+G_FLAGS_CLASS
+G_IS_FLAGS_CLASS
+G_FLAGS_CLASS_TYPE
+G_FLAGS_CLASS_TYPE_NAME
+G_IS_VALUE_ENUM
+G_IS_VALUE_FLAGS
+GEnumValue
+GFlagsValue
+g_enum_get_value
+g_enum_get_value_by_name
+g_enum_get_value_by_nick
+g_flags_get_first_value
+g_flags_get_value_by_name
+g_flags_get_value_by_nick
+g_value_set_enum
+g_value_get_enum
+g_value_set_flags
+g_value_get_flags
+g_enum_register_static
+g_flags_register_static
+g_enum_complete_type_info
+g_flags_complete_type_info
+</SECTION>
+
+<SECTION>
+<TITLE>Generic values</TITLE>
+<FILE>generic_values</FILE>
+G_VALUE_TYPE
+G_VALUE_TYPE_NAME
+G_TYPE_IS_VALUE
+G_IS_VALUE
+GValueExchange
+GValue
+g_value_init
+g_value_copy
+g_value_convert
+g_value_reset
+g_value_unset
+g_values_exchange
+g_value_types_exchangable
+g_value_register_exchange_func
+</SECTION>
+
+<SECTION>
+<TITLE>Standard value types</TITLE>
+<FILE>value_types</FILE>
+G_IS_VALUE_CHAR
+G_IS_VALUE_UCHAR
+G_IS_VALUE_BOOLEAN
+G_IS_VALUE_INT
+G_IS_VALUE_UINT
+G_IS_VALUE_LONG
+G_IS_VALUE_ULONG
+G_IS_VALUE_FLOAT
+G_IS_VALUE_DOUBLE
+G_IS_VALUE_STRING
+g_value_set_char
+g_value_get_char
+g_value_set_uchar
+g_value_get_uchar
+g_value_set_boolean
+g_value_get_boolean
+g_value_set_int
+g_value_get_int
+g_value_set_uint
+g_value_get_uint
+g_value_set_long
+g_value_get_long
+g_value_set_ulong
+g_value_get_ulong
+g_value_set_float
+g_value_get_float
+g_value_set_double
+g_value_get_double
+g_value_set_string
+g_value_get_string
+g_value_dup_string
+</SECTION>
+
+<SECTION>
+<TITLE>Object Parameter Specifications</TITLE>
+<FILE>param_specs</FILE>
+GParamSpec
+GParamSpecClass
+G_PARAM_SPEC_TYPE
+G_PARAM_SPEC_TYPE_NAME
+G_PARAM_SPEC
+G_IS_PARAM_SPEC
+G_PARAM_SPEC_GET_CLASS
+G_IS_PARAM_VALUE
+G_PARAM_SPEC_VALUE_TYPE
+G_TYPE_IS_PARAM
+GParamFlags
+g_param_spec_ref
+g_param_spec_unref
+g_param_spec_get_qdata
+g_param_spec_set_qdata
+g_param_spec_set_qdata_full
+g_param_spec_steal_qdata
+g_param_value_set_default
+g_param_value_defaults
+g_param_value_validate
+g_param_values_cmp
+g_param_spec_internal
+g_param_spec_hash_table_new
+g_param_spec_hash_table_insert
+g_param_spec_hash_table_remove
+g_param_spec_hash_table_lookup
+</SECTION>
+
+<SECTION>
+<TITLE>Standard Parameter Types</TITLE>
+<FILE>standard_params</FILE>
+G_IS_PARAM_SPEC_CHAR
+G_PARAM_SPEC_CHAR
+G_IS_PARAM_SPEC_UCHAR
+G_PARAM_SPEC_UCHAR
+G_IS_PARAM_SPEC_BOOLEAN
+G_PARAM_SPEC_BOOLEAN
+G_IS_PARAM_SPEC_INT
+G_PARAM_SPEC_INT
+G_IS_PARAM_SPEC_UINT
+G_PARAM_SPEC_UINT
+G_IS_PARAM_SPEC_LONG
+G_PARAM_SPEC_LONG
+G_IS_PARAM_SPEC_ULONG
+G_PARAM_SPEC_ULONG
+G_IS_PARAM_SPEC_ENUM
+G_PARAM_SPEC_ENUM
+G_IS_PARAM_SPEC_FLAGS
+G_PARAM_SPEC_FLAGS
+G_IS_PARAM_SPEC_FLOAT
+G_PARAM_SPEC_FLOAT
+G_IS_PARAM_SPEC_DOUBLE
+G_PARAM_SPEC_DOUBLE
+G_IS_PARAM_SPEC_STRING
+G_PARAM_SPEC_STRING
+G_IS_PARAM_SPEC_OBJECT
+G_PARAM_SPEC_OBJECT
+GParamSpecChar
+GParamSpecUChar
+GParamSpecBoolean
+GParamSpecInt
+GParamSpecUInt
+GParamSpecLong
+GParamSpecULong
+GParamSpecEnum
+GParamSpecFlags
+GParamSpecFloat
+GParamSpecDouble
+GParamSpecString
+GParamSpecObject
+g_param_spec_char
+g_param_spec_uchar
+g_param_spec_boolean
+g_param_spec_int
+g_param_spec_uint
+g_param_spec_long
+g_param_spec_ulong
+g_param_spec_enum
+g_param_spec_flags
+g_param_spec_float
+g_param_spec_double
+g_param_spec_string
+g_param_spec_string_c
+g_param_spec_object
+</SECTION>
+
+<SECTION>
+<TITLE>Varargs Value Collection</TITLE>
+<FILE>value_collection</FILE>
+GTypeCValue
+G_VALUE_COLLECT
+G_VALUE_LCOPY
+</SECTION>
+
index 6f682b1bad9d7ed307c63e2128277fceb3faed5c..caf9f48bcc323b7a88bb00a57852c80de0144787 100644 (file)
@@ -1,3 +1,8 @@
+Tue Sep  5 20:03:25 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * Moved into glib source tree, updated glib-sections.txt
+       and Makefile.am for glib-1.3.x.
+
 2000-07-01  Damon Chaplin  <damon@helixcode.com>
 
        * tmpl/string_utils.sgml: updated g_strndup.
index 0c4da6277db6def253e37bf524d8ae10d39e4b42..4fea547e11b95dae15afa49f1cbe166b44842997 100644 (file)
@@ -6,42 +6,111 @@ DOC_MODULE=glib
 # The top-level SGML file.
 DOC_MAIN_SGML_FILE=glib-docs.sgml
 
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR=$(top_srcdir)
 
 TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
 
+tmpl_sources =                         \
+       tmpl/allocators.sgml            \
+       tmpl/arrays.sgml                \
+       tmpl/arrays_byte.sgml           \
+       tmpl/arrays_pointer.sgml        \
+       tmpl/byte_order.sgml            \
+       tmpl/caches.sgml                \
+       tmpl/completion.sgml            \
+       tmpl/datalist.sgml              \
+       tmpl/datasets.sgml              \
+       tmpl/date.sgml                  \
+       tmpl/glib-unused.sgml           \
+       tmpl/hash_tables.sgml           \
+       tmpl/hooks.sgml                 \
+       tmpl/iochannels.sgml            \
+       tmpl/limits.sgml                \
+       tmpl/linked_lists_double.sgml   \
+       tmpl/linked_lists_single.sgml   \
+       tmpl/macros.sgml                \
+       tmpl/macros_misc.sgml           \
+       tmpl/main.sgml                  \
+       tmpl/memory.sgml                \
+       tmpl/memory_chunks.sgml         \
+       tmpl/messages.sgml              \
+       tmpl/misc_utils.sgml            \
+       tmpl/modules.sgml               \
+       tmpl/quarks.sgml                \
+       tmpl/relations.sgml             \
+       tmpl/scanner.sgml               \
+       tmpl/string_chunks.sgml         \
+       tmpl/string_utils.sgml          \
+       tmpl/strings.sgml               \
+       tmpl/threads.sgml               \
+       tmpl/timers.sgml                \
+       tmpl/trees-binary.sgml          \
+       tmpl/trees-nary.sgml            \
+       tmpl/type_conversion.sgml       \
+       tmpl/types.sgml                 \
+       tmpl/warnings.sgml              \
+       tmpl/windows.sgml
+
+glib_docdir = $(HTML_DIR)
+glib_doc_DATA =                                \
+       glib-decl.txt                   \
+       glib-sections.txt               \
+       glib-overrides.txt
+
+EXTRA_DIST =                           \
+       $(glib_doc_DATA)
+
+html/book1.html: sgml/glib-doc.bottom
+       $(MAKE) html
+
+sgml/glib-doc.bottom: $(tmpl_sources)
+       $(MAKE) sgml
+
 scan:
-       gtkdoc-scan --module=$(DOC_MODULE) `glib-config --prefix`/include/glib.h `glib-config --prefix`/include/gmodule.h `glib-config --prefix`/lib/glib/include/glibconfig.h 
+       -(cd $(srcdir) \
+       && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="config.h gmoduleconf.h gunidecomp.h gunichartables.h glibconfig-sysdefs.h" )
 
 templates: scan
-       gtkdoc-mktmpl --module=$(DOC_MODULE)
+       cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
 
 sgml:
-       gtkdoc-mkdb --module=$(DOC_MODULE)
+       cd $(srcdir) \
+       && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
 
 html:
-       if ! test -d html ; then mkdir html ; fi
-       -cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+       test -d $(srcdir)/html || mkdir $(srcdir)/html
+       -cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 
 clean-local:
-       rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt
+       rm -f *~ *.bak *.signals *-unused.txt
 
 maintainer-clean-local: clean
-       rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt 
+       cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
 
 install-data-local:
-       install -d -m 0755 $(TARGET_DIR)
-       install -m 0644 html/*.html $(TARGET_DIR)
-       install -m 0644 html/index.sgml $(TARGET_DIR)
-       gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)
-
-EXTRA_DIST = \
-       $(DOC_MAIN_SGML_FILE) \
-       $(DOC_MODULE)-sections.txt \
-       glib-decl.txt \
-       glib-overrides.txt
+       $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
+       (installfiles=`echo $(srcdir)/html/*.html`; \
+       if test "$$installfiles" = '$(srcdir)/html/*.html'; \
+       then echo '-- Nothing to install' ; \
+       else \
+         for i in $$installfiles; do \
+           echo '-- Installing '$$i ; \
+           $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
+         done; \
+         echo '-- Installing $(srcdir)/html/index.sgml' ; \
+         $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
+         echo '-- Fixing Crossreferences' ; \
+         gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)|| true; \
+       fi)
 
 dist-hook:
+       mkdir $(distdir)/html
+       mkdir $(distdir)/sgml
        mkdir $(distdir)/tmpl
-       cp -p tmpl/*.sgml $(distdir)/tmpl
+       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
+       -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
+       -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
+       -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
 
 .PHONY : html sgml templates scan
index 6b12fd27c9f2bcec09a63562ad188fa5a8396700..cf354ddc22e30439b8d4b31fa40c2cce4d1d6697 100644 (file)
@@ -2,64 +2,41 @@
 Memory Allocators
 
 <!-- ##### SECTION Short_Description ##### -->
-allocates chunks of memory for #GList, #GSList and #GNode.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GAllocator is used as an efficient way to allocate small pieces of
-memory for use with the #GList, #GSList and #GNode data structures.
-It uses a #GMemChunk so elements are allocated in groups, rather than
-individually.
-</para>
-<para>
-The #GList, #GSList and #GNode implementations create default #GAllocator
-objects, which are probably sufficient for most purposes. These default
-allocators use blocks of 128 elements.
-</para>
-<para>
-To use your own #GAllocator, create it with g_allocator_new(). Then
-use g_list_push_allocator(), g_slist_push_allocator() or
-g_node_push_allocator() before any code which allocates new #GList, #GSList
-or #GNode elements respectively. After allocating the new elements, you must
-use g_list_pop_allocator(), g_slist_pop_allocator() or g_node_pop_allocator()
-to restore the previous allocators.
-</para>
-<para>
-Note that you cannot use the same allocator for #GList, #GSList and #GNode
-elements. Each must use separate allocators.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GAllocator ##### -->
 <para>
-The #GAllocator struct contains private data. and should only be accessed
-using the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_allocator_new ##### -->
 <para>
-Creates a new #GAllocator.
+
 </para>
 
-@name: the name of the #GAllocator. This name is used to set the name of the
-#GMemChunk used by the #GAllocator, and is only used for debugging.
-@n_preallocs: the number of elements in each block of memory allocated.
-Larger blocks mean less calls to g_malloc(), but some memory may be wasted.
-(GLib uses 128 elements per block by default.) The value must be between 1
-and 65535.
-@Returns: a new #GAllocator.
+@name: 
+@n_preallocs: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_allocator_free ##### -->
 <para>
-Frees all of the memory allocated by the #GAllocator.
+
 </para>
 
-@allocator: a #GAllocator.
+@allocator: 
 
 
index d985d4e3bd64cccac224313cabdb624daffa039d..f40e49ed16acf7a3aabded63c5d3b3414ee3856d 100644 (file)
 Arrays
 
 <!-- ##### SECTION Short_Description ##### -->
-arrays of arbitrary elements which grow automatically as elements are added.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-Arrays are similar to standard C arrays, except that they grow automatically
-as elements are added.
-</para>
-<para>
-Array elements can be of any size (though all elements of one array are the
-same size), and the array can be automatically cleared to '0's and
-zero-terminated.
-</para>
-<para>
-To create a new array use g_array_new().
-</para>
-<para>
-To add elements to an array, use g_array_append_val(), g_array_append_vals(),
-g_array_prepend_val(), and g_array_prepend_vals().
-</para>
-<para>
-To access an element of an array, use g_array_index().
-</para>
-<para>
-To set the size of an array, use g_array_set_size().
-</para>
-<para>
-To free an array, use g_array_free().
-</para>
-<example>
-<title>Using a GArray to store gint values.</title>
-<programlisting>
-  GArray *garray;
-  gint i;
 
-  /* We create a new array to store gint values.
-     We don't want it zero-terminated or cleared to 0's. */
-  garray = g_array_new (FALSE, FALSE, sizeof (gint));
-  for (i = 0; i < 10000; i++)
-    g_array_append_val (garray, i);
-
-  for (i = 0; i < 10000; i++)
-    if (g_array_index (garray, gint, i) != i)
-      g_print ("ERROR: got %d instead of %d\n",
-               g_array_index (garray, gint, i), i);
+</para>
 
-  g_array_free (garray, TRUE);
-</programlisting></example>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GArray ##### -->
 <para>
-Contains the public fields of an <link linkend="glib-arrays">Array</link>.
+
 </para>
 
-@data: a pointer to the element data. The data may be moved as elements are
-added to the #GArray.
-@len: the number of elements in the #GArray.
+@data: 
+@len: 
 
 <!-- ##### FUNCTION g_array_new ##### -->
 <para>
-Creates a new #GArray.
+
 </para>
 
-@zero_terminated: TRUE if the array should have an extra element at the end
-which is set to '0'.
-@clear: TRUE if #GArray elements should be automatically cleared to '0'
-when they are allocated.
-@element_size: the size of each element in bytes.
-@Returns: the new #GArray.
+@zero_terminated: 
+@clear: 
+@element_size: 
+@Returns: 
 
 
-<!-- ##### MACRO g_array_append_val ##### -->
+<!-- ##### FUNCTION g_array_sized_new ##### -->
 <para>
-Adds the value on to the end of the array.
-The array will grow in size automatically if necessary.
+
 </para>
-<note>
+
+@zero_terminated: 
+@clear: 
+@element_size: 
+@reserved_size: 
+@Returns: 
+
+
+<!-- ##### MACRO g_array_append_val ##### -->
 <para>
-g_array_append_val() is a macro which uses a reference to the value
-parameter @v. This means that you cannot use it with literal values
-such as "27". You must use variables.
+
 </para>
-</note>
 
-@a: a #GArray.
-@v: the value to append to the #GArray.
-@Returns: the #GArray.
+@a: 
+@v: 
 
 
 <!-- ##### FUNCTION g_array_append_vals ##### -->
 <para>
-Adds @len elements onto the end of the array.
+
 </para>
 
-@array: a #GArray.
-@data: a pointer to the elements to append to the end of the array.
-@len: the number of elements to append.
-@Returns: the #GArray.
+@array: 
+@data: 
+@len: 
+@Returns: 
 
 
 <!-- ##### MACRO g_array_prepend_val ##### -->
 <para>
-Adds the value on to the start of the array.
-The array will grow in size automatically if necessary.
-</para>
-<para>
-This operation is slower than g_array_append_val() since the existing elements
-in the array have to be moved to make space for the new element.
-</para>
-<note>
-<para>
-g_array_prepend_val() is a macro which uses a reference to the value
-parameter @v. This means that you cannot use it with literal values
-such as "27". You must use variables.
+
 </para>
-</note>
 
-@a: a #GArray.
-@v: the value to prepend to the #GArray.
-@Returns: the #GArray.
+@a: 
+@v: 
 
 
 <!-- ##### FUNCTION g_array_prepend_vals ##### -->
 <para>
-Adds @len elements onto the start of the array.
-</para>
-<para>
-This operation is slower than g_array_append_vals() since the existing elements
-in the array have to be moved to make space for the new elements.
+
 </para>
 
-@array: a #GArray.
-@data: a pointer to the elements to prepend to the start of the array.
-@len: the number of elements to prepend.
-@Returns: the #GArray.
+@array: 
+@data: 
+@len: 
+@Returns: 
 
 
 <!-- ##### MACRO g_array_insert_val ##### -->
 <para>
-Inserts an element into an array at the given index.
-</para>
-<note>
-<para>
-g_array_insert_val() is a macro which uses a reference to the value
-parameter @v. This means that you cannot use it with literal values
-such as "27". You must use variables.
+
 </para>
-</note>
 
-@a: a #GArray.
-@i: the index to place the element at.
-@v: the value to insert into the array.
-@Returns: the #GArray.
+@a: 
+@i: 
+@v: 
 
 
 <!-- ##### FUNCTION g_array_insert_vals ##### -->
 <para>
-Inserts @len elements into a #GArray at the given index.
+
 </para>
 
-@array: a #GArray.
-@index: the index to place the elements at.
-@data: a pointer to the elements to insert.
-@len: the number of elements to insert.
-@Returns: the #GArray.
+@array: 
+@index: 
+@data: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_array_remove_index ##### -->
 <para>
-Removes the element at the given index from a #GArray.
-The following elements are moved down one place.
+
 </para>
 
-@array: a #GArray.
-@index: the index of the element to remove.
-@Returns: the #GArray.
+@array: 
+@index: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_array_remove_index_fast ##### -->
 <para>
-Removes the element at the given index from a #GArray.
-The last element in the array is used to fill in the space, so this function
-does not preserve the order of the #GArray. But it is faster than
-g_array_remove_index().
+
 </para>
 
-@array: a @GArray.
-@index: the index of the element to remove.
-@Returns: the #GArray.
+@array: 
+@index: 
+@Returns: 
 
 
 <!-- ##### MACRO g_array_index ##### -->
 <para>
-Returns the element of a #GArray at the given index.
-The return value is cast to the given type.
-
-<example>
-<title>Getting a pointer to an element in a GArray.</title>
-<programlisting>
-  EDayViewEvent *event;
 
-  /* This gets a pointer to the 3rd element in the array of EDayViewEvent
-     structs. */
-  event = &amp;g_array_index (events, EDayViewEvent, 3);
-</programlisting>
-</example>
 </para>
 
-@a: a #GArray.
-@t: the type of the elements.
-@i: the index of the element to return.
-@Returns: the element of the #GArray at the index given by @i.
+@a: 
+@t: 
+@i: 
 
 
 <!-- ##### FUNCTION g_array_set_size ##### -->
 <para>
-Sets the size of the array, expanding it if necessary.
-If the array was created with clear set to TRUE, the new elements are set to 0.
+
 </para>
 
-@array: a #GArray.
-@length: the new size of the #GArray.
-@Returns: the #GArray.
+@array: 
+@length: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_array_free ##### -->
 <para>
-Frees the memory allocated for the #GArray.
-If free_segment is TRUE it frees the actual element data as well.
+
 </para>
 
-@array: a #GArray.
-@free_segment: if TRUE the actual element data is freed as well.
+@array: 
+@free_segment: 
+@Returns: 
 
 
index 17c1a8d968484d21461844ab2fca0a53c54ed857..c5d5da2ff13d4e24ec3d418eab1a83befdabf00b 100644 (file)
 Byte Arrays
 
 <!-- ##### SECTION Short_Description ##### -->
-arrays of bytes, which grow automatically as elements are added.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-GByteArray is based on #GArray, to provide arrays of bytes which grow
-automatically as elements are added.
-</para>
-<para>
-To create a new #GByteArray use g_byte_array_new().
-</para>
-<para>
-To add elements to a #GByteArray, use g_byte_array_append(), and
-g_byte_array_prepend().
-</para>
-<para>
-To set the size of a GByteArray, use g_byte_array_set_size().
-</para>
-<para>
-To free a GByteArray, use g_byte_array_free().
-</para>
-
-<example>
-<title>Using a GByteArray.</title>
-<programlisting>
-  GByteArray *gbarray;
-  gint i;
 
-  gbarray = g_byte_array_new ();
-  for (i = 0; i < 10000; i++)
-    g_byte_array_append (gbarray, (guint8*) "abcd", 4);
-
-  for (i = 0; i < 10000; i++)
-    {
-      g_assert (gbarray->data[4*i] == 'a');
-      g_assert (gbarray->data[4*i+1] == 'b');
-      g_assert (gbarray->data[4*i+2] == 'c');
-      g_assert (gbarray->data[4*i+3] == 'd');
-    }
+</para>
 
-  g_byte_array_free (gbarray, TRUE);
-</programlisting></example>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GByteArray ##### -->
 <para>
-The #GByteArray struct allows access to the public fields of a #GByteArray.
+
 </para>
 
-@data: a pointer to the element data. The data may be moved as elements are
-added to the #GByteArray.
-@len: the number of elements in the #GByteArray.
+@data: 
+@len: 
 
 <!-- ##### FUNCTION g_byte_array_new ##### -->
 <para>
-Creates a new #GByteArray.
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION g_byte_array_sized_new ##### -->
+<para>
+
 </para>
 
-@Returns: the new #GByteArray.
+@reserved_size: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_byte_array_append ##### -->
 <para>
-Adds the given bytes to the end of the #GByteArray.
-The array will grow in size automatically if necessary.
+
 </para>
 
-@array: a #GByteArray.
-@data: the byte data to be added.
-@len: the number of bytes to add.
-@Returns: the #GByteArray.
+@array: 
+@data: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_byte_array_prepend ##### -->
 <para>
-Adds the given data to the start of the #GByteArray.
-The array will grow in size automatically if necessary.
+
 </para>
 
-@array: a #GByteArray.
-@data: the byte data to be added.
-@len: the number of bytes to add.
-@Returns: the #GByteArray.
+@array: 
+@data: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_byte_array_remove_index ##### -->
 <para>
-Removes the byte at the given index from a #GByteArray.
-The following bytes are moved down one place.
+
 </para>
 
-@array: a #GByteArray.
-@index: the index of the byte to remove.
-@Returns: the #GByteArray.
+@array: 
+@index: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_byte_array_remove_index_fast ##### -->
 <para>
-Removes the byte at the given index from a #GByteArray.
-The last element in the array is used to fill in the space, so this function
-does not preserve the order of the #GByteArray. But it is faster than
-g_byte_array_remove_index().
+
 </para>
 
-@array: a #GByteArray.
-@index: the index of the byte to remove.
-@Returns: the #GByteArray.
+@array: 
+@index: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_byte_array_set_size ##### -->
 <para>
-Sets the size of the #GByteArray, expanding it if necessary.
+
 </para>
 
-@array: a #GByteArray.
-@length: the new size of the #GByteArray.
-@Returns: the #GByteArray.
+@array: 
+@length: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_byte_array_free ##### -->
 <para>
-Frees the memory allocated by the #GByteArray.
-If free_segment is TRUE it frees the actual byte data.
+
 </para>
 
-@array: a #GByteArray.
-@free_segment: if TRUE the actual byte data is freed as well.
+@array: 
+@free_segment: 
+@Returns: 
 
 
index cc8595c80e375f09a143d510992b1b2b2540d492..21d7287d5029219c73e35ecefe1a143aafdcbcbb 100644 (file)
@@ -2,71 +2,23 @@
 Pointer Arrays
 
 <!-- ##### SECTION Short_Description ##### -->
-arrays of pointers to any type of data, which grow automatically as new
-elements are added.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-Pointer Arrays are similar to Arrays but are used only for storing pointers.
-</para>
-<note>
-<para>
-If you remove elements from the array, elements at the end of the array
-are moved into the space previously occupied by the removed element.
-This means that you should not rely on the index of particular elements
-remaining the same. You should also be careful when deleting elements while
-iterating over the array.
-</para>
-</note>
-<para>
-To create a pointer array, use g_ptr_array_new().
-</para>
-<para>
-To add elements to a pointer array, use g_ptr_array_add().
-</para>
-<para>
-To remove elements from a pointer array, use g_ptr_array_remove(),
-g_ptr_array_remove_index() or g_ptr_array_remove_index_fast().
-</para>
-<para>
-To access an element of a pointer array, use g_ptr_array_index().
-</para>
-<para>
-To set the size of a pointer array, use g_ptr_array_set_size().
-</para>
-<para>
-To free a pointer array, use g_ptr_array_free().
-</para>
-<example>
-<title>Using a GPtrArray.</title>
-<programlisting>
-  GPtrArray *gparray;
-  gchar *string1 = "one", *string2 = "two", *string3 = "three";
-
-  gparray = g_ptr_array_new ();
-  g_ptr_array_add (gparray, (gpointer) string1);
-  g_ptr_array_add (gparray, (gpointer) string2);
-  g_ptr_array_add (gparray, (gpointer) string3);
 
-  if (g_ptr_array_index (gparray, 0) != (gpointer) string1)
-    g_print ("ERROR: got %p instead of %p\n",
-             g_ptr_array_index (gparray, 0), string1);
+</para>
 
-  g_ptr_array_free (gparray, TRUE);
-</programlisting></example>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GPtrArray ##### -->
 <para>
-Contains the public fields of a pointer array.
-The <structfield>pdata</structfield> field points to the array of pointers,
-which may as when the array grows.
-The <structfield>len</structfield> field is the number of pointers in the
-array.
+
 </para>
 
 @pdata: 
@@ -74,105 +26,95 @@ array.
 
 <!-- ##### FUNCTION g_ptr_array_new ##### -->
 <para>
-Creates a new #GPtrArray.
+
 </para>
 
-@Returns: the new #GPtrArray.
+@Returns: 
 
 
-<!-- ##### FUNCTION g_ptr_array_add ##### -->
+<!-- ##### FUNCTION g_ptr_array_sized_new ##### -->
 <para>
-Adds a pointer to the end of the pointer array.
-The array will grow in size automatically if necessary.
+
 </para>
 
-@array: a #GPtrArray.
-@data: the pointer to add.
+@reserved_size: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_ptr_array_remove ##### -->
+<!-- ##### FUNCTION g_ptr_array_add ##### -->
 <para>
-Removes the first occurrence of the given pointer from the pointer array.
-The following elements are moved down one place.
+
 </para>
+
+@array: 
+@data: 
+
+
+<!-- ##### FUNCTION g_ptr_array_remove ##### -->
 <para>
-It returns TRUE if the pointer was removed, or FALSE if the pointer
-was not found.
+
 </para>
 
-@array: a #GPtrArray.
-@data: the pointer to remove.
-@Returns: TRUE if the pointer is removed. FALSE if the pointer is not found
-in the array.
+@array: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_ptr_array_remove_index ##### -->
 <para>
-Removes the pointer at the given index from the pointer array.
-The following elements are moved down one place.
+
 </para>
 
-@array: a #GPtrArray.
-@index: the index of the pointer to remove.
-@Returns: the pointer which was removed.
+@array: 
+@index: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_ptr_array_remove_fast ##### -->
 <para>
-Removes the first occurrence of the given pointer from the pointer array.
-The last element in the array is used to fill in the space, so this function
-does not preserve the order of the array. But it is faster than
-g_ptr_array_remove().
-</para>
-<para>
-It returns TRUE if the pointer was removed, or FALSE if the pointer
-was not found.
+
 </para>
 
-@array: a #GPtrArray.
-@data: the pointer to remove.
-@Returns: TRUE if the pointer was found in the array.
+@array: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_ptr_array_remove_index_fast ##### -->
 <para>
-Removes the pointer at the given index from the pointer array.
-The last element in the array is used to fill in the space, so this function
-does not preserve the order of the array. But it is faster than
-g_ptr_array_remove_index().
+
 </para>
 
-@array: a #GPtrArray.
-@index: the index of the pointer to remove.
-@Returns: the pointer which was removed.
+@array: 
+@index: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_ptr_array_set_size ##### -->
 <para>
-Sets the size of the array, expanding it if necessary.
-New elements are set to NULL.
+
 </para>
 
-@array: a #GPtrArray.
-@length: the new length of the pointer array.
+@array: 
+@length: 
 
 
 <!-- ##### MACRO g_ptr_array_index ##### -->
 <para>
-Returns the pointer at the given index of the pointer array.
+
 </para>
 
-@array: a #GPtrArray.
-@index: the index of the pointer to return.
-@Returns: the pointer at the given index.
+@array: 
+@index: 
 
 
 <!-- ##### FUNCTION g_ptr_array_free ##### -->
 <para>
-Frees all of the memory allocated for the pointer array.
+
 </para>
 
-@array: a #GPtrArray.
-@free_seg: if TRUE the actual element data is freed as well.
+@array: 
+@free_seg: 
+@Returns: 
 
 
index 01e931c9a6fcdc8aca9ee11956db77c1179854c6..87b455a7b6e259b5b47050d666d1136119059808 100644 (file)
 Byte Order Macros
 
 <!-- ##### SECTION Short_Description ##### -->
-a portable way to convert between different byte orders.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These macros provide a portable way to determine the host byte order
-and to convert values between different byte orders.
-</para>
-<para>
-The byte order is the order in which bytes are stored to create larger
-data types such as the #gint and #glong values.
-The host byte order is the byte order used on the current machine.
-</para>
-<para>
-Some processors store the most significant bytes (i.e. the bytes that
-hold the largest part of the value) first. These are known as big-endian
-processors. 
-</para>
-<para>
-Other processors (notably the x86 family) store the most significant byte
-last. These are known as little-endian processors.
-</para>
-<para>
-Finally, to complicate matters, some other processors store the bytes in
-a rather curious order known as PDP-endian. For a 4-byte word, the 3rd
-most significant byte is stored first, then the 4th, then the 1st and finally
-the 2nd.
-</para>
-<para>
-Obviously there is a problem when these different processors communicate
-with each other, for example over networks or by using binary file formats.
-This is where these macros come in.
-They are typically used to convert values into a byte order
-which has been agreed on for use when communicating between different
-processors. The Internet uses what is known as 'network byte order'
-as the standard byte order (which is in fact the big-endian byte order).
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO G_BYTE_ORDER ##### -->
 <para>
-The host byte order.
-This can be either #G_LITTLE_ENDIAN or #G_BIG_ENDIAN (support for
-#G_PDP_ENDIAN may be added in future.)
+
 </para>
 
 
 
 <!-- ##### MACRO G_LITTLE_ENDIAN ##### -->
 <para>
-Specifies one of the possible types of byte order.
-See #G_BYTE_ORDER.
+
 </para>
 
 
 
 <!-- ##### MACRO G_BIG_ENDIAN ##### -->
 <para>
-Specifies one of the possible types of byte order.
-See #G_BYTE_ORDER.
+
 </para>
 
 
 
 <!-- ##### MACRO G_PDP_ENDIAN ##### -->
 <para>
-Specifies one of the possible types of byte order (currently unused).
-See #G_BYTE_ORDER.
+
 </para>
 
 
 
 <!-- ##### MACRO g_htonl ##### -->
 <para>
-Converts a 32-bit integer value from host to network byte order.
+
 </para>
 
-@val: a 32-bit integer value in host byte order.
-@Returns: @val converted to network byte order.
+@val: 
 
 
 <!-- ##### MACRO g_htons ##### -->
 <para>
-Converts a 16-bit integer value from host to network byte order.
+
 </para>
 
-@val: a 16-bit integer value in host byte order.
-@Returns: @val converted to network byte order.
+@val: 
 
 
 <!-- ##### MACRO g_ntohl ##### -->
 <para>
-Converts a 32-bit integer value from network to host byte order.
+
 </para>
 
-@val: a 32-bit integer value in network byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO g_ntohs ##### -->
 <para>
-Converts a 16-bit integer value from network to host byte order.
+
 </para>
 
-@val: a 16-bit integer value in network byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT_FROM_BE ##### -->
 <para>
-Converts a #gint value from big-endian to host byte order.
+
 </para>
 
-@val: a #gint value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT_FROM_LE ##### -->
 <para>
-Converts a #gint value from little-endian to host byte order.
+
 </para>
 
-@val: a #gint value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT_TO_BE ##### -->
 <para>
-Converts a #gint value from host byte order to big-endian.
+
 </para>
 
-@val: a #gint value in host byte order.
-@Returns: @val converted to big-endian byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT_TO_LE ##### -->
 <para>
-Converts a #gint value from host byte order to little-endian.
+
 </para>
 
-@val: a #gint value in host byte order.
-@Returns: @val converted to little-endian byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT_FROM_BE ##### -->
 <para>
-Converts a #guint value from big-endian to host byte order.
+
 </para>
 
-@val: a #guint value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT_FROM_LE ##### -->
 <para>
-Converts a #guint value from little-endian to host byte order.
+
 </para>
 
-@val: a #guint value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT_TO_BE ##### -->
 <para>
-Converts a #guint value from host byte order to big-endian.
+
 </para>
 
-@val: a #guint value in host byte order.
-@Returns: @val converted to big-endian byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT_TO_LE ##### -->
 <para>
-Converts a #guint value from host byte order to little-endian.
+
 </para>
 
-@val: a #guint value in host byte order.
-@Returns: @val converted to little-endian byte order.
+@val: 
 
 
 <!-- ##### MACRO GLONG_FROM_BE ##### -->
 <para>
-Converts a #glong value from big-endian to the host byte order.
+
 </para>
 
-@val: a #glong value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GLONG_FROM_LE ##### -->
 <para>
-Converts a #glong value from little-endian to host byte order.
+
 </para>
 
-@val: a #glong value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GLONG_TO_BE ##### -->
 <para>
-Converts a #glong value from host byte order to big-endian.
+
 </para>
 
-@val: a #glong value in host byte order.
-@Returns: @val converted to big-endian byte order.
+@val: 
 
 
 <!-- ##### MACRO GLONG_TO_LE ##### -->
 <para>
-Converts a #glong value from host byte order to little-endian.
+
 </para>
 
-@val: a #glong value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GULONG_FROM_BE ##### -->
 <para>
-Converts a #gulong value from big-endian to host byte order.
+
 </para>
 
-@val: a #gulong value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GULONG_FROM_LE ##### -->
 <para>
-Converts a #gulong value from little-endian to host byte order.
+
 </para>
 
-@val: a #gulong value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GULONG_TO_BE ##### -->
 <para>
-Converts a #gulong value from host byte order to big-endian.
+
 </para>
 
-@val: a #gulong value in host byte order.
-@Returns: @val converted to big-endian.
+@val: 
 
 
 <!-- ##### MACRO GULONG_TO_LE ##### -->
 <para>
-Converts a #gulong value from host byte order to little-endian.
+
 </para>
 
-@val: a #gulong value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GINT16_FROM_BE ##### -->
 <para>
-Converts a #gint16 value from big-endian to host byte order.
+
 </para>
 
-@val: a #gint16 value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT16_FROM_LE ##### -->
 <para>
-Converts a #gint16 value from little-endian to host byte order.
+
 </para>
 
-@val: a #gint16 value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT16_TO_BE ##### -->
 <para>
-Converts a #gint16 value from host byte order to big-endian.
+
 </para>
 
-@val: a #gint16 value in host byte order.
-@Returns: @val converted to big-endian.
+@val: 
 
 
 <!-- ##### MACRO GINT16_TO_LE ##### -->
 <para>
-Converts a #gint16 value from host byte order to little-endian.
+
 </para>
 
-@val: a #gint16 value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GUINT16_FROM_BE ##### -->
 <para>
-Converts a #guint16 value from big-endian to host byte order.
+
 </para>
 
-@val: a #guint16 value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT16_FROM_LE ##### -->
 <para>
-Converts a #guint16 value from little-endian to host byte order.
+
 </para>
 
-@val: a #guint16 value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT16_TO_BE ##### -->
 <para>
-Converts a #guint16 value from host byte order to big-endian.
+
 </para>
 
-@val: a #guint16 value in host byte order.
-@Returns: @val converted to big-endian.
+@val: 
 
 
 <!-- ##### MACRO GUINT16_TO_LE ##### -->
 <para>
-Converts a #guint16 value from host byte order to little-endian.
+
 </para>
 
-@val: a #guint16 value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GINT32_FROM_BE ##### -->
 <para>
-Converts a #gint32 value from big-endian to host byte order.
+
 </para>
 
-@val: a #gint32 value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT32_FROM_LE ##### -->
 <para>
-Converts a #gint32 value from little-endian to host byte order.
+
 </para>
 
-@val: a #gint32 value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT32_TO_BE ##### -->
 <para>
-Converts a #gint32 value from host byte order to big-endian.
+
 </para>
 
-@val: a #gint32 value in host byte order.
-@Returns: @val converted to big-endian.
+@val: 
 
 
 <!-- ##### MACRO GINT32_TO_LE ##### -->
 <para>
-Converts a #gint32 value from host byte order to little-endian.
+
 </para>
 
-@val: a #gint32 value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GUINT32_FROM_BE ##### -->
 <para>
-Converts a #guint32 value from big-endian to host byte order.
+
 </para>
 
-@val: a #guint32 value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT32_FROM_LE ##### -->
 <para>
-Converts a #guint32 value from little-endian to host byte order.
+
 </para>
 
-@val: a #guint32 value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT32_TO_BE ##### -->
 <para>
-Converts a #guint32 value from host byte order to big-endian.
+
 </para>
 
-@val: a #guint32 value in host byte order.
-@Returns: @val converted to big-endian.
+@val: 
 
 
 <!-- ##### MACRO GUINT32_TO_LE ##### -->
 <para>
-Converts a #guint32 value from host byte order to little-endian.
+
 </para>
 
-@val: a #guint32 value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GINT64_FROM_BE ##### -->
 <para>
-Converts a #gint64 value from big-endian to host byte order.
+
 </para>
 
-@val: a #gint64 value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT64_FROM_LE ##### -->
 <para>
-Converts a #gint64 value from little-endian to host byte order.
+
 </para>
 
-@val: a #gint64 value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GINT64_TO_BE ##### -->
 <para>
-Converts a #gint64 value from host byte order to big-endian.
+
 </para>
 
-@val: a #gint64 value in host byte order.
-@Returns: @val converted to big-endian.
+@val: 
 
 
 <!-- ##### MACRO GINT64_TO_LE ##### -->
 <para>
-Converts a #gint64 value from host byte order to little-endian.
+
 </para>
 
-@val: a #gint64 value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GUINT64_FROM_BE ##### -->
 <para>
-Converts a #guint64 value from big-endian to host byte order.
+
 </para>
 
-@val: a #guint64 value in big-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT64_FROM_LE ##### -->
 <para>
-Converts a #guint64 value from little-endian to host byte order.
+
 </para>
 
-@val: a #guint64 value in little-endian byte order.
-@Returns: @val converted to host byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT64_TO_BE ##### -->
 <para>
-Converts a #guint64 value from host byte order to big-endian.
+
 </para>
 
-@val: a #guint64 value in host byte order.
-@Returns: @val converted to big-endian.
+@val: 
 
 
 <!-- ##### MACRO GUINT64_TO_LE ##### -->
 <para>
-Converts a #guint64 value from host byte order to little-endian.
+
 </para>
 
-@val: a #guint64 value in host byte order.
-@Returns: @val converted to little-endian.
+@val: 
 
 
 <!-- ##### MACRO GUINT16_SWAP_BE_PDP ##### -->
 <para>
-Converts a #guint16 value between big-endian and pdp-endian byte order.
-The conversion is symmetric so it can be used both ways.
+
 </para>
 
-@val: a #guint16 value in big-endian or pdp-endian byte order.
-@Returns: @val converted to the opposite byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT16_SWAP_LE_BE ##### -->
 <para>
-Converts a #guint16 value between little-endian and big-endian byte order.
-The conversion is symmetric so it can be used both ways.
+
 </para>
 
-@val: a #guint16 value in little-endian or big-endian byte order.
-@Returns: @val converted to the opposite byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT16_SWAP_LE_PDP ##### -->
 <para>
-Converts a #guint16 value between little-endian and pdp-endian byte order.
-The conversion is symmetric so it can be used both ways.
+
 </para>
 
-@val: a #guint16 value in little-endian or pdp-endian byte order.
-@Returns: @val converted to the opposite byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT32_SWAP_BE_PDP ##### -->
 <para>
-Converts a #guint32 value between big-endian and pdp-endian byte order.
-The conversion is symmetric so it can be used both ways.
+
 </para>
 
-@val: a #guint32 value in big-endian or pdp-endian byte order.
-@Returns: @val converted to the opposite byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT32_SWAP_LE_BE ##### -->
 <para>
-Converts a #guint32 value between little-endian and big-endian byte order.
-The conversion is symmetric so it can be used both ways.
+
 </para>
 
-@val: a #guint32 value in little-endian or big-endian byte order.
-@Returns: @val converted to the opposite byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT32_SWAP_LE_PDP ##### -->
 <para>
-Converts a #guint32 value between little-endian and pdp-endian byte order.
-The conversion is symmetric so it can be used both ways.
+
 </para>
 
-@val: a #guint32 value in little-endian or pdp-endian byte order.
-@Returns: @val converted to the opposite byte order.
+@val: 
 
 
 <!-- ##### MACRO GUINT64_SWAP_LE_BE ##### -->
 <para>
-Converts a #guint64 value between little-endian and big-endian byte order.
-The conversion is symmetric so it can be used both ways.
+
 </para>
 
-@val: a #guint64 value in little-endian or big-endian byte order.
-@Returns: @val converted to the opposite byte order.
+@val: 
 
 
index aad81b57ab9d9e81adc990782adb31d72d3371fd..1355726fb251cafb0903d2974e540be8ccf2dccd 100644 (file)
@@ -2,96 +2,63 @@
 Caches
 
 <!-- ##### SECTION Short_Description ##### -->
-allows sharing of complex data structures to save resources.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-A #GCache allows sharing of complex data structures, in order to save
-system resources.
-</para>
-<para>
-GTK uses a #GCache for both GtkStyles and GdkGCs. These consume a lot of
-resouces, so a #GCache is used to see if a GtkStyle or GdkGC with the
-required properties already exists. If it does, then the existing
-GtkStyle or GdkGC is used instead of creating a new one.
-</para>
-<para>
-#GCache uses keys and values.
-A #GCache key describes the properties of a particular resource.
-A #GCache value is the actual resource.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GCache ##### -->
 <para>
-The #GCache struct is an opaque data structure containing information about
-a #GCache. It should only be accesssed via the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_cache_new ##### -->
 <para>
-Creates a new GCache.
+
 </para>
 
-@value_new_func: a function to create a new object given a key.
-This is called by g_cache_insert() if an object with the given key
-does not already exist.
-@value_destroy_func: a function to destroy an object. It is
-called by g_cache_remove() when the object is no longer needed (i.e. its
-reference count drops to 0).
-@key_dup_func: a function to copy a key. It is called by
-g_cache_insert() if the key does not already exist in the GCache.
-@key_destroy_func: a function to destroy a key. It is
-called by g_cache_remove() when the object is no longer needed (i.e. its
-reference count drops to 0).
-@hash_key_func: a function to create a hash value from a key.
-@hash_value_func: a function to create a hash value from a value.
-@key_compare_func: a function to compare two keys. It should return TRUE if
-the two keys are equivalent.
-@Returns: a new #GCache.
+@value_new_func: 
+@value_destroy_func: 
+@key_dup_func: 
+@key_destroy_func: 
+@hash_key_func: 
+@hash_value_func: 
+@key_compare_func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_cache_insert ##### -->
 <para>
-Gets the value corresponding to the given key, creating it if necessary.
-It first checks if the value already exists in the #GCache, by using
-the @key_compare_func function passed to g_cache_new().
-If it does already exist it is returned, and its reference count is increased
-by one.
-If the value does not currently exist, if is created by calling the
-@value_new_func. The key is duplicated by calling
-@key_dup_func and the duplicated key and value are inserted
-into the #GCache.
+
 </para>
 
-@cache: a #GCache.
-@key: a key describing a #GCache object.
-@Returns: a pointer to a #GCache value.
+@cache: 
+@key: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_cache_remove ##### -->
 <para>
-Decreases the reference count of the given value.
-If it drops to 0 then the value and its corresponding key are destroyed,
-using the @value_destroy_func and @key_destroy_func passed to g_cache_new().
+
 </para>
 
-@cache: a #GCache.
-@value: the value to remove.
+@cache: 
+@value: 
 
 
 <!-- ##### FUNCTION g_cache_destroy ##### -->
 <para>
-Frees the memory allocated for the GCache.
-</para>
-<para>
-Note that it does not destroy the keys and values which were contained in the
-GCache.
+
 </para>
 
 @cache: 
@@ -99,54 +66,47 @@ GCache.
 
 <!-- ##### FUNCTION g_cache_key_foreach ##### -->
 <para>
-Calls the given function for each of the keys in the #GCache.
+
 </para>
 
-@cache: a #GCache.
-@func: the function to call with each #GCache key.
-@user_data: user data to pass to the function.
+@cache: 
+@func: 
+@user_data: 
 
 
 <!-- ##### FUNCTION g_cache_value_foreach ##### -->
 <para>
-Calls the given function for each of the values in the #GCache.
+
 </para>
 
-@cache: a #GCache.
-@func: the function to call with each #GCache value.
-@user_data: user data to pass to the function.
+@cache: 
+@func: 
+@user_data: 
 
 
 <!-- ##### USER_FUNCTION GCacheDestroyFunc ##### -->
 <para>
-Specifies the type of the @value_destroy_func and @key_destroy_func functions
-passed to g_cache_new().
-The functions are passed a pointer to the #GCache key or #GCache value and
-should free any memory and other resources associated with it.
+
 </para>
 
-@value: the #GCache value to destroy.
+@value: 
 
 
 <!-- ##### USER_FUNCTION GCacheDupFunc ##### -->
 <para>
-Specifies the type of the @key_dup_func function passed to g_cache_new().
-The function is passed a key (NOT a value as the prototype implies) and
-should return a duplicate of the key.
+
 </para>
 
-@value: the #GCache key to destroy (NOT a #GCache value as it seems).
-@Returns: a copy of the #GCache key.
+@value: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GCacheNewFunc ##### -->
 <para>
-Specifies the type of the @value_new_func function passed to g_cache_new().
-It is passed a #GCache key and should create the value corresponding to the
-key.
+
 </para>
 
-@key: a #GCache key.
-@Returns: a new #GCache value corresponding to the key.
+@key: 
+@Returns: 
 
 
index 6bb7681608d12b3289ebdd1ee57c0703282dfead..adba6c3cf9628abb1db803fa22eb66a2f599e68c 100644 (file)
@@ -2,45 +2,23 @@
 Automatic String Completion
 
 <!-- ##### SECTION Short_Description ##### -->
-support for automatic completion using a group of target strings.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-#GCompletion provides support for automatic completion of a string using
-any group of target strings. It is typically used for file name completion
-as is common in many Unix shells.
-</para>
-<para>
-A #GCompletion is created using g_completion_new().
-Target items are added and removed with
-g_completion_add_items(), g_completion_remove_items() and
-g_completion_clear_items().
-A completion attempt is requested with g_completion_complete().
-When no longer needed, the #GCompletion is freed with g_completion_free().
-</para>
-<para>
-Items in the completion can be simple strings (e.g. file names),
-or pointers to arbitrary data structures. If data structures are used
-you must provide a #GCompletionFunc in g_completion_new(),
-which retrieves the item's string from the data structure.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GCompletion ##### -->
 <para>
-The data structure used for automatic completion.
-<structfield>items</structfield> is the list of target items (strings
-or data structures).
-<structfield>func</structfield> is the function called to get the string
-associated with a target item. It is NULL if the target items are strings.
-<structfield>prefix</structfield> is the last prefix passed to
-g_completion_complete().
-<structfield>cache</structfield> is the list of items which begin with
-<structfield>prefix</structfield>.
+
 </para>
 
 @items: 
@@ -50,72 +28,64 @@ g_completion_complete().
 
 <!-- ##### FUNCTION g_completion_new ##### -->
 <para>
-Creates a new #GCompletion.
+
 </para>
 
-@func: the function to be called to return the string representing an item
-in the #GCompletion, or NULL if strings are going to be used as the
-#GCompletion items.
-@Returns: the new #GCompletion.
+@func: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GCompletionFunc ##### -->
 <para>
-Specifies the type of the function passed to g_completion_new().
-It should return the string corresponding to the given target item.
-This is used when you use data structures as #GCompletion items.
+
 </para>
 
-@Param1: the completion item.
-@Returns: the string corresponding to the item.
+@Param1: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_completion_add_items ##### -->
 <para>
-Adds items to the #GCompletion.
+
 </para>
 
-@cmp: the #GCompletion.
-@items: the list of items to add.
+@cmp: 
+@items: 
 
 
 <!-- ##### FUNCTION g_completion_remove_items ##### -->
 <para>
-Removes items from a #GCompletion.
+
 </para>
 
-@cmp: the #GCompletion.
-@items: the items to remove.
+@cmp: 
+@items: 
 
 
 <!-- ##### FUNCTION g_completion_clear_items ##### -->
 <para>
-Removes all items from the #GCompletion.
+
 </para>
 
-@cmp: the #GCompletion.
+@cmp: 
 
 
 <!-- ##### FUNCTION g_completion_complete ##### -->
 <para>
-Attempts to complete the string @prefix using the #GCompletion target items.
+
 </para>
 
-@cmp: the #GCompletion.
-@prefix: the prefix string, typically typed by the user, which is compared
-with each of the items.
-@new_prefix: if non-NULL, returns the longest prefix which is common to all
-items that matched @prefix, or NULL if no items matched @prefix.
-This string should be freed when no longer needed.
-@Returns: the list of items whose strings begin with @prefix. This should
-not be changed.
+@cmp: 
+@prefix: 
+@new_prefix: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_completion_free ##### -->
 <para>
-Frees all memory used by the #GCompletion.
+
 </para>
 
-@cmp: the #GCompletion.
+@cmp: 
 
 
index 99ac4ac2c01b552d465319030627130f4d6d24eb..33df5a35391d6fa60a9a4549c3610ae11924feb3 100644 (file)
 Keyed Data Lists
 
 <!-- ##### SECTION Short_Description ##### -->
-lists of data elements which are accessible by a string or #GQuark identifier.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-Keyed data lists provide lists of arbitrary data elements which can be accessed
-either with a string or with a #GQuark corresponding to the string.
-</para>
-<para>
-The GQuark methods are quicker, since the strings have to be converted to
-GQuarks anyway.
-</para>
-<para>
-Data lists are used in GTK for associating arbitrary data with
-GtkObjects, using gtk_object_set_data() and related functions.
-</para>
 
-<para>
-To create a datalist, use g_datalist_init().
-</para>
-<para>
-To add data elements to a datalist use g_datalist_id_set_data(),
-g_datalist_id_set_data_full(), g_datalist_set_data()
-and g_datalist_set_data_full().
-</para>
-<para>
-To get data elements from a datalist use g_datalist_id_get_data() and
-g_datalist_get_data().
-</para>
-<para>
-To iterate over all data elements in a datalist use g_datalist_foreach().
-</para>
-<para>
-To remove data elements from a datalist use g_datalist_id_remove_data() and
-g_datalist_remove_data().
-</para>
-<para>
-To remove all data elements from a datalist, use g_datalist_clear().
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GData ##### -->
 <para>
-The #GData struct is an opaque data structure to represent a
-<link linkend="glib-Keyed-Data-Lists">Keyed Data List</link>.
-It should only be accessed via the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_datalist_init ##### -->
 <para>
-Resets the datalist to NULL.
-It does not free any memory or call any destroy functions.
+
 </para>
 
-@datalist: a pointer to a pointer to a datalist.
+@datalist: 
 
 
 <!-- ##### MACRO g_datalist_id_set_data ##### -->
 <para>
-Sets the data corresponding to the given #GQuark id.
-Any previous data with the same key is removed, and its
-destroy function is called.
+
 </para>
 
-@dl: a datalist.
-@q: the #GQuark to identify the data element.
-@d: the data element.
+@dl: 
+@q: 
+@d: 
 
 
 <!-- ##### FUNCTION g_datalist_id_set_data_full ##### -->
 <para>
-Sets the data corresponding to the given #GQuark id, and the function to
-be called when the element is removed from the datalist.
-Any previous data with the same key is removed, and its
-destroy function is called.
+
 </para>
 
-@datalist: a datalist.
-@key_id: the #GQuark to identify the data element.
-@data: the data element.
-@destroy_func: the function to call when the data element is removed. This
-function will be called with the data element and can be used to free any
-memory allocated for it.
+@datalist: 
+@key_id: 
+@data: 
+@destroy_func: 
 
 
 <!-- ##### FUNCTION g_datalist_id_get_data ##### -->
 <para>
-Gets a data element.
+
 </para>
 
-@datalist: a datalist.
-@key_id: the #GQuark identifying a data element.
-@Returns: the data element, or NULL if it is not found.
+@datalist: 
+@key_id: 
+@Returns: 
 
 
 <!-- ##### MACRO g_datalist_id_remove_data ##### -->
 <para>
-Removes an element, using its #GQuark identifier.
+
 </para>
 
-@dl: a datalist.
-@q: the #GQuark identifying the data element.
+@dl: 
+@q: 
 
 
 <!-- ##### FUNCTION g_datalist_id_remove_no_notify ##### -->
@@ -117,52 +77,46 @@ Removes an element, using its #GQuark identifier.
 
 @datalist: 
 @key_id: 
+@Returns: 
 
 
 <!-- ##### MACRO g_datalist_set_data ##### -->
 <para>
-Sets the data element corresponding to the given string identifier.
+
 </para>
 
-@dl: a datalist.
-@k: the string to identify the data element.
-@d: the data element.
+@dl: 
+@k: 
+@d: 
 
 
 <!-- ##### MACRO g_datalist_set_data_full ##### -->
 <para>
-Sets the data element corresponding to the given string identifier, and the
-function to be called when the data element is removed.
+
 </para>
 
-@dl: a datalist.
-@k: the string to identify the data element.
-@d: the data element.
-@f: the function to call when the data element is removed. This
-function will be called with the data element and can be used to free any
-memory allocated for it.
+@dl: 
+@k: 
+@d: 
+@f: 
 
 
 <!-- ##### MACRO g_datalist_get_data ##### -->
 <para>
-Gets a data element, using its string identifer.
-This is slower than g_datalist_id_get_data() because the string is first
-converted to a #GQuark.
+
 </para>
 
-@dl: a datalist.
-@k: the string identifying a data element.
-@Returns: the data element, or NULL if it is not found.
+@dl: 
+@k: 
 
 
 <!-- ##### MACRO g_datalist_remove_data ##### -->
 <para>
-Removes an element using its string identifier.
-The data element's destroy function is called if it has been set.
+
 </para>
 
-@dl: a datalist.
-@k: the string identifying the data element.
+@dl: 
+@k: 
 
 
 <!-- ##### MACRO g_datalist_remove_no_notify ##### -->
@@ -176,22 +130,19 @@ The data element's destroy function is called if it has been set.
 
 <!-- ##### FUNCTION g_datalist_foreach ##### -->
 <para>
-Calls the given function for each data element of the datalist.
-The function is called with each data element's #GQuark id and data,
-together with the given @user_data parameter.
+
 </para>
 
-@datalist: a datalist.
-@func: the function to call for each data element.
-@user_data: user data to pass to the function.
+@datalist: 
+@func: 
+@user_data: 
 
 
 <!-- ##### FUNCTION g_datalist_clear ##### -->
 <para>
-Frees all the data elements of the datalist.
-The data elements' destroy functions are called if they have been set.
+
 </para>
 
-@datalist: a datalist.
+@datalist: 
 
 
index b51803775a3c740d7181d274ae440c1f76581f0b..f935397b2690df5cb2ee59f65d2718c807a08742 100644 (file)
 Datasets
 
 <!-- ##### SECTION Short_Description ##### -->
-associate groups of data elements with particular memory locations.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-Datasets associate groups of data elements with particular memory locations.
-These are useful if you need to associate data with a structure returned
-from an external library. Since you cannot modify the structure, you use
-its location in memory as the key into a dataset, where you can associate
-any number of data elements with it.
-</para>
-<para>
-There are two forms of most of the dataset functions.
-The first form uses strings to identify the data elements associated with
-a location. The second form uses #GQuark identifiers, which are created
-with a call to g_quark_from_string() or g_quark_from_static_string().
-The second form is quicker, since it does not require looking up the string
-in the hash table of #GQuark identifiers.
-</para>
-<para>
-There is no function to create a dataset. It is automatically created as
-soon as you add elements to it.
-</para>
-<para>
-To add data elements to a dataset use g_dataset_id_set_data(),
-g_dataset_id_set_data_full(), g_dataset_set_data()
-and g_dataset_set_data_full().
-</para>
-<para>
-To get data elements from a dataset use g_dataset_id_get_data() and
-g_dataset_get_data().
-</para>
-<para>
-To iterate over all data elements in a dataset use g_dataset_foreach().
-</para>
-<para>
-To remove data elements from a dataset use g_dataset_id_remove_data() and
-g_dataset_remove_data().
-</para>
-<para>
-To destroy a dataset, use g_dataset_destroy().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO g_dataset_id_set_data ##### -->
 <para>
-Sets the data element associated with the given #GQuark id.
-Any previous data with the same key is removed, and its destroy function
-is called.
+
 </para>
 
-@l: the location identifying the dataset.
-@k: the #GQuark id to identify the data element.
-@d: the data element.
+@l: 
+@k: 
+@d: 
 
 
 <!-- ##### FUNCTION g_dataset_id_set_data_full ##### -->
 <para>
-Sets the data element associated with the given #GQuark id, and also the
-function to call when the data element is destroyed.
-Any previous data with the same key is removed, and its
-destroy function is called.
+
 </para>
 
-@dataset_location: the location identifying the dataset.
-@key_id: the #GQuark id to identify the data element.
-@data: the data element.
-@destroy_func: the function to call when the data element is removed. This
-function will be called with the data element and can be used to free any
-memory allocated for it.
+@dataset_location: 
+@key_id: 
+@data: 
+@destroy_func: 
 
 
 <!-- ##### USER_FUNCTION GDestroyNotify ##### -->
 <para>
-Specifies the type of function which is called when a data element is
-destroyed. It is passed the pointer to the data element and should free
-any memory and resources allocated for it.
+
 </para>
 
-@data: the data element.
+@data: 
 
 
 <!-- ##### FUNCTION g_dataset_id_get_data ##### -->
 <para>
-Gets the data element corresponding to a #GQuark.
+
 </para>
 
-@dataset_location: the location identifying the dataset.
-@key_id: the #GQuark id to identify the data element.
-@Returns: the data element corresponding to the #GQuark, or NULL if it is
-not found.
+@dataset_location: 
+@key_id: 
+@Returns: 
 
 
 <!-- ##### MACRO g_dataset_id_remove_data ##### -->
 <para>
-Removes a data element from a dataset.
-The data element's destroy function is called if it has been set.
+
 </para>
 
-@l: the location identifying the dataset.
-@k: the #GQuark id identifying the data element.
+@l: 
+@k: 
 
 
 <!-- ##### FUNCTION g_dataset_id_remove_no_notify ##### -->
@@ -115,51 +71,46 @@ The data element's destroy function is called if it has been set.
 
 @dataset_location: 
 @key_id: 
+@Returns: 
 
 
 <!-- ##### MACRO g_dataset_set_data ##### -->
 <para>
-Sets the data corresponding to the given string identifier.
+
 </para>
 
-@l: the location identifying the dataset.
-@k: the string to identify the data element.
-@d: the data element.
+@l: 
+@k: 
+@d: 
 
 
 <!-- ##### MACRO g_dataset_set_data_full ##### -->
 <para>
-Sets the data corresponding to the given string identifier, and the function
-to call when the data element is destroyed.
+
 </para>
 
-@l: the location identifying the dataset.
-@k: the string to identify the data element.
-@d: the data element.
-@f: the function to call when the data element is removed. This
-function will be called with the data element and can be used to free any
-memory allocated for it.
+@l: 
+@k: 
+@d: 
+@f: 
 
 
 <!-- ##### MACRO g_dataset_get_data ##### -->
 <para>
-Gets the data element corresponding to a string.
+
 </para>
 
-@l: the location identifying the dataset.
-@k: the string identifying the data element.
-@Returns: the data element corresponding to the string, or NULL if it is not
-found.
+@l: 
+@k: 
 
 
 <!-- ##### MACRO g_dataset_remove_data ##### -->
 <para>
-Removes a data element corresponding to a string.
-Its destroy function is called if it has been set.
+
 </para>
 
-@l: the location identifying the dataset.
-@k: the string identifying the data element.
+@l: 
+@k: 
 
 
 <!-- ##### MACRO g_dataset_remove_no_notify ##### -->
@@ -173,33 +124,29 @@ Its destroy function is called if it has been set.
 
 <!-- ##### FUNCTION g_dataset_foreach ##### -->
 <para>
-Calls the given function for each data element which is associated with the
-given location.
+
 </para>
 
-@dataset_location: the location identifying the dataset.
-@func: the function to call for each data element.
-@user_data: user data to pass to the function.
+@dataset_location: 
+@func: 
+@user_data: 
 
 
 <!-- ##### USER_FUNCTION GDataForeachFunc ##### -->
 <para>
-Specifies the type of function passed to g_dataset_foreach().
-It is called with each #GQuark id and associated data element,
-together with the @user_data parameter supplied to g_dataset_foreach().
+
 </para>
 
-@key_id: the #GQuark id to identifying the data element.
-@data: the data element.
-@user_data: user data passed to g_dataset_foreach().
+@key_id: 
+@data: 
+@user_data: 
 
 
 <!-- ##### FUNCTION g_dataset_destroy ##### -->
 <para>
-Destroys the dataset, freeing all memory allocated, and calling any
-destroy functions set for data elements.
+
 </para>
 
-@dataset_location: the location identifying the dataset.
+@dataset_location: 
 
 
index cfced74dc7837f3985c6f83611d73a02fd91d4a0..8ed97ce517963af284af26174640d51b1a233049 100644 (file)
-<!-- ##### SECTION Title ##### -->\r
-Date and Time Functions\r
-\r
-<!-- ##### SECTION Short_Description ##### -->\r
-calendrical calculations and miscellaneous time stuff.\r
-\r
-<!-- ##### SECTION Long_Description ##### -->\r
-<para>\r
-The #GDate data structure represents a day between January 1, Year 1,\r
-and sometime a few thousand years in the future (right now it will go\r
-to the year 65535 or so, but g_date_set_parse() only parses up to the\r
-year 8000 or so - just count on "a few thousand"). #GDate is meant to\r
-represent everyday dates, not astronomical dates or historical dates\r
-or ISO timestamps or the like. It extrapolates the current Gregorian\r
-calendar forward and backward in time; there is no attempt to change\r
-the calendar to match time periods or locations. #GDate does not store\r
-time information; it represents a <emphasis>day</emphasis>.\r
-</para>\r
-\r
-<para>\r
-The #GDate implementation has several nice features; it is only a\r
-64-bit struct, so storing large numbers of dates is very efficient. It\r
-can keep both a Julian and Day-Month-Year representation of the date,\r
-since some calculations are much easier with one representation or the\r
-other. A Julian representation is simply a count of days since some\r
-fixed day in the past; for #GDate the fixed day is January 1, 1 AD.\r
-("Julian" dates in the #GDate API aren't really Julian dates in the\r
-technical sense; technically, Julian dates count from the start of the\r
-Julian period, Jan 1, 4713 BC).\r
-</para>\r
-\r
-<para>\r
-#GDate is simple to use. First you need a "blank" date; you can get a\r
-dynamically allocated date from g_date_new(), or you can declare an\r
-automatic variable or array and initialize it to a sane state by\r
-calling g_date_clear(). A cleared date is sane; it's safe to call\r
-g_date_set_dmy() and the other mutator functions to initialize the\r
-value of a cleared date. However, a cleared date is initially\r
-<emphasis>invalid</emphasis>, meaning that it doesn't represent a day\r
-that exists. It is undefined to call any of the date calculation\r
-routines on an invalid date. If you obtain a date from a user or other\r
-unpredictable source, you should check its validity with the\r
-g_date_valid() predicate. g_date_valid() is also used to check for\r
-errors with g_date_set_parse() and other functions that can\r
-fail. Dates can be invalidated by calling g_date_clear() again.\r
-</para>\r
-\r
-<para>\r
-<emphasis>It is very important to use the API to access the #GDate\r
-struct.</emphasis> Often only the DMY or only the Julian\r
-representation is valid. Sometimes neither is valid. Use the API.\r
-</para>\r
-\r
-<para>\r
-glib doesn't contain any time-manipulation functions; however, there\r
-is a #GTime typedef which is equivalent to time_t, and a #GTimeVal\r
-struct which represents a more precise time (with microseconds). You\r
-can request the current time as a #GTimeVal with g_get_current_time().\r
-</para>\r
-\r
-<!-- ##### SECTION See_Also ##### -->\r
-<para>\r
-\r
-</para>\r
-\r
-<!-- ##### STRUCT GTimeVal ##### -->\r
-<para>\r
-Represents a precise time, with seconds and microseconds. Same as the\r
-<structname>struct timeval</structname> returned by the\r
-<function>gettimeofday()</function> UNIX call.\r
-</para>\r
-\r
-@tv_sec: \r
-@tv_usec: \r
-\r
-<!-- ##### FUNCTION g_get_current_time ##### -->\r
-<para>\r
-Equivalent to <function>gettimeofday()</function>, but also works on\r
-Win32. Returns the current time.\r
-</para>\r
-\r
-@result: \r
-\r
-\r
-<!-- ##### TYPEDEF GTime ##### -->\r
-<para>\r
-Simply a replacement for time_t. Unrelated to GTimer.\r
-</para>\r
-\r
-\r
-<!-- ##### STRUCT GDate ##### -->\r
-<para>\r
-Represents a day between January 1, Year 1 and a few thousand years in\r
-the future. None of its members should be accessed directly. If the\r
-<structname>GDate</structname> is obtained from g_date_new(), it will\r
-be safe to mutate but invalid and thus not safe for calendrical computations.\r
-If it's declared on the stack, it will contain garbage so must be\r
-initialized with g_date_clear(). g_date_clear() makes the date invalid\r
-but sane. An invalid date doesn't represent a day, it's "empty." A\r
-date becomes valid after you set it to a Julian day or you set a day,\r
-month, and year.\r
-</para>\r
-\r
-@julian_days: \r
-@julian: \r
-@dmy: \r
-@day: \r
-@month: \r
-@year: \r
-\r
-<!-- ##### ENUM GDateDMY ##### -->\r
-<para>\r
-This enumeration isn't used in the API, but may be useful if you need\r
-to mark a number as a day, month, or year.\r
-</para>\r
-\r
-@G_DATE_DAY: \r
-@G_DATE_MONTH: \r
-@G_DATE_YEAR: \r
-\r
-<!-- ##### TYPEDEF GDateDay ##### -->\r
-<para>\r
-Integer representing a day of the month; between 1 and\r
-31. #G_DATE_BAD_DAY represents an invalid day of the month.\r
-</para>\r
-\r
-\r
-<!-- ##### ENUM GDateMonth ##### -->\r
-<para>\r
-Enumeration representing a month; values are #G_DATE_JANUARY,\r
-#G_DATE_FEBRUARY, etc. #G_DATE_BAD_MONTH is the "invalid" value.\r
-</para>\r
-\r
-@G_DATE_BAD_MONTH: \r
-@G_DATE_JANUARY: \r
-@G_DATE_FEBRUARY: \r
-@G_DATE_MARCH: \r
-@G_DATE_APRIL: \r
-@G_DATE_MAY: \r
-@G_DATE_JUNE: \r
-@G_DATE_JULY: \r
-@G_DATE_AUGUST: \r
-@G_DATE_SEPTEMBER: \r
-@G_DATE_OCTOBER: \r
-@G_DATE_NOVEMBER: \r
-@G_DATE_DECEMBER: \r
-\r
-<!-- ##### ENUM GDateWeekday ##### -->\r
-<para>\r
-Enumeration representing a day of the week; #G_DATE_MONDAY,\r
-#G_DATE_TUESDAY, etc. #G_DATE_BAD_WEEKDAY is an invalid weekday.\r
-</para>\r
-\r
-@G_DATE_BAD_WEEKDAY: \r
-@G_DATE_MONDAY: \r
-@G_DATE_TUESDAY: \r
-@G_DATE_WEDNESDAY: \r
-@G_DATE_THURSDAY: \r
-@G_DATE_FRIDAY: \r
-@G_DATE_SATURDAY: \r
-@G_DATE_SUNDAY: \r
-\r
-<!-- ##### TYPEDEF GDateYear ##### -->\r
-<para>\r
-Integer representing a year; #G_DATE_BAD_YEAR is the invalid\r
-value. The year must be 1 or higher; negative (BC) years are not\r
-allowed. The year is represented with four digits.\r
-</para>\r
-\r
-\r
-<!-- ##### MACRO G_DATE_BAD_DAY ##### -->\r
-<para>\r
-Represents an invalid #GDateDay.\r
-</para>\r
-\r
-\r
-\r
-<!-- ##### MACRO G_DATE_BAD_JULIAN ##### -->\r
-<para>\r
-Represents an invalid Julian day number.\r
-</para>\r
-\r
-\r
-\r
-<!-- ##### MACRO G_DATE_BAD_YEAR ##### -->\r
-<para>\r
-Represents an invalid year.\r
-</para>\r
-\r
-\r
-\r
-<!-- ##### FUNCTION g_date_add_days ##### -->\r
-<para>\r
-Increment a date some number of days. To move forward by weeks, add\r
-weeks*7 days. The date must be valid.\r
-</para>\r
-\r
-@date: The date to increment\r
-@n_days: Number of days to move the date forward\r
-\r
-\r
-<!-- ##### FUNCTION g_date_add_months ##### -->\r
-<para>\r
-Increment a date by some number of months. If the day of the month is\r
-greater than 28, this routine may change the day of the month (because\r
-the destination month may not have the current day in it). The date\r
-must be valid.\r
-</para>\r
-\r
-@date: Date to increment\r
-@n_months: Number of months to move forward\r
-\r
-\r
-<!-- ##### FUNCTION g_date_add_years ##### -->\r
-<para>\r
-Increment a date by some number of years. If the date is February 29,\r
-and the destination year is not a leap year, the date will be changed\r
-to February 28. The date must be valid.\r
-</para>\r
-\r
-@date: Date to increment\r
-@n_years: Number of years to move forward\r
-\r
-\r
-<!-- ##### FUNCTION g_date_clear ##### -->\r
-<para>\r
-Initialize one or more #GDate structs to a sane but invalid\r
-state. The cleared dates will not represent an existing date, but will\r
-not contain garbage. Useful to init a date declared on the stack.\r
-Validity can be tested with g_date_valid().\r
-</para>\r
-\r
-@date: Pointer to one or more dates to clear\r
-@n_dates: Number of dates to clear\r
-\r
-\r
-<!-- ##### FUNCTION g_date_compare ##### -->\r
-<para>\r
-<function>qsort()</function>-style comparsion function for dates. Both\r
-dates must be valid.\r
-</para>\r
-\r
-@lhs: First date to compare\r
-@rhs: Second date to compare\r
-@Returns: 0 for equal, less than zero if @lhs is less than @rhs,\r
-greater than zero if @lhs is greater than @rhs\r
-\r
-\r
-<!-- ##### FUNCTION g_date_day ##### -->\r
-<para>\r
-Return the day of the month; the #GDate must be valid.\r
-</para>\r
-\r
-@date: Date to extract the day of the month from\r
-@Returns: Day of the month\r
-\r
-\r
-<!-- ##### FUNCTION g_date_day_of_year ##### -->\r
-<para>\r
-Return the day of the year, where Jan 1 is the first day of the\r
-year. Date must be valid.\r
-</para>\r
-\r
-@date: Date to extract day of year from\r
-@Returns: Day of the year\r
-\r
-\r
-<!-- ##### FUNCTION g_date_days_in_month ##### -->\r
-<para>\r
-Return the number of days in a month, taking leap years into account.\r
-</para>\r
-\r
-@month: Month\r
-@year: Year\r
-@Returns: Number of days in @month during the year @year.\r
-\r
-\r
-<!-- ##### FUNCTION g_date_free ##### -->\r
-<para>\r
-Free a #GDate returned from g_date_new()\r
-</para>\r
-\r
-@date: Date to free\r
-\r
-\r
-<!-- ##### FUNCTION g_date_is_first_of_month ##### -->\r
-<para>\r
-Returns TRUE if the date is on the first of a month. Date must be valid.\r
-</para>\r
-\r
-@date: Date to check\r
-@Returns: Boolean, if the date is the first of the month\r
-\r
-\r
-<!-- ##### FUNCTION g_date_is_last_of_month ##### -->\r
-<para>\r
-Returns TRUE if the date is the last day of the month. Date must be valid.\r
-</para>\r
-\r
-@date: Date to check\r
-@Returns: Boolean, if the date is the last day of the month\r
-\r
-\r
-<!-- ##### FUNCTION g_date_is_leap_year ##### -->\r
-<para>\r
-Returns TRUE if the year is a leap year\r
-</para>\r
-\r
-@year: Year to check\r
-@Returns: Boolean, if the year is a leap year\r
-\r
-\r
-<!-- ##### FUNCTION g_date_julian ##### -->\r
-<para>\r
-Accessor, returns the Julian day or "serial number" of the #GDate. The\r
-Julian day is simply the number of days since January 1, Year 1; i.e.,\r
-January 1, Year 1 is Julian day 1; January 2, Year 1 is Julian day 2,\r
-etc. Date must be valid.\r
-</para>\r
-\r
-@date: Date to extract the Julian day from\r
-@Returns: Julian day\r
-\r
-\r
-<!-- ##### FUNCTION g_date_monday_week_of_year ##### -->\r
-<para>\r
-Return the week of the year, where weeks are understood to start on\r
-Monday. If the date is before the first Monday of the year, return\r
-0. Date must be valid.\r
-</para>\r
-\r
-@date: Date to use\r
-@Returns: Week of the year\r
-\r
-\r
-<!-- ##### FUNCTION g_date_monday_weeks_in_year ##### -->\r
-<para>\r
-Return the number of weeks in the year, where weeks are taken to start\r
-on Monday. Will be 52 or 53. Date must be valid. (Years always have 52\r
-7-day periods, plus 1 or 2 extra days depending on whether it's a leap\r
-year. This function is basically telling you how many Mondays are in\r
-the year, i.e. there are 53 Mondays if one of the extra days happens\r
-to be a Monday.)\r
-</para>\r
-\r
-@year: Year\r
-@Returns: Number of Mondays in the year\r
-\r
-\r
-<!-- ##### FUNCTION g_date_month ##### -->\r
-<para>\r
-Accessor for the month of the year. Date must be valid.\r
-</para>\r
-\r
-@date: Date to get the month from\r
-@Returns: A #GDateMonth\r
-\r
-\r
-<!-- ##### FUNCTION g_date_new ##### -->\r
-<para>\r
-Allocate a #GDate and initialize it to a sane state. The new date will\r
-be cleared (as if you'd called g_date_clear()) but invalid (it won't\r
-represent an existing day). Free the return value with g_date_free().\r
-</para>\r
-\r
-@Returns: The newly-allocated #GDate\r
-\r
-\r
-<!-- ##### FUNCTION g_date_new_dmy ##### -->\r
-<para>\r
-Like g_date_new(), but also sets the value of the date. Assuming the\r
-day/month/year triplet you pass in represents an existing day, the\r
-returned date will be valid.\r
-</para>\r
-\r
-@day: Day of the month\r
-@month: Month of the year\r
-@year: Year\r
-@Returns: Allocated date initialized with @day, @month, and @year\r
-\r
-\r
-<!-- ##### FUNCTION g_date_new_julian ##### -->\r
-<para>\r
-Like g_date_new(), but also sets the value of the date. Assuming the\r
-Julian day number you pass in is valid (greater than 0, less than an\r
-unreasonably large number), the returned date will be valid.\r
-</para>\r
-\r
-@julian_day: Days since January 1, Year 1\r
-@Returns: Allocated date initialized with @julian_day\r
-\r
-\r
-<!-- ##### FUNCTION g_date_set_day ##### -->\r
-<para>\r
-Set the day of the month for a #GDate. If the resulting day-month-year\r
-triplet is invalid, the date will be invalid.\r
-</para>\r
-\r
-@date: Date to set the day for\r
-@day: Day to set\r
-\r
-\r
-<!-- ##### FUNCTION g_date_set_dmy ##### -->\r
-<para>\r
-Set the value of a #GDate from a day, month, and year. The DMY triplet\r
-must be valid; if you aren't sure it is, call g_date_valid_dmy() to\r
-check before you set it.\r
-</para>\r
-\r
-@date: Date to set the value of\r
-@day: Day\r
-@month: Month\r
-@y: Year\r
-\r
-\r
-<!-- ##### FUNCTION g_date_set_julian ##### -->\r
-<para>\r
-Set the value of a #GDate from a Julian day number. \r
-</para>\r
-\r
-@date: Date to set\r
-@julian_date: Julian day number (days since January 1, Year 1)\r
-\r
-\r
-<!-- ##### FUNCTION g_date_set_month ##### -->\r
-<para>\r
-Set the month of the year for a #GDate.  If the resulting\r
- day-month-year triplet is invalid, the date will be invalid.\r
-</para>\r
-\r
-@date: Date\r
-@month: Month to set\r
-\r
-\r
-<!-- ##### FUNCTION g_date_set_parse ##### -->\r
-<para>\r
-Parse a user-inputted string @str, and try to figure out what date it\r
-represents, taking the current locale into account. If the string is\r
-successfully parsed, the date will be valid after the call. Otherwise,\r
-it will be invalid. You should check using g_date_valid() to see\r
-whether the parsing succeeded.\r
-</para>\r
-\r
-<para>\r
-This function is not appropriate for file formats and the like; it\r
-isn't very precise, and its exact behavior varies with the\r
-locale. It's intended to be a heuristic routine that guesses what the\r
-user means by a given string (and it does work pretty well in that\r
-capacity).\r
-</para>\r
-\r
-@date: Date to fill in\r
-@str: String to parse\r
-\r
-\r
-<!-- ##### FUNCTION g_date_set_time ##### -->\r
-<para>\r
-Set the value of a date from a #GTime (time_t) value. To set the value\r
-of a date to the current day, you could write:\r
-<informalexample><programlisting>\r
-  g_date_set_time(date, time(NULL));\r
-</programlisting></informalexample>\r
-</para>\r
-\r
-@date: Date to update\r
-@time: #GTime value to set\r
-\r
-\r
-<!-- ##### FUNCTION g_date_set_year ##### -->\r
-<para>\r
-Set the year for a #GDate.  If the resulting day-month-year triplet is\r
-  invalid, the date will be invalid.\r
-</para>\r
-\r
-@date: Date\r
-@year: Year to set\r
-\r
-\r
-<!-- ##### FUNCTION g_date_strftime ##### -->\r
-<para>\r
-Generate a printed representation of the date, in a locale-specific\r
-way. Works just like the standard C <function>strftime()</function>\r
-function, but only accepts date-related formats; time-related formats\r
-give undefined results. Date must be valid.\r
-</para>\r
-\r
-@s: Destination buffer\r
-@slen: Max buffer size\r
-@format: Format string\r
-@date: valid #GDate\r
-@Returns: number of characters written to the buffer, or 0 the buffer was too small\r
-\r
-\r
-<!-- ##### FUNCTION g_date_subtract_days ##### -->\r
-<para>\r
-Move a date some number of days into the past. To move by weeks, just\r
-move by weeks*7 days. Date must be valid.\r
-</para>\r
-\r
-@date: Date to decrement\r
-@n_days: Number of days to move\r
-\r
-\r
-<!-- ##### FUNCTION g_date_subtract_months ##### -->\r
-<para>\r
-Move a date some number of months into the past. If the current day of\r
-the month doesn't exist in the destination month, the day of the month\r
-may change. Date must be valid.\r
-</para>\r
-\r
-@date: Date to decrement\r
-@n_months: Number of months to move\r
-\r
-\r
-<!-- ##### FUNCTION g_date_subtract_years ##### -->\r
-<para>\r
-Move a date some number of years into the past. If the current day\r
-doesn't exist in the destination year (i.e. it's February 29 and you\r
-move to a non-leap-year) then the day is changed to February 29. Date\r
-must be valid.\r
-</para>\r
-\r
-@date: Date to decrement\r
-@n_years: Number of years to move\r
-\r
-\r
-<!-- ##### FUNCTION g_date_sunday_week_of_year ##### -->\r
-<para>\r
-Week of the year during which this date falls, if weeks are understood\r
-to being on Sunday. Date must be valid. Can return 0 if the day is\r
-before the first Sunday of the year.\r
-</para>\r
-\r
-@date: Date\r
-@Returns: Week number\r
-\r
-\r
-<!-- ##### FUNCTION g_date_sunday_weeks_in_year ##### -->\r
-<para>\r
-Return the number of weeks in the year, where weeks are taken to start\r
-on Sunday. Will be 52 or 53. Date must be valid. (Years always have 52\r
-7-day periods, plus 1 or 2 extra days depending on whether it's a leap\r
-year. This function is basically telling you how many Sundays are in\r
-the year, i.e. there are 53 Sundays if one of the extra days happens\r
-to be a Sunday.)\r
-</para>\r
-\r
-@year: Year to count weeks in\r
-@Returns: Number of weeks\r
-\r
-\r
-<!-- ##### FUNCTION g_date_to_struct_tm ##### -->\r
-<para>\r
-Fills in the date-related bits of a <structname>struct tm</structname>\r
-using the @date value. Initializes the non-date parts with something\r
-sane but meaningless.\r
-</para>\r
-\r
-@date: Date to set the <structname>struct tm</structname> from\r
-@tm: <structname>struct tm</structname> to fill\r
-\r
-\r
-<!-- ##### FUNCTION g_date_valid ##### -->\r
-<para>\r
-Returns TRUE if the #GDate represents an existing day. #GDate must not\r
-contain garbage; it should have been initialized with g_date_clear()\r
-if it wasn't allocated by one of the g_date_new() variants.\r
-</para>\r
-\r
-@date: Date to check\r
-@Returns: Whether the date is valid.\r
-\r
-\r
-<!-- ##### FUNCTION g_date_valid_day ##### -->\r
-<para>\r
-Returns TRUE if the day of the month is valid (a day is valid if it's\r
-between 1 and 31 inclusive).\r
-</para>\r
-\r
-@day: Day to check.\r
-@Returns: Boolean, whether the day is valid.\r
-\r
-\r
-<!-- ##### FUNCTION g_date_valid_dmy ##### -->\r
-<para>\r
-Returns TRUE if the day/month/year triplet forms a valid, existing day\r
-in the range of days GDate understands (Year 1 or later, no more than\r
-a few thousand years in the future).\r
-</para>\r
-\r
-@day: Day\r
-@month: Month\r
-@year: Year\r
-@Returns: Boolean, whether the date is a valid one\r
-\r
-\r
-<!-- ##### FUNCTION g_date_valid_julian ##### -->\r
-<para>\r
-Returns TRUE if the Julian day is valid. Anything greater than zero is basically a\r
-valid Julian, though there is a 32-bit limit.\r
-</para>\r
-\r
-@julian_date: Julian day to check\r
-@Returns: Boolean, whether the Julian day is valid.\r
-\r
-\r
-<!-- ##### FUNCTION g_date_valid_month ##### -->\r
-<para>\r
-Returns TRUE if the month value is valid. The 12 #GDateMonth\r
-enumeration values are the only valid months.\r
-</para>\r
-\r
-@month: Month\r
-@Returns: Boolean, whether the month is valid\r
-\r
-\r
-<!-- ##### FUNCTION g_date_valid_weekday ##### -->\r
-<para>\r
-Returns TRUE if the weekday is valid. The 7 #GDateWeekday enumeration\r
-values are the only valid weekdays.\r
-</para>\r
-\r
-@weekday: Weekday\r
-@Returns: Boolean, whether the weekday is valid.\r
-\r
-\r
-<!-- ##### FUNCTION g_date_valid_year ##### -->\r
-<para>\r
-Returns TRUE if the year is valid. Any year greater than 0 is valid,\r
-though there is a 16-bit limit to what GDate will understand.\r
-</para>\r
-\r
-@year: Year\r
-@Returns: Boolean, whether the year is valid.\r
-\r
-\r
-<!-- ##### FUNCTION g_date_weekday ##### -->\r
-<para>\r
-Returns the day of the week for a #GDate. The date must be valid.\r
-</para>\r
-\r
-@date: Date\r
-@Returns: Day of the week as a #GDateWeekday\r
-\r
-\r
-<!-- ##### FUNCTION g_date_year ##### -->\r
-<para>\r
-Accessor; returns the year of a #GDate. The date must be valid.\r
-</para>\r
-\r
-@date: Date\r
-@Returns: Year in which the date falls\r
-\r
-\r
+<!-- ##### SECTION Title ##### -->
+Date and Time Functions
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_MICROSEC ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT GTimeVal ##### -->
+<para>
+
+</para>
+
+@tv_sec: 
+@tv_usec: 
+
+<!-- ##### FUNCTION g_get_current_time ##### -->
+<para>
+
+</para>
+
+@result: 
+
+
+<!-- ##### FUNCTION g_usleep ##### -->
+<para>
+
+</para>
+
+@microseconds: 
+
+
+<!-- ##### STRUCT GDate ##### -->
+<para>
+
+</para>
+
+@julian_days: 
+@julian: 
+@dmy: 
+@day: 
+@month: 
+@year: 
+
+<!-- ##### TYPEDEF GTime ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM GDateDMY ##### -->
+<para>
+
+</para>
+
+@G_DATE_DAY: 
+@G_DATE_MONTH: 
+@G_DATE_YEAR: 
+
+<!-- ##### TYPEDEF GDateDay ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM GDateMonth ##### -->
+<para>
+
+</para>
+
+@G_DATE_BAD_MONTH: 
+@G_DATE_JANUARY: 
+@G_DATE_FEBRUARY: 
+@G_DATE_MARCH: 
+@G_DATE_APRIL: 
+@G_DATE_MAY: 
+@G_DATE_JUNE: 
+@G_DATE_JULY: 
+@G_DATE_AUGUST: 
+@G_DATE_SEPTEMBER: 
+@G_DATE_OCTOBER: 
+@G_DATE_NOVEMBER: 
+@G_DATE_DECEMBER: 
+
+<!-- ##### TYPEDEF GDateYear ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM GDateWeekday ##### -->
+<para>
+
+</para>
+
+@G_DATE_BAD_WEEKDAY: 
+@G_DATE_MONDAY: 
+@G_DATE_TUESDAY: 
+@G_DATE_WEDNESDAY: 
+@G_DATE_THURSDAY: 
+@G_DATE_FRIDAY: 
+@G_DATE_SATURDAY: 
+@G_DATE_SUNDAY: 
+
+<!-- ##### MACRO G_DATE_BAD_DAY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_DATE_BAD_JULIAN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_DATE_BAD_YEAR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION g_date_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_new_dmy ##### -->
+<para>
+
+</para>
+
+@day: 
+@month: 
+@year: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_new_julian ##### -->
+<para>
+
+</para>
+
+@julian_day: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_clear ##### -->
+<para>
+
+</para>
+
+@date: 
+@n_dates: 
+
+
+<!-- ##### FUNCTION g_date_free ##### -->
+<para>
+
+</para>
+
+@date: 
+
+
+<!-- ##### FUNCTION g_date_set_day ##### -->
+<para>
+
+</para>
+
+@date: 
+@day: 
+
+
+<!-- ##### FUNCTION g_date_set_month ##### -->
+<para>
+
+</para>
+
+@date: 
+@month: 
+
+
+<!-- ##### FUNCTION g_date_set_year ##### -->
+<para>
+
+</para>
+
+@date: 
+@year: 
+
+
+<!-- ##### FUNCTION g_date_set_dmy ##### -->
+<para>
+
+</para>
+
+@date: 
+@day: 
+@month: 
+@y: 
+
+
+<!-- ##### FUNCTION g_date_set_julian ##### -->
+<para>
+
+</para>
+
+@date: 
+@julian_date: 
+
+
+<!-- ##### FUNCTION g_date_set_time ##### -->
+<para>
+
+</para>
+
+@date: 
+@time: 
+
+
+<!-- ##### FUNCTION g_date_set_parse ##### -->
+<para>
+
+</para>
+
+@date: 
+@str: 
+
+
+<!-- ##### FUNCTION g_date_add_days ##### -->
+<para>
+
+</para>
+
+@date: 
+@n_days: 
+
+
+<!-- ##### FUNCTION g_date_subtract_days ##### -->
+<para>
+
+</para>
+
+@date: 
+@n_days: 
+
+
+<!-- ##### FUNCTION g_date_add_months ##### -->
+<para>
+
+</para>
+
+@date: 
+@n_months: 
+
+
+<!-- ##### FUNCTION g_date_subtract_months ##### -->
+<para>
+
+</para>
+
+@date: 
+@n_months: 
+
+
+<!-- ##### FUNCTION g_date_add_years ##### -->
+<para>
+
+</para>
+
+@date: 
+@n_years: 
+
+
+<!-- ##### FUNCTION g_date_subtract_years ##### -->
+<para>
+
+</para>
+
+@date: 
+@n_years: 
+
+
+<!-- ##### FUNCTION g_date_compare ##### -->
+<para>
+
+</para>
+
+@lhs: 
+@rhs: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_day ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_month ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_year ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_julian ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_weekday ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_day_of_year ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_days_in_month ##### -->
+<para>
+
+</para>
+
+@month: 
+@year: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_is_first_of_month ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_is_last_of_month ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_is_leap_year ##### -->
+<para>
+
+</para>
+
+@year: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_monday_week_of_year ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_monday_weeks_in_year ##### -->
+<para>
+
+</para>
+
+@year: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_sunday_week_of_year ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_sunday_weeks_in_year ##### -->
+<para>
+
+</para>
+
+@year: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_strftime ##### -->
+<para>
+
+</para>
+
+@s: 
+@slen: 
+@format: 
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_to_struct_tm ##### -->
+<para>
+
+</para>
+
+@date: 
+@tm: 
+
+
+<!-- ##### FUNCTION g_date_valid ##### -->
+<para>
+
+</para>
+
+@date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_valid_day ##### -->
+<para>
+
+</para>
+
+@day: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_valid_month ##### -->
+<para>
+
+</para>
+
+@month: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_valid_year ##### -->
+<para>
+
+</para>
+
+@year: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_valid_dmy ##### -->
+<para>
+
+</para>
+
+@day: 
+@month: 
+@year: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_valid_julian ##### -->
+<para>
+
+</para>
+
+@julian_date: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_date_valid_weekday ##### -->
+<para>
+
+</para>
+
+@weekday: 
+@Returns: 
+
+
index 75ffd0600ee88f81e32cb3e8be418a13631d962e..8c05778266d4ee566755982b355a4091f3c51480 100644 (file)
 Hash Tables
 
 <!-- ##### SECTION Short_Description ##### -->
-associations between keys and values so that given a key the value
-can be found quickly.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-A #GHashTable provides associations between keys and values which
-is optimized so that given a key, the associated value can be found
-very quickly.
-</para>
-<para>
-Note that neither keys nor values are copied when inserted into the
-#GHashTable, so they must exist for the lifetime of the #GHashTable.
-This means that the use of static strings is OK, but temporary
-strings (i.e. those created in buffers and those returned by GTK widgets)
-should be copied with g_strdup() before being inserted.
-</para>
-<para>
-If keys or values are dynamically allocated, you must be careful to ensure
-that they are freed when they are removed from the #GHashTable, and also
-when they are overwritten by new insertions into the #GHashTable.
-It is also not advisable to mix static strings and dynamically-allocated
-strings in a #GHashTable, because it then becomes difficult to determine
-whether the string should be freed.
-</para>
-<para>
-To create a #GHashTable, use g_hash_table_new().
-</para>
-<para>
-To insert a key and value into a #GHashTable, use g_hash_table_insert().
-</para>
-<para>
-To lookup a value corresponding to a given key, use g_hash_table_lookup()
-and g_hash_table_lookup_extended().
-</para>
-<para>
-To remove a key and value, use g_hash_table_remove().
-</para>
-<para>
-To call a function for each key and value pair use g_hash_table_foreach().
-</para>
-<para>
-To destroy a #GHashTable use g_hash_table_destroy().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GHashTable ##### -->
 <para>
-The #GHashTable struct is an opaque data structure to represent a
-<link linkend="glib-Hash-Tables">Hash Table</link>.
-It should only be accessed via the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_hash_table_new ##### -->
 <para>
-Creates a new #GHashTable.
+
 </para>
 
-@hash_func: a function to create a hash value from a key.
-Hash values are used to determine where keys are stored within the
-#GHashTable data structure.
-The g_direct_hash(), g_int_hash() and g_str_hash() functions are provided for
-some common types of keys. If hash_func is NULL, g_direct_hash() is used.
-@key_compare_func: a function to compare two keys to see if they are equal.
-This is used when looking up keys in the #GHashTable.
-The g_direct_equal(), g_int_equal() and g_str_equal() functions are provided
-for the most common types of keys. If compare_func is NULL, keys are compared
-directly in a similar fashion to g_direct_equal(), but without the overhead
-of a function call.
-@Returns: a new #GHashTable.
+@hash_func: 
+@key_compare_func: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GHashFunc ##### -->
 <para>
-Specifies the type of the hash function which is passed to
-g_hash_table_new() when a #GHashTable is created.
-</para>
-<para>
-The function is passed a key and should return a guint hash value.
-The functions g_direct_hash(), g_int_hash() and g_str_hash() provide
-hash functions which can be used when the key is a #gpointer, #gint, and 
-#gchar* respectively.
-</para>
-<para>
-FIXME: Need more here.
-The hash values should be evenly distributed over a fairly large range?
-The modulus is taken with the hash table size (a prime number)
-to find the 'bucket' to place each key into.
-The function should also be very fast, since it is called for each key
-lookup.
+
 </para>
 
-@key: a key.
-@Returns: the hash value corresponding to the key.
+@key: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GCompareFunc ##### -->
 <para>
-Specifies the type of a comparison function used to compare two values.
-The value which should be returned depends on the context in which the
-#GCompareFunc is used.
-</para>
-<para>
-In g_hash_table_new(), g_cache_new(), and g_relation_index() the function
-should return TRUE if the two parameters are equal, or FALSE if they are not.
-</para>
-<para>
-In g_list_find_custom() and g_slist_find_custom() the function should return
-0 if the two parameters are equal.
-</para>
-<para>
-In g_list_insert_sorted(), g_list_sort(), g_slist_insert_sorted(),
-g_slist_sort() and g_tree_new()  the function should return a negative integer
-if the first value comes before the second, 0 if they are equal, or a positive
-integer if the first value comes after the second.
+
 </para>
 
-@a: a value.
-@b: a value to compare with.
-@Returns: TRUE if the two values are equivalent.
+@a: 
+@b: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hash_table_insert ##### -->
 <para>
-Inserts a new key and value into a #GHashTable.
-If the key already exists in the #GHashTable its current value is replaced
-with the new value.
-</para>
-<note>
-<para>
-If the keys or values use dynamically allocated memory, then you should
-first check if the key already exists in the GHashTable. If it does,
-you should free the existing key and/or value before inserting the
-new key and value.
+
 </para>
-</note>
 
-@hash_table: a #GHashTable.
-@key: a key to insert.
-@value: the value to associate with the key.
+@hash_table: 
+@key: 
+@value: 
 
 
 <!-- ##### FUNCTION g_hash_table_size ##### -->
 <para>
-Returns the number of key/value pairs in a #GHashTable.
+
 </para>
 
-@hash_table: a #GHashTable.
-@Returns: the number of key/value pairs in the #GHashTable.
+@hash_table: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hash_table_lookup ##### -->
 <para>
-Looks up a key in the #GHashTable, returning the associated value or NULL
-if the key is not found.
+
 </para>
 
-@hash_table: a #GHashTable.
-@key: the key to look up.
-@Returns: the associated value, or NULL if the key is not found.
+@hash_table: 
+@key: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hash_table_lookup_extended ##### -->
 <para>
-Looks up a key in the #GHashTable, returning the original key and the
-associated value and a gboolean which is TRUE if the key was found.
-This is useful if you need to free the memory allocated for the
-original key, for example before calling g_hash_table_remove().
+
 </para>
 
-@hash_table: a #GHashTable.
-@lookup_key: the key to look up.
-@orig_key: returns the original key.
-@value: returns the value associated with the key.
-@Returns: TRUE if the key was found in the #GHashTable.
+@hash_table: 
+@lookup_key: 
+@orig_key: 
+@value: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hash_table_foreach ##### -->
 <para>
-Calls the given function for each of the key/value pairs in the #GHashTable.
-The function is passed the key and value of each pair, and the given
-@user_data parameter.
+
 </para>
 
-@hash_table: a #GHashTable.
-@func: the function to call for each key/value pair.
-@user_data: use data to pass to the function.
+@hash_table: 
+@func: 
+@user_data: 
 
 
 <!-- ##### USER_FUNCTION GHFunc ##### -->
 <para>
-Specifies the type of the function passed to g_hash_table_foreach().
-It is called with each key/value pair, together with the @user_data parameter
-which is passed to g_hash_table_foreach().
+
 </para>
 
-@key: a key.
-@value: the value corresponding to the key.
-@user_data: user data passed to g_hash_table_foreach().
+@key: 
+@value: 
+@user_data: 
 
 
 <!-- ##### FUNCTION g_hash_table_remove ##### -->
 <para>
-Removes a key and its associated value from a #GHashTable.
-</para>
-<note>
-<para>
-As with g_hash_table_insert(), you should make sure that any dynamically
-allocated values are freed yourself.
+
 </para>
-</note>
 
-@hash_table: a #GHashTable.
-@key: the key to remove.
+@hash_table: 
+@key: 
 
 
 <!-- ##### FUNCTION g_hash_table_foreach_remove ##### -->
 <para>
-Calls the given function for each key/value pair in the #GHashTable.
-If the function returns TRUE, then the key/value pair is removed from the
-#GHashTable.
+
 </para>
 
-@hash_table: a #GHashTable.
-@func: the function to call for each key/value pair.
-@user_data: user data to pass to the function.
-@Returns: the number of key/value paris removed.
+@hash_table: 
+@func: 
+@user_data: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GHRFunc ##### -->
 <para>
-Specifies the type of the function passed to g_hash_table_foreach_remove().
-It is called with each key/value pair, together with the @user_data parameter
-passed to g_hash_table_foreach_remove().
-It should return TRUE if the key/value pair should be removed from the
-#GHashTable.
+
 </para>
 
-@key: a key.
-@value: the value associated with the key.
-@user_data: user data passed to g_hash_table_remove().
-@Returns: TRUE if the key/value pair should be removed from the #GHashTable.
+@key: 
+@value: 
+@user_data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hash_table_freeze ##### -->
 <para>
-Disable resizing of a #GHashTable.
-</para>
-<para>
-This should be used if you need to make a lot of changes to a #GHashTable
-at once, as it reduces the number of times that the #GHashTable is rebuilt.
-You should call g_hash_table_thaw() after updating the #GHashTable to
-enable resizing again.
+
 </para>
 
-@hash_table: a #GHashTable.
+@hash_table: 
 
 
 <!-- ##### FUNCTION g_hash_table_thaw ##### -->
 <para>
-Enables resizing of a #GHashTable.
+
 </para>
 
-@hash_table: a #GHashTable.
+@hash_table: 
 
 
 <!-- ##### FUNCTION g_hash_table_destroy ##### -->
 <para>
-Destroys the #GHashTable.
-</para>
-<note>
-<para>
-If keys and/or values are dynamically allocated, you should free them
-first.
+
 </para>
-</note>
 
-@hash_table: a #GHashTable.
+@hash_table: 
 
 
 <!-- ##### FUNCTION g_direct_equal ##### -->
 <para>
-Compares two #gpointer arguments and returns TRUE if they are equal.
-It can be passed to g_hash_table_new() as the @key_compare_func
-parameter, when using pointers as keys in a #GHashTable.
+
 </para>
 
-@v: a key.
-@v2: a key to compare with @v.
-@Returns: TRUE if the two keys match.
+@v: 
+@v2: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_direct_hash ##### -->
 <para>
-Converts a gpointer to a hash value.
-It can be passed to g_hash_table_new() as the @hash_func parameter, when
-using gpointer values as keys in a #GHashTable.
+
 </para>
 
-@v: a gpointer key.
-@Returns: a hash value corresponding to the key.
+@v: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_int_equal ##### -->
 <para>
-Compares the two #gint values being pointed to and returns TRUE if they are
-equal.
-It can be passed to g_hash_table_new() as the @key_compare_func
-parameter, when using pointers to integers as keys in a #GHashTable.
+
 </para>
 
-@v: a pointer to a #gint key.
-@v2: a pointer to a #gint key to compare with @v.
-@Returns: TRUE if the two keys match.
+@v: 
+@v2: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_int_hash ##### -->
 <para>
-Converts a pointer to a #gint to a hash value.
-It can be passed to g_hash_table_new() as the @hash_func parameter, when
-using pointers to gint values as keys in a #GHashTable.
+
 </para>
 
-@v: a pointer to a #gint key.
-@Returns: a hash value corresponding to the key.
+@v: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_str_equal ##### -->
 <para>
-Compares two strings and returns TRUE if they are equal.
-It can be passed to g_hash_table_new() as the @key_compare_func
-parameter, when using strings as keys in a #GHashTable.
+
 </para>
 
-@v: a key.
-@v2: a key to compare with @v.
-@Returns: TRUE if the two keys match.
+@v: 
+@v2: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_str_hash ##### -->
 <para>
-Converts a string to a hash value.
-It can be passed to g_hash_table_new() as the @hash_func parameter, when
-using strings as keys in a #GHashTable.
+
 </para>
 
-@v: a string key.
-@Returns: a hash value corresponding to the key.
+@v: 
+@Returns: 
 
 
index 47cf06e1f8358beecf03a62794e16a0be7b1ce62..bd74101c96ff9504a0700b048df11b016f6052b4 100644 (file)
@@ -2,65 +2,23 @@
 Hook Functions
 
 <!-- ##### SECTION Short_Description ##### -->
-support for manipulating lists of hook functions.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GHookList, #GHook and their related functions provide support for
-lists of hook functions. Functions can be added and removed from the lists,
-and the list of hook functions can be invoked.
 
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GHookList ##### -->
 <para>
 
-<informaltable pgwide=1 frame="none" role="struct">
-<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
-<tbody>
-
-<row>
-<entry>#guint seq_id;</entry>
-<entry>the next free #GHook id.</entry>
-</row>
-
-<row>
-<entry>#guint hook_size;</entry>
-<entry>the size of the #GHookList elements, in bytes.</entry>
-</row>
-
-<row>
-<entry>#guint is_setup : 1;</entry>
-<entry>1 if the #GHookList has been initialized.</entry>
-</row>
-
-<row>
-<entry>#GHook *hooks;</entry>
-<entry>the first #GHook element in the list.</entry>
-</row>
-
-<row>
-<entry>#GMemChunk *hook_memchunk;</entry>
-<entry>the #GMemChunk used for allocating the #GHook elements.</entry>
-</row>
-
-<row>
-<entry>#GHookFreeFunc hook_free;</entry>
-<entry>the function to call to free a #GHook element.</entry>
-</row>
-
-<row>
-<entry>#GHookFreeFunc hook_destroy;</entry>
-<entry>the function to call to destory a #GHook element.</entry>
-</row>
-
-</tbody></tgroup></informaltable>
-
 </para>
 
 @seq_id: 
@@ -74,51 +32,6 @@ and the list of hook functions can be invoked.
 <!-- ##### STRUCT GHook ##### -->
 <para>
 
-<informaltable pgwide=1 frame="none" role="struct">
-<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
-<tbody>
-
-<row>
-<entry>#gpointer data;</entry>
-<entry>.</entry>
-</row>
-
-<row>
-<entry>#GHook *next;</entry>
-<entry>.</entry>
-</row>
-
-<row>
-<entry>#GHook *prev;</entry>
-<entry>.</entry>
-</row>
-
-<row>
-<entry>#guint ref_count;</entry>
-<entry>.</entry>
-</row>
-
-<row>
-<entry>#guint hook_id;</entry>
-<entry>.</entry>
-</row>
-
-<row>
-<entry>#guint flags;</entry>
-<entry>.</entry>
-</row>
-
-<row>
-<entry>#gpointer data;</entry>
-<entry>.</entry>
-</row>
-
-<row>
-<entry>#GDestroyNotify destroy;</entry>
-<entry>.</entry>
-</row>
-
-</tbody></tgroup></informaltable>
 </para>
 
 @data: 
@@ -184,34 +97,29 @@ and the list of hook functions can be invoked.
 
 <!-- ##### FUNCTION g_hook_list_init ##### -->
 <para>
-Initializes a #GHookList.
-This must be called before the #GHookList is used.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook_size: the size of each element in the #GHookList, typically
-sizeof (GHook).
+@hook_list: 
+@hook_size: 
 
 
 <!-- ##### FUNCTION g_hook_list_invoke ##### -->
 <para>
-Calls all of the #GHook functions in a #GHookList.
+
 </para>
 
-@hook_list: a #GHookList.
-@may_recurse: TRUE if functions which are already running (e.g. in another
-thread) can be called. If set to FALSE, these are skipped.
+@hook_list: 
+@may_recurse: 
 
 
 <!-- ##### FUNCTION g_hook_list_invoke_check ##### -->
 <para>
-Calls all of the #GHook functions in a #GHookList.
-Any function which returns TRUE is removed from the #GHookList.
+
 </para>
 
-@hook_list: a #GHookList.
-@may_recurse: TRUE if functions which are already running (e.g. in another
-thread) can be called. If set to FALSE, these are skipped.
+@hook_list: 
+@may_recurse: 
 
 
 <!-- ##### FUNCTION g_hook_list_marshal ##### -->
@@ -219,7 +127,7 @@ thread) can be called. If set to FALSE, these are skipped.
 
 </para>
 
-@hook_list: a #GHookList.
+@hook_list: 
 @may_recurse: 
 @marshaller: 
 @data: 
@@ -230,7 +138,7 @@ thread) can be called. If set to FALSE, these are skipped.
 
 </para>
 
-@hook_list: a #GHookList.
+@hook_list: 
 @may_recurse: 
 @marshaller: 
 @data: 
@@ -238,183 +146,164 @@ thread) can be called. If set to FALSE, these are skipped.
 
 <!-- ##### FUNCTION g_hook_list_clear ##### -->
 <para>
-Removes all the #GHook elements from a #GHookList.
+
 </para>
 
-@hook_list: a #GHookList.
+@hook_list: 
 
 
 <!-- ##### FUNCTION g_hook_alloc ##### -->
 <para>
-Allocates space for a #GHook and initializes it.
+
 </para>
 
-@hook_list: a #GHookList.
-@Returns: a new #GHook.
+@hook_list: 
+@Returns: 
 
 
 <!-- ##### MACRO g_hook_append ##### -->
 <para>
-Appends a #GHook onto the end of a #GHookList.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook: the #GHook to add to the end of @hook_list.
+@hook_list: 
+@hook: 
 
 
 <!-- ##### FUNCTION g_hook_prepend ##### -->
 <para>
-Prepends a #GHook on the start of a #GHookList.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook: the #GHook to add to the start of @hook_list.
+@hook_list: 
+@hook: 
 
 
 <!-- ##### FUNCTION g_hook_insert_before ##### -->
 <para>
-Inserts a #GHook into a #GHookList, before a given #GHook.
+
 </para>
 
-@hook_list: a #GHookList.
-@sibling: the #GHook to insert the new #GHook before.
-@hook: the #GHook to insert.
+@hook_list: 
+@sibling: 
+@hook: 
 
 
 <!-- ##### FUNCTION g_hook_insert_sorted ##### -->
 <para>
-Inserts a #GHook into a #GHookList, sorted by the given function.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook: the #GHook to insert.
-@func: the comparison function used to sort the #GHook elements.
+@hook_list: 
+@hook: 
+@func: 
 
 
 <!-- ##### USER_FUNCTION GHookCompareFunc ##### -->
 <para>
-Defines the type of function used to compare #GHook elements in
-g_hook_insert_sorted().
+
 </para>
 
-@new_hook: the #GHook being inserted.
-@sibling: the #GHook to compare with @new_hook.
-@Returns: a value <= 0 if @new_hook should be before @sibling.
+@new_hook: 
+@sibling: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_compare_ids ##### -->
 <para>
-Compares the ids of two #GHook elements, returning a negative value
-if the second id is greater than the first.
+
 </para>
 
-@new_hook: a #GHook.
-@sibling: a #GHook to compare with @new_hook.
-@Returns: a value <= 0 if the id of @sibling is >= the id of @new_hook.
+@new_hook: 
+@sibling: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_get ##### -->
 <para>
-Returns the #GHook with the given id, or NULL if it is not found.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook_id: a hook id.
-@Returns: the #GHook with the given id, or NULL if it is not found.
+@hook_list: 
+@hook_id: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_find ##### -->
 <para>
-Finds a #GHook in a #GHookList using the given function to test for a match.
+
 </para>
 
-@hook_list: a #GHookList.
-@need_valids: TRUE if #GHook elements which have been destroyed should be
-skipped.
-@func: the function to call for each #GHook, which should return TRUE when
-the #GHook has been found.
-@data: the data passed to @func.
-@Returns: the found #GHook or NULL if no matching #GHook is found.
+@hook_list: 
+@need_valids: 
+@func: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_find_data ##### -->
 <para>
-Finds a #GHook in a #GHookList with the given data.
+
 </para>
 
-@hook_list: a #GHookList.
-@need_valids: TRUE if #GHook elements which have been destroyed should be
-skipped.
-@data: the data to find.
-@Returns: the #GHook with the given @data or NULL if no matching
-#GHook is found.
+@hook_list: 
+@need_valids: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_find_func ##### -->
 <para>
-Finds a #GHook in a #GHookList with the given function.
+
 </para>
 
-@hook_list: a #GHookList.
-@need_valids: TRUE if #GHook elements which have been destroyed should be
-skipped.
-@func: the function to find.
-@Returns: the #GHook with the given @func or NULL if no matching
-#GHook is found.
+@hook_list: 
+@need_valids: 
+@func: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GHookFindFunc ##### -->
 <para>
-Defines the type of the function passed to g_hooK_find_func().
+
 </para>
 
-@hook: a #GHook.
-@data: user data passed to g_hook_find_func().
-@Returns: TRUE if the required #GHook has been found.
+@hook: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_find_func_data ##### -->
 <para>
-Finds a #GHook in a #GHookList with the given function and data.
+
 </para>
 
-@hook_list: a #GHookList.
-@need_valids: TRUE if #GHook elements which have been destroyed should be
-skipped.
-@func: the function to find.
-@data: the data to find.
-@Returns: the #GHook with the given @func and @data or NULL if no matching
-#GHook is found.
+@hook_list: 
+@need_valids: 
+@func: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_first_valid ##### -->
 <para>
-Returns the first #GHook in a #GHookList which has not been destroyed.
-The reference count for the #GHook is incremented, so you must call
-g_hook_unref() to restore it when no longer needed. (Or call
-g_hook_next_valid() if you are stepping through the #GHookList.)
+
 </para>
 
-@hook_list: a #GHookList.
-@may_be_in_call: TRUE if hooks which are currently running (e.g. in another
-thread) are considered valid. If set to FALSE, these are skipped.
-@Returns: the first valid #GHook, or NULL if none are valid.
+@hook_list: 
+@may_be_in_call: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_next_valid ##### -->
 <para>
-Returns the next #GHook in a #GHookList which has not been destroyed.
-The reference count for the #GHook is incremented, so you must call
-g_hook_unref() to restore it when no longer needed. (Or continue to call
-g_hook_next_valid() until NULL is returned.)
 
 </para>
 
-@hook_list: a #GHookList.
-@hook: the current #GHook.
-@may_be_in_call: TRUE if hooks which are currently running (e.g. in another
-thread) are considered valid. If set to FALSE, these are skipped.
-@Returns: the next valid #GHook, or NULL if none are valid.
+@hook_list: 
+@hook: 
+@may_be_in_call: 
+@Returns: 
 
 
 <!-- ##### ENUM GHookFlagMask ##### -->
@@ -435,90 +324,79 @@ thread) are considered valid. If set to FALSE, these are skipped.
 
 <!-- ##### MACRO G_HOOK_IS_VALID ##### -->
 <para>
-Returns TRUE if the #GHook is valid, i.e. it is in a #GHookList, it is active
-and it has not been destroyed.
+
 </para>
 
-@hook: a #GHook.
-@Returns: TRUE if the #GHook is valid.
+@hook: 
 
 
 <!-- ##### MACRO G_HOOK_ACTIVE ##### -->
 <para>
-Returns TRUE if the #GHook is active, which is normally TRUE until the #GHook
-is destroyed.
+
 </para>
 
-@hook: a #GHook.
-@Returns: TRUE if the #GHook is active.
+@hook: 
 
 
 <!-- ##### MACRO G_HOOK_IN_CALL ##### -->
 <para>
-Returns TRUE if the #GHook function is currently executing.
+
 </para>
 
-@hook: a #GHook.
-@Returns: TRUE if the #GHook function is currently executing.
+@hook: 
 
 
 <!-- ##### MACRO G_HOOK_IS_UNLINKED ##### -->
 <para>
-Returns TRUE if the #GHook is not in a #GHookList.
 
 </para>
 
-@hook: a #GHook.
-@Returns: TRUE if the #GHook is not in a #GHookList.
+@hook: 
 
 
 <!-- ##### FUNCTION g_hook_ref ##### -->
 <para>
-Increments the reference count for a #GHook.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook: the #GHook to increment the reference count of.
+@hook_list: 
+@hook: 
 
 
 <!-- ##### FUNCTION g_hook_unref ##### -->
 <para>
-Decrements the reference count of a #GHook.
-If the reference count falls to 0, the #GHook is removed from the #GHookList
-and g_hook_free() is called to free it.
+
 </para>
 
-@hook_list: a #GHookList.
+@hook_list: 
 @hook: 
 
 
 <!-- ##### FUNCTION g_hook_free ##### -->
 <para>
-Calls the #GHookList @hook_free function if it exists, and frees the memory
-allocated for the #GHook.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook: the #GHook to free.
+@hook_list: 
+@hook: 
 
 
 <!-- ##### FUNCTION g_hook_destroy ##### -->
 <para>
-Destroys a #GHook, given its ID.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook_id: a hook ID.
-@Returns: TRUE if the #GHook was found in the #GHookList and destroyed.
+@hook_list: 
+@hook_id: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_hook_destroy_link ##### -->
 <para>
-Removes one #GHook from a #GHookList, calling the @hook_destroy function in
-the #GHookList, and the @destroy function of the #GHook, if they exist.
+
 </para>
 
-@hook_list: a #GHookList.
-@hook: the #GHook to remove.
+@hook_list: 
+@hook: 
 
 
index 1c44eb2ce069e1f95957c62efe92b245cdaa6e9a..a9365443cf2d389fe9da0063f0637dfbe0407989 100644 (file)
@@ -2,68 +2,23 @@
 IO Channels
 
 <!-- ##### SECTION Short_Description ##### -->
-portable support for using files, pipes and sockets.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GIOChannel data type aims to provide a portable method for using file
-descriptors, pipes, and sockets, and integrating them into the
-<link linkend="glib-The-Main-Event-Loop">main event loop</link>.
-Currently full support is available on Unix platforms, though support for
-Windows is only partially complete.
-</para>
-<para>
-To create a new #GIOChannel on Unix systems use g_io_channel_unix_new().
-This works for plain file descriptors, pipes and sockets.
-</para>
-<para>
-Once a #GIOChannel has been created, it can be used in a generic manner
-with the functions g_io_channel_read(), g_io_channel_write(),
-g_io_channel_seek(), and g_io_channel_close().
-</para>
-<para>
-To add a #GIOChannel to the 
-<link linkend="glib-The-Main-Event-Loop">main event loop</link>
-use g_io_add_watch() or g_io_add_watch_full(). Here you specify which events
-you are interested in on the #GIOChannel, and provide a function to be
-called whenever these events occur.
-</para>
-<para>
-#GIOChannel instances are created with an initial reference count of 1.
-g_io_channel_ref() and g_io_channel_unref() can be used to increment or
-decrement the reference count respectively. When the reference count falls
-to 0, the #GIOChannel is freed. (Though it isn't closed automatically.)
-Using g_io_add_watch() or g_io_add_watch_full() increments a channel's
-reference count.
-</para>
-<para>
-GTK+ contains the convenience function gtk_input_add_full()
-which creates a #GIOChannel from a file descriptor and adds it to the
-<link linkend="glib-The-Main-Event-Loop">main event loop</link>.
-The event source can later be removed with gtk_input_remove().
-Similar functions can also be found in GDK.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
-<variablelist>
-
-<varlistentry>
-<term>gtk_input_add_full(), gtk_input_remove(), gdk_input_add(),
-gdk_input_add_full(), gdk_input_remove()</term>
-<listitem><para>
-Convenience functions for creating #GIOChannel instances and adding them to the
-<link linkend="glib-The-Main-Event-Loop">main event loop</link>.
-</para></listitem>
-</varlistentry>
-
-</variablelist>
+
 </para>
 
+
 <!-- ##### STRUCT GIOChannel ##### -->
 <para>
-A data structure representing an IO Channel. The fields should be considered
-private and should only be accessed with the following functions.
+
 </para>
 
 @channel_flags: 
@@ -72,47 +27,40 @@ private and should only be accessed with the following functions.
 
 <!-- ##### FUNCTION g_io_channel_unix_new ##### -->
 <para>
-Creates a new #GIOChannel given a file descriptor.
-On Unix systems this works for plain files, pipes, and sockets.
-</para>
-<para>
-The returned #GIOChannel has a reference count of 1.
+
 </para>
 
-@fd: a file descriptor.
-@Returns: a new #GIOChannel.
+@fd: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_io_channel_unix_get_fd ##### -->
 <para>
-Returns the file descriptor of the Unix #GIOChannel.
+
 </para>
 
-@channel: a #GIOChannel, created with g_io_channel_unix_new().
-@Returns: the file descriptor of the #GIOChannel.
+@channel: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_io_channel_init ##### -->
 <para>
-Initializes a #GIOChannel struct. This is called by each of the above functions
-when creating a #GIOChannel, and so is not often needed by the application
-programmer (unless you are creating a new type of #GIOChannel).
+
 </para>
 
-@channel: a #GIOChannel.
+@channel: 
 
 
 <!-- ##### FUNCTION g_io_channel_read ##### -->
 <para>
-Reads data from a #GIOChannel.
+
 </para>
 
-@channel: a #GIOChannel.
-@buf: a buffer to read the data into (which should be at least count bytes
-long).
-@count: the number of bytes to read from the #GIOChannel.
-@bytes_read: returns the number of bytes actually read.
-@Returns: %G_IO_ERROR_NONE if the operation was successful.
+@channel: 
+@buf: 
+@count: 
+@bytes_read: 
+@Returns: 
 
 
 <!-- ##### ENUM GIOError ##### -->
@@ -127,56 +75,29 @@ long).
 
 <!-- ##### FUNCTION g_io_channel_write ##### -->
 <para>
-Writes data to a #GIOChannel.
+
 </para>
 
-@channel: a #GIOChannel.
-@buf: the buffer containing the data to write.
-@count: the number of bytes to write.
-@bytes_written: the number of bytes actually written.
-@Returns: %G_IO_ERROR_NONE if the operation was successful.
+@channel: 
+@buf: 
+@count: 
+@bytes_written: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_io_channel_seek ##### -->
 <para>
-Sets the current position in the #GIOChannel, similar to the standard system
-call <function>fseek()</function>.
+
 </para>
 
-@channel: a #GIOChannel.
-@offset: an offset, in bytes, which is added to the position specified by
-@type.
-@type: the position in the file, which can be %G_SEEK_CUR (the current
-position), %G_SEEK_SET (the start of the file), or %G_SEEK_END (the end of the
-file).
-@Returns: %G_IO_ERROR_NONE if the operation was successful.
+@channel: 
+@offset: 
+@type: 
+@Returns: 
 
 
 <!-- ##### ENUM GSeekType ##### -->
 <para>
-An enumeration specifying the base position for a g_io_channel_seek()
-operation.
-
-<informaltable pgwide=1 frame="none" role="enum">
-<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
-<tbody>
-
-<row>
-<entry>G_SEEK_CUR</entry>
-<entry>the current position in the file.</entry>
-</row>
-
-<row>
-<entry>G_SEEK_SET</entry>
-<entry>the start of the file.</entry>
-</row>
-
-<row>
-<entry>G_SEEK_END</entry>
-<entry>the end of the file.</entry>
-</row>
-
-</tbody></tgroup></informaltable>
 
 </para>
 
@@ -186,100 +107,56 @@ operation.
 
 <!-- ##### FUNCTION g_io_channel_close ##### -->
 <para>
-Closes a #GIOChannel.
-The #GIOChannel will be freed when its reference count drops to 0.
+
 </para>
 
-@channel: a #GIOChannel.
+@channel: 
 
 
 <!-- ##### FUNCTION g_io_channel_ref ##### -->
 <para>
-Increments the reference count of a #GIOChannel.
+
 </para>
 
-@channel: a #GIOChannel.
+@channel: 
 
 
 <!-- ##### FUNCTION g_io_channel_unref ##### -->
 <para>
-Decrements the reference count of a #GIOChannel.
+
 </para>
 
-@channel: a #GIOChannel.
+@channel: 
 
 
 <!-- ##### FUNCTION g_io_add_watch ##### -->
 <para>
-Adds the #GIOChannel into the
-<link linkend="glib-The-Main-Event-Loop">main event loop</link>
-with the default priority.
+
 </para>
 
-@channel: a #GIOChannel.
-@condition: the condition to watch for.
-@func: the function to call when the condition is satisfied.
-@user_data: user data to pass to @func.
-@Returns: the event source id.
+@channel: 
+@condition: 
+@func: 
+@user_data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_io_add_watch_full ##### -->
 <para>
-Adds the #GIOChannel into the
-<link linkend="glib-The-Main-Event-Loop">main event loop</link>
-with the given priority.
+
 </para>
 
-@channel: a #GIOChannel.
-@priority: the priority of the #GIOChannel source.
-@condition: the condition to watch for.
-@func: the function to call when the condition is satisfied.
-@user_data: user data to pass to @func.
-@notify: the function to call when the source is removed.
-@Returns: the event source id.
+@channel: 
+@priority: 
+@condition: 
+@func: 
+@user_data: 
+@notify: 
+@Returns: 
 
 
 <!-- ##### ENUM GIOCondition ##### -->
 <para>
-A bitwise combination representing a condition to watch for on an event
-source.
-
-<informaltable pgwide=1 frame="none" role="enum">
-<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
-<tbody>
-
-<row>
-<entry>G_IO_IN</entry>
-<entry>There is data to read.</entry>
-</row>
-
-<row>
-<entry>G_IO_OUT</entry>
-<entry>Data can be written (without blocking).</entry>
-</row>
-
-<row>
-<entry>G_IO_PRI</entry>
-<entry>There is urgent data to read.</entry>
-</row>
-
-<row>
-<entry>G_IO_ERR</entry>
-<entry>Error condition.</entry>
-</row>
-
-<row>
-<entry>G_IO_HUP</entry>
-<entry>Hung up (the connection has been broken, usually for pipes and
-sockets).</entry>
-</row>
-
-<row>
-<entry>G_IO_NVAL</entry>
-<entry>Invalid request. The file descriptor is not open.</entry>
-</row>
-
-</tbody></tgroup></informaltable>
 
 </para>
 
@@ -292,22 +169,18 @@ sockets).</entry>
 
 <!-- ##### USER_FUNCTION GIOFunc ##### -->
 <para>
-Specifies the type of function passed to g_io_add_watch() or
-g_io_add_watch_full(), which is called when the requested condition on a
-#GIOChannel is satisfied.
+
 </para>
 
-@source: the #GIOChannel event source.
-@condition: the condition which has been satisfied.
-@data: user data set in g_io_add_watch() or g_io_add_watch_full().
-@Returns: the function should return FALSE if the event source should be
-removed.
+@source: 
+@condition: 
+@data: 
+@Returns: 
 
 
 <!-- ##### STRUCT GIOFuncs ##### -->
 <para>
-A table of functions used to handle different types of #GIOChannel in a
-generic way.
+
 </para>
 
 @io_read: 
index ec68926de4c5a2d6b309d55380aa1b8a011bce23..57a65293c03565ce9ff19d9d11ccfc8f88f0360b 100644 (file)
 Limits of Basic Types
 
 <!-- ##### SECTION Short_Description ##### -->
-portable method of determining the limits of the standard types.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These macros provide a portable method to determine the limits of some of
-the standard integer and floating point types.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO G_MININT ##### -->
 <para>
-The minimum value which can be held in a #gint.
+
 </para>
 
 
 
 <!-- ##### MACRO G_MAXINT ##### -->
 <para>
-The maximum value which can be held in a #gint.
+
+</para>
+
+
+
+<!-- ##### MACRO G_MAXUINT ##### -->
+<para>
+
 </para>
 
 
 
 <!-- ##### MACRO G_MINSHORT ##### -->
 <para>
-The minimum value which can be held in a #gshort.
+
 </para>
 
 
 
 <!-- ##### MACRO G_MAXSHORT ##### -->
 <para>
-The maximum value which can be held in a #gshort.
+
+</para>
+
+
+
+<!-- ##### MACRO G_MAXUSHORT ##### -->
+<para>
+
 </para>
 
 
 
 <!-- ##### MACRO G_MINLONG ##### -->
 <para>
-The minimum value which can be held in a #glong.
+
 </para>
 
 
 
 <!-- ##### MACRO G_MAXLONG ##### -->
 <para>
-The maximum value which can be held in a #glong.
+
+</para>
+
+
+
+<!-- ##### MACRO G_MAXULONG ##### -->
+<para>
+
 </para>
 
 
 
 <!-- ##### MACRO G_MINFLOAT ##### -->
 <para>
-The minimum value which can be held in a #gfloat.
+
 </para>
 
 
 
 <!-- ##### MACRO G_MAXFLOAT ##### -->
 <para>
-The maximum value which can be held in a #gfloat.
+
 </para>
 
 
 
 <!-- ##### MACRO G_MINDOUBLE ##### -->
 <para>
-The minimum value which can be held in a #gdouble.
+
 </para>
 
 
 
 <!-- ##### MACRO G_MAXDOUBLE ##### -->
 <para>
-The maximum value which can be held in a #gdouble.
+
 </para>
 
 
index 995379c8ca3b81adc6ed862e0e11b39c5591b2ce..1b3a9188f3c9381c6c03aa756919ceb3537d681f 100644 (file)
@@ -2,76 +2,23 @@
 Doubly-Linked Lists
 
 <!-- ##### SECTION Short_Description ##### -->
-linked lists containing integer values or pointers to data, with the ability
-to iterate over the list in both directions.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GList structure and its associated functions provide a standard
-doubly-linked list data structure.
-</para>
-<para>
-Each element in the list contains a piece of data, together with pointers
-which link to the previous and next elements in the list.
-Using these pointers it is possible to move through the list in both
-directions (unlike the
-<link linkend="glib-Singly-Linked-lists">Singly-Linked Lists</link>
-which only allows movement through the list in the forward direction).
-</para>
-<para>
-The data contained in each element can be either integer values, by using one
-of the
-<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>,
-or simply pointers to any type of data.
-</para>
-<para>
-List elements are allocated in blocks using a #GListAllocator, which is
-more efficient than allocating elements individually.
-</para>
-<para>
-Note that most of the #GList functions expect to be passed a pointer to
-the first element in the list. The functions which insert elements return
-the new start of the list, which may have changed.
-</para>
-<para>
-There is no function to create a #GList. NULL is considered to be the empty
-list so you simply set a #GList* to NULL.
-</para>
-<para>
-To add elements, use g_list_append(), g_list_prepend(), g_list_insert()
-and g_list_insert_sorted().
-</para>
-<para>
-To remove elements, use g_list_remove().
-</para>
-<para>
-To find elements in the list use g_list_first(), g_list_last(), g_list_next(),
-g_list_previous(), g_list_nth(), g_list_nth_data(), g_list_find() and
-g_list_find_custom().
-</para>
-<para>
-To find the index of an element use g_list_position() and g_list_index().
-</para>
-<para>
-To call a function for each element in the list use g_list_foreach().
-</para>
-<para>
-To free the entire list, use g_list_free().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GList ##### -->
 <para>
-The #GList struct is used for each element in a doubly-linked list.
-The <structfield>data</structfield> field holds the element's data, which can
-be a pointer to any kind of data, or any integer value using the
-<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>.
-The <structfield>next</structfield> and <structfield>prev</structfield>
-pointers are the links to the next and previous elements in the list.
+
 </para>
 
 @data: 
@@ -80,336 +27,273 @@ pointers are the links to the next and previous elements in the list.
 
 <!-- ##### FUNCTION g_list_append ##### -->
 <para>
-Adds a new element on to the end of the list.
-</para>
-<note>
-<para>
-The return value is the new start of the list, which may have changed, so
-make sure you store the new value.
-</para>
-</note>
-<informalexample><programlisting>
-  /* Notice that these are initialized to the empty list. */
-  GList *list = NULL, *number_list = NULL;
-
-  /* This is a list of strings. */
-  list = g_list_append (list, "first");
-  list = g_list_append (list, "second");
 
-  /* This is a list of integers. */
-  number_list = g_list_append (number_list, GINT_TO_POINTER (27));
-  number_list = g_list_append (number_list, GINT_TO_POINTER (14));
-</programlisting></informalexample>
+</para>
 
-@list: a pointer to a #GList.
-@data: the data for the new element.
-@Returns: the new start of the #GList.
+@list: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_prepend ##### -->
 <para>
-Adds a new element on to the start of the list.
-</para>
-<note>
-<para>
-The return value is the new start of the list, which may have changed, so
-make sure you store the new value.
+
 </para>
-</note>
-<informalexample><programlisting>
-  /* Notice that it is initialized to the empty list. */
-  GList *list = NULL;
-  list = g_list_prepend (list, "last");
-  list = g_list_prepend (list, "first");
-</programlisting></informalexample>
 
-@list: a pointer to a #GList.
-@data: the data for the new element.
-@Returns: the new start of the #GList.
+@list: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_insert ##### -->
 <para>
-Inserts a new element into the list at the given position.
+
 </para>
 
-@list: a pointer to a #GList.
-@data: the data for the new element.
-@position: the position to insert the element. If this is negative, or is
-larger than the number of elements in the list, the new element is added on
-to the end of the list.
-@Returns: the new start of the #GList.
+@list: 
+@data: 
+@position: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_insert_sorted ##### -->
 <para>
-Inserts a new element into the list, using the given comparison function
-to determine its position.
+
 </para>
 
-@list: a pointer to a #GList.
-@data: the data for the new element.
-@func: the function to compare elements in the list. It should return a
-number > 0 if the first parameter comes after the second parameter in
-the sort order.
-@Returns: the new start of the #GList.
+@list: 
+@data: 
+@func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_remove ##### -->
 <para>
-Removes an element from a #GList.
-If two elements contain the same data, only the first is removed.
-If none of the elements contain the data, the #GList is unchanged.
+
 </para>
 
-@list: a #GList.
-@data: the data of the element to remove.
-@Returns: the new start of the #GList.
+@list: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_remove_link ##### -->
 <para>
-Removes an element from a #GList, without freeing the element.
-The removed element's prev and next links are set to NULL, so that it becomes a
-self-contained list with one element.
+
 </para>
 
-@list: a #GList.
-@llink: an element in the #GList.
-@Returns: the new start of the #GList, without the element.
+@list: 
+@llink: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_list_free ##### -->
+<!-- ##### FUNCTION g_list_delete_link ##### -->
 <para>
-Frees all of the memory used by a #GList.
-The freed elements are added to the #GListAllocator free list.
+
 </para>
-<note>
+
+@list: 
+@link: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_list_free ##### -->
 <para>
-If list elements contain dynamically-allocated memory, they should be freed
-first.
+
 </para>
-</note>
 
 @list: 
 
 
 <!-- ##### FUNCTION g_list_alloc ##### -->
 <para>
-Allocates space for one #GList element.
-It is called by g_list_append(), g_list_prepend(), g_list_insert() and
-g_list_insert_sorted() and so is rarely used on its own.
+
 </para>
 
-@Returns: a pointer to the newly-allocated #GList element.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_free_1 ##### -->
 <para>
-Frees one #GList element.
-It is usually used after g_list_remove_link().
+
 </para>
 
-@list: a #GList element.
+@list: 
 
 
 <!-- ##### FUNCTION g_list_length ##### -->
 <para>
-Gets the number of elements in a #GList.
+
 </para>
 
-@list: a #GList.
-@Returns: the number of elements in the #GList.
+@list: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_copy ##### -->
 <para>
-Copies a #GList.
-</para>
-<para>
-Note that this is a "shallow" copy. If the list elements consist of pointers
-to data, the pointers are copied but the actual data isn't.
+
 </para>
 
-@list: a #GList.
-@Returns: a copy of @list.
+@list: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_reverse ##### -->
 <para>
-Reverses a #GList.
-It simply switches the next and prev pointers of each element.
+
 </para>
 
-@list: a #GList.
-@Returns: the start of the reversed #GList.
+@list: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_sort ##### -->
 <para>
-Sorts a #GList using the given comparison function.
+
 </para>
 
-@list: a #GList.
-@compare_func: the comparison function used to sort the #GList. This function
-is passed 2 elements of the #GList and should return 0 if they are equal,
-a negative value if the first element comes before the second, or a positive
-value if the first element comes after the second.
-@Returns: the start of the sorted #GList.
+@list: 
+@compare_func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_concat ##### -->
 <para>
-Adds the second #GList onto the end of the first #GList.
-Note that the elements of the second #GList are not copied.
-They are used directly.
+
 </para>
 
-@list1: a #GList.
-@list2: the #GList to add to the end of the first #GList.
-@Returns: the start of the new #GList.
+@list1: 
+@list2: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_foreach ##### -->
 <para>
-Calls a function for each element of a #GList.
+
 </para>
 
-@list: a #GList.
-@func: the function to call with each element's data.
-@user_data: user data to pass to the function.
+@list: 
+@func: 
+@user_data: 
 
 
 <!-- ##### USER_FUNCTION GFunc ##### -->
 <para>
-Specifies the type of functions passed to g_list_foreach() and
-g_slist_foreach().
+
 </para>
 
-@data: the element's data.
-@user_data: user data passed to g_list_foreach() or g_slist_foreach().
+@data: 
+@user_data: 
 
 
 <!-- ##### FUNCTION g_list_first ##### -->
 <para>
-Gets the first element in a #GList.
+
 </para>
 
-@list: a #GList.
-@Returns: the first element in a #GList, or NULL if the #GList has no elements.
+@list: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_last ##### -->
 <para>
-Gets the last element in a #GList.
+
 </para>
 
-@list: a #GList.
-@Returns: the last element in the #GList, or NULL if the #GList has no
-elements.
+@list: 
+@Returns: 
 
 
 <!-- ##### MACRO g_list_previous ##### -->
 <para>
-A convenience macro to gets the previous element in a #GList.
+
 </para>
 
-@list: an element in a #GList.
-@Returns: the previous element, or NULL if there are no previous elements.
+@list: 
 
 
 <!-- ##### MACRO g_list_next ##### -->
 <para>
-A convenience macro to gets the next element in a #GList.
+
 </para>
 
-@list: an element in a #GList.
-@Returns: the next element, or NULL if there are no more elements.
+@list: 
 
 
 <!-- ##### FUNCTION g_list_nth ##### -->
 <para>
-Gets the element at the given position in a #GList.
+
 </para>
 
-@list: a #GList.
-@n: the position of the element, counting from 0.
-@Returns: the element, or NULL if the position is off the end of the #GList.
+@list: 
+@n: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_nth_data ##### -->
 <para>
-Gets the data of the element at the given position.
+
 </para>
 
-@list: a #GList.
-@n: the position of the element.
-@Returns: the element's data, or NULL if the position is off the end of the
-#GList.
+@list: 
+@n: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_find ##### -->
 <para>
-Finds the element in a #GList which contains the given data.
+
 </para>
 
-@list: a #GList.
-@data: the element data to find.
-@Returns: the found #GList element, or NULL if it is not found.
+@list: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_find_custom ##### -->
 <para>
-Finds an element in a #GList, using a supplied function to find the desired
-element.
-It iterates over the list, calling the given function which should return 0
-when the desired element is found.
-The function takes two #gconstpointer arguments, the #GList element's data
-and the given user data.
+
 </para>
 
-@list: a #GList.
-@data: user data passed to the function.
-@func: the function to call for each element. It should return 0 when the
-desired element is found.
-@Returns: the found #GList element, or NULL if it is not found.
+@list: 
+@data: 
+@func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_position ##### -->
 <para>
-Gets the position of the given element in the #GList (starting from 0).
+
 </para>
 
-@list: a #GList.
-@llink: an element in the #GList.
-@Returns: the position of the element in the #GList, or -1 if the element is
-not found.
+@list: 
+@llink: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_list_index ##### -->
 <para>
-Gets the position of the element containing the given data (starting from 0).
+
 </para>
 
-@list: a #GList.
-@data: the data to find.
-@Returns: the index of the element containing the data, or -1 if the data
-is not found.
+@list: 
+@data: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_list_pop_allocator ##### -->
+<!-- ##### FUNCTION g_list_push_allocator ##### -->
 <para>
-Restores the previous #GAllocator, used when allocating #GList elements.
+
 </para>
 
+@allocator: 
 
 
-<!-- ##### FUNCTION g_list_push_allocator ##### -->
+<!-- ##### FUNCTION g_list_pop_allocator ##### -->
 <para>
-Sets the allocator to use to allocate #GList elements.
-Use g_list_pop_allocator() to restore the previous allocator.
+
 </para>
 
-@allocator: the #GAllocator to use when allocating #GList elements.
 
 
index 61f9bb9e4a832b35b459d298a95af959063b98fa..6467f7e38848d298839b1329c4f655fbaab02ebd 100644 (file)
@@ -2,76 +2,23 @@
 Singly-Linked Lists
 
 <!-- ##### SECTION Short_Description ##### -->
-linked lists containing integer values or pointers to data, limited to
-iterating over the list in one direction.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GSList structure and its associated functions provide a standard
-singly-linked list data structure.
-</para>
-<para>
-Each element in the list contains a piece of data, together with a pointer
-which links to the next element in the list.
-Using this pointer it is possible to move through the list in one
-direction only (unlike the
-<link linkend="glib-Doubly-Linked-lists">Doubly-Linked Lists</link>
-which allow movement in both directions).
-</para>
-<para>
-The data contained in each element can be either integer values, by using one
-of the
-<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>,
-or simply pointers to any type of data.
-</para>
-<para>
-List elements are allocated in blocks using a #GListAllocator, which is
-more efficient than allocating elements individually.
-</para>
-<para>
-Note that most of the #GSList functions expect to be passed a pointer to
-the first element in the list. The functions which insert elements return
-the new start of the list, which may have changed.
-</para>
-<para>
-There is no function to create a #GSList. NULL is considered to be the empty
-list so you simply set a #GSList* to NULL.
-</para>
-<para>
-To add elements, use g_slist_append(), g_slist_prepend(), g_slist_insert()
-and g_slist_insert_sorted().
-</para>
-<para>
-To remove elements, use g_slist_remove().
-</para>
-<para>
-To find elements in the list use g_slist_last(), g_slist_next(),
-g_slist_nth(), g_slist_nth_data(), g_slist_find() and
-g_slist_find_custom().
-</para>
-<para>
-To find the index of an element use g_slist_position() and g_slist_index().
-</para>
-<para>
-To call a function for each element in the list use g_slist_foreach().
-</para>
-<para>
-To free the entire list, use g_slist_free().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GSList ##### -->
 <para>
-The #GSList struct is used for each element in the singly-linked list.
-The <structfield>data</structfield> field holds the element's data, which can
-be a pointer to any kind of data, or any integer value using the
-<link linkend="glib-Type-Conversion-Macros">Type Conversion Macros</link>.
-The <structfield>next</structfield> field contains the link to the next
-element in the list.
+
 </para>
 
 @data: 
@@ -79,300 +26,258 @@ element in the list.
 
 <!-- ##### FUNCTION g_slist_alloc ##### -->
 <para>
-Allocates space for one #GSList element.
-It is called by the g_slist_append(), g_slist_prepend(), g_slist_insert() and
-g_slist_insert_sorted() functions and so is rarely used on its own.
+
 </para>
 
-@Returns: a pointer to the newly-allocated #GSList element.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_append ##### -->
 <para>
-Adds a new element on to the end of the list.
-</para>
-<note>
-<para>
-The return value is the new start of the list, which may have changed, so
-make sure you store the new value.
-</para>
-</note>
-<informalexample><programlisting>
-  /* Notice that these are initialized to the empty list. */
-  GSList *list = NULL, *number_list = NULL;
-
-  /* This is a list of strings. */
-  list = g_slist_append (list, "first");
-  list = g_slist_append (list, "second");
 
-  /* This is a list of integers. */
-  number_list = g_slist_append (number_list, GINT_TO_POINTER (27));
-  number_list = g_slist_append (number_list, GINT_TO_POINTER (14));
-</programlisting></informalexample>
+</para>
 
-@list: a #GSList.
-@data: the data for the new element.
-@Returns: the new start of the #GSList.
+@list: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_prepend ##### -->
 <para>
-Adds a new element on to the start of the list.
+
 </para>
-<note>
+
+@list: 
+@data: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_slist_insert ##### -->
 <para>
-The return value is the new start of the list, which may have changed, so
-make sure you store the new value.
+
 </para>
-</note>
-<informalexample><programlisting>
-  /* Notice that it is initialized to the empty list. */
-  GSList *list = NULL;
-  list = g_slist_prepend (list, "last");
-  list = g_slist_prepend (list, "first");
-</programlisting></informalexample>
 
-@list: a #GSList.
-@data: the data for the new element.
-@Returns: the new start of the #GSList.
+@list: 
+@data: 
+@position: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_slist_insert ##### -->
+<!-- ##### FUNCTION g_slist_insert_before ##### -->
 <para>
-Inserts a new element into the list at the given position.
+
 </para>
 
-@list: a #GSList.
-@data: the data for the new element.
-@position: the position to insert the element. If this is negative, or is
-larger than the number of elements in the list, the new element is added on
-to the end of the list.
-@Returns: the new start of the #GSList.
+@slist: 
+@sibling: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_insert_sorted ##### -->
 <para>
-Inserts a new element into the list, using the given comparison function
-to determine its position.
+
 </para>
 
-@list: a #GSList.
-@data: the data for the new element.
-@func: the function to compare elements in the list. It should return a
-number > 0 if the first parameter comes after the second parameter in
-the sort order.
-@Returns: the new start of the #GSList.
+@list: 
+@data: 
+@func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_remove ##### -->
 <para>
-Removes an element from a #GSList.
-If two elements contain the same data, only the first is removed.
-If none of the elements contain the data, the #GSList is unchanged.
+
 </para>
 
-@list: a #GSList.
-@data: the data of the element to remove.
-@Returns: the new start of the #GSList.
+@list: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_remove_link ##### -->
 <para>
-Removes an element from a #GSList, without freeing the element.
-The removed element's next link is set to NULL, so that it becomes a
-self-contained list with one element.
+
 </para>
 
-@list: a #GSList.
-@llink: an element in the #GSList.
-@Returns: the new start of the #GSList, without the element.
+@list: 
+@link: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_slist_delete_link ##### -->
+<para>
+
+</para>
+
+@list: 
+@link: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_free ##### -->
 <para>
-Frees all of the memory used by a #GSList.
-The freed elements are added to the #GListAllocator free list.
+
 </para>
 
-@list: a #GSList.
+@list: 
 
 
 <!-- ##### FUNCTION g_slist_free_1 ##### -->
 <para>
-Frees one #GSList element.
-It is usually used after g_slist_remove_link().
+
 </para>
 
-@list: a #GSList element.
+@list: 
 
 
 <!-- ##### FUNCTION g_slist_length ##### -->
 <para>
-Gets the number of elements in a #GSList.
+
 </para>
 
-@list: a #GSList.
-@Returns: the number of elements in the #GSList.
+@list: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_copy ##### -->
 <para>
-Copies a #GSList.
-</para>
-<para>
-Note that this is a "shallow" copy. If the list elements consist of pointers
-to data, the pointers are copied but the actual data isn't.
+
 </para>
 
-@list: a #GSList.
-@Returns: a copy of @list.
+@list: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_reverse ##### -->
 <para>
-Reverses a #GSList.
+
 </para>
 
-@list: a #GSList.
-@Returns: the start of the reversed #GSList.
+@list: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_sort ##### -->
 <para>
-Sorts a #GSList using the given comparison function.
+
 </para>
 
-@list: a #GSList.
-@compare_func: the comparison function used to sort the #GSList. This function
-is passed 2 elements of the #GSList and should return 0 if they are equal,
-a negative value if the first element comes before the second, or a positive
-value if the first element comes after the second.
-@Returns: the start of the sorted #GList.
+@list: 
+@compare_func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_concat ##### -->
 <para>
-Adds the second #GSList onto the end of the first #GSList.
-Note that the elements of the second #GSList are not copied.
-They are used directly.
+
 </para>
 
-@list1: a #GSList.
-@list2: the #GSList to add to the end of the first #GSList.
-@Returns: the start of the new #GSList.
+@list1: 
+@list2: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_foreach ##### -->
 <para>
-Calls a function for each element of a #GSList.
+
 </para>
 
-@list: a #GSList.
-@func: the function to call with each element's data.
-@user_data: user data to pass to the function.
+@list: 
+@func: 
+@user_data: 
 
 
 <!-- ##### FUNCTION g_slist_last ##### -->
 <para>
-Gets the last element in a #GSList.
+
 </para>
 
-@list: a #GSList.
-@Returns: the last element in the #GSList, or NULL if the #GSList has no
-elements.
+@list: 
+@Returns: 
 
 
 <!-- ##### MACRO g_slist_next ##### -->
 <para>
-A convenience macro to gets the next element in a #GSList.
+
 </para>
 
-@slist: an element in a #GSList.
-@Returns: the next element, or NULL if there are no more elements.
+@slist: 
 
 
 <!-- ##### FUNCTION g_slist_nth ##### -->
 <para>
-Gets the element at the given position in a #GSList.
+
 </para>
 
-@list: a #GSList.
-@n: the position of the element, counting from 0.
-@Returns: the element, or NULL if the position is off the end of the #GSList.
+@list: 
+@n: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_nth_data ##### -->
 <para>
-Gets the data of the element at the given position.
+
 </para>
 
-@list: a #GSList.
-@n: the position of the element.
-@Returns: the element's data, or NULL if the position is off the end of the
-#GSList.
+@list: 
+@n: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_find ##### -->
 <para>
-Finds the element in a #GSList which contains the given data.
+
 </para>
 
-@list: a #GSList.
-@data: the element data to find.
-@Returns: the found #GSList element, or NULL if it is not found.
+@list: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_find_custom ##### -->
 <para>
-Finds an element in a #GSList, using a supplied function to find the desired
-element.
-It iterates over the list, calling the given function which should return 0
-when the desired element is found.
-The function takes two #gconstpointer arguments, the #GSList element's data
-and the given user data.
+
 </para>
 
-@list: a #GSList.
-@data: user data passed to the function.
-@func: the function to call for each element. It should return 0 when the
-desired element is found.
-@Returns: the found #GSList element, or NULL if it is not found.
+@list: 
+@data: 
+@func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_position ##### -->
 <para>
-Gets the position of the given element in the #GSList (starting from 0).
+
 </para>
 
-@list: a #GSList.
-@llink: an element in the #GSList.
-@Returns: the position of the element in the #GSList, or -1 if the element
-is not found.
+@list: 
+@llink: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_slist_index ##### -->
 <para>
-Gets the position of the element containing the given data (starting from 0).
+
 </para>
 
-@list: a #GSList.
-@data: the data to find.
-@Returns: the index of the element containing the data, or -1 if the data
-is not found.
+@list: 
+@data: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_slist_pop_allocator ##### -->
+<!-- ##### FUNCTION g_slist_push_allocator ##### -->
 <para>
-Restores the previous #GAllocator, used when allocating #GSList elements.
+
 </para>
 
+@allocator: 
 
-<!-- ##### FUNCTION g_slist_push_allocator ##### -->
+
+<!-- ##### FUNCTION g_slist_pop_allocator ##### -->
 <para>
-Sets the allocator to use to allocate #GSList elements.
-Use g_slist_pop_allocator() to restore the previous allocator.
+
 </para>
 
-@allocator: the #GAllocator to use when allocating #GSList elements.
 
 
index e597270da73fda1ea89376951b63bcb473b3e978..bf09e3488af6a64cc0e55b091836b143ddb2b55c 100644 (file)
 Standard Macros
 
 <!-- ##### SECTION Short_Description ##### -->
-commonly-used macros.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These macros provide a few commonly-used features.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO GLIB_MAJOR_VERSION ##### -->
 <para>
-The major version number of the GLib library.
+
 </para>
 
 
 
 <!-- ##### MACRO GLIB_MINOR_VERSION ##### -->
 <para>
-The minor version number of the GLib library.
+
 </para>
 
 
 
 <!-- ##### MACRO GLIB_MICRO_VERSION ##### -->
 <para>
-The micro version number of the GLib library.
+
+</para>
+
+
+
+<!-- ##### MACRO G_OS_WIN32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_OS_BEOS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_OS_UNIX ##### -->
+<para>
+
 </para>
 
 
 
 <!-- ##### MACRO GLIB_CHECK_VERSION ##### -->
 <para>
-Checks the version of the GLib library.
-It returns TRUE if the GLib library is the same or newer than the given
-version.
 
-<example>
-<title>Checking the version of the GLib library.</title>
-<programlisting>
-  if (!GLIB_CHECK_VERSION (1, 2, 0))
-    g_error ("GLib version 1.2.0 or above is needed");
-</programlisting>
-</example>
 </para>
 
-@major: the major version number.
-@minor: the minor version number.
-@micro: the micro version number.
+@major: 
+@minor: 
+@micro: 
 
 
 <!-- ##### MACRO G_DIR_SEPARATOR ##### -->
 <para>
-The directory separator character.
-This is '/' on Unix machines and '\' under Windows.
+
 </para>
 
 
 
 <!-- ##### MACRO G_DIR_SEPARATOR_S ##### -->
 <para>
-The directory separator as a string.
-This is "/" on Unix machines and "\" under Windows.
+
 </para>
 
 
 
 <!-- ##### MACRO G_SEARCHPATH_SEPARATOR ##### -->
 <para>
-The search path separator character.
-This is ':' on Unix machines and ';' under Windows.
+
 </para>
 
 
 
 <!-- ##### MACRO G_SEARCHPATH_SEPARATOR_S ##### -->
 <para>
-The search path separator as a string.
-This is ":" on Unix machines and ";" under Windows.
+
 </para>
 
 
 
 <!-- ##### MACRO TRUE ##### -->
 <para>
-Defines the TRUE value for the #gboolean type.
+
 </para>
 
 
 
 <!-- ##### MACRO FALSE ##### -->
 <para>
-Defines the FALSE value for the #gboolean type.
+
 </para>
 
 
 
 <!-- ##### MACRO NULL ##### -->
 <para>
-Defines the standard NULL pointer.
+
 </para>
 
 
 
 <!-- ##### MACRO MIN ##### -->
 <para>
-Calculates the minimum of @a and @b.
+
 </para>
 
-@a: a numeric value.
-@b: a numeric value.
-@Returns: the minimum of @a and @b.
+@a: 
+@b: 
 
 
 <!-- ##### MACRO MAX ##### -->
 <para>
-Calculates the maximum of @a and @b.
+
 </para>
 
-@a: a numeric value.
-@b: a numeric value.
-@Returns: the maximum of @a and @b.
+@a: 
+@b: 
 
 
 <!-- ##### MACRO ABS ##### -->
 <para>
-Calculates the absolute value of @a.
-The absolute value is simply the number with any negative sign taken away.
-</para>
-<para>
-For example,
-<itemizedlist>
-<listitem><para>
-ABS(-10) is 10.
-</para></listitem>
-<listitem><para>
-ABS(10) is also 10.
-</para></listitem>
-</itemizedlist>
+
 </para>
 
-@a: a numeric value.
-@Returns: the absolute value of @a.
+@a: 
 
 
 <!-- ##### MACRO CLAMP ##### -->
 <para>
-Ensures that @x is between the limits set by @low and @high.
-</para>
-<para>
-For example,
-<itemizedlist>
-<listitem><para>
-CLAMP(5, 10, 15) is 10.
-</para></listitem>
-<listitem><para>
-CLAMP(15, 5, 10) is 10.
-</para></listitem>
-<listitem><para>
-CLAMP(20, 15, 25) is 20.
-</para></listitem>
-</itemizedlist>
+
 </para>
 
-@x: the value to clamp.
-@low: the minimum value allowed.
-@high: the maximum value allowed.
-@Returns: the value of @x clamped to the range between @low and @high.
+@x: 
+@low: 
+@high: 
 
 
 <!-- ##### MACRO G_STRUCT_MEMBER ##### -->
 <para>
-Returns a member of a structure at a given offset, using the given type.
+
 </para>
 
-@member_type: the type of the struct field.
-@struct_p: a pointer to a struct.
-@struct_offset: the offset of the field from the start of the struct, in bytes.
-@Returns: the struct member.
+@member_type: 
+@struct_p: 
+@struct_offset: 
 
 
 <!-- ##### MACRO G_STRUCT_MEMBER_P ##### -->
 <para>
-Returns an untyped pointer to a given offset of a struct.
+
 </para>
 
-@struct_p: a pointer to a struct.
-@struct_offset: the offset from the start of the struct, in bytes.
-@Returns: an untyped pointer to @struct_p plus @struct_offset bytes.
+@struct_p: 
+@struct_offset: 
 
 
 <!-- ##### MACRO G_STRUCT_OFFSET ##### -->
 <para>
-Returns the offset, in bytes, of a member of a struct.
+
 </para>
 
-@struct_type: a structure type, e.g. <structname>GtkWidget</structname>.
-@member: a field in the structure, e.g. <structfield>window</structfield>.
-@Returns: the offset of @member from the start of @struct_type.
+@struct_type: 
+@member: 
 
 
index cfae430f714b6dba2fab222359f181937d2fd303..ba10972dbe55c4808f4abd131ba0944af19816b2 100644 (file)
 Miscellaneous Macros
 
 <!-- ##### SECTION Short_Description ##### -->
-specialised macros which are not used often.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These macros provide more specialized features which are not needed so often
-by application programmers.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO G_INLINE_FUNC ##### -->
 <para>
-Used to declare inline functions. If inline functions are not supported on
-the particular platform, the macro evaluates to the empty string.
+
 </para>
 
 
 
 <!-- ##### MACRO G_STMT_START ##### -->
 <para>
-Used within multi-statement macros so that they can be used in places where
-only one statement is expected by the compiler.
+
 </para>
 
 
 
 <!-- ##### MACRO G_STMT_END ##### -->
 <para>
-Used within multi-statement macros so that they can be used in places where
-only one statement is expected by the compiler.
+
+</para>
+
+
+
+<!-- ##### MACRO G_N_ELEMENTS ##### -->
+<para>
+
 </para>
 
+@arr: 
 
 
 <!-- ##### MACRO G_VA_COPY ##### -->
 <para>
-Portable way to copy <type>va_list</type> variables.
+
+</para>
+
+@ap1: 
+@ap2: 
+
+
+<!-- ##### MACRO G_STRINGIFY ##### -->
+<para>
+
 </para>
 
-@ap1: the <type>va_list</type> variable to place a copy of @ap2 in.
-@ap2: a <type>va_list</type>.
+@macro_or_string: 
 
 
 <!-- ##### MACRO G_GNUC_EXTENSION ##### -->
 <para>
-Expands to "__extension__" when GNU C is used as the compiler.
-This simply tells GNU C not to warn about the following non-standard code
-when compiling with the -pedantic option.
+
 </para>
 
 
 
 <!-- ##### MACRO G_GNUC_CONST ##### -->
 <para>
-Expands to the GNU C const function attribute if the compiler is GNU C.
-This enables optimization of the function.
-See the GNU C documentation for details. 
+
 </para>
 
 
 
 <!-- ##### MACRO G_GNUC_NORETURN ##### -->
 <para>
-Expands to the GNU C noreturn function attribute if the compiler is GNU C.
-It is used for declaring functions which never return.
-It enables optimization of the function, and avoids possible compiler
-warnings. See the GNU C documentation for details. 
+
 </para>
 
 
 
 <!-- ##### MACRO G_GNUC_UNUSED ##### -->
 <para>
-Expands to the GNU C unused function attribute if the compiler is GNU C.
-It is used for declaring functions which may never be used.
-It avoids possible compiler warnings. See the GNU C documentation for details. 
+
 </para>
 
 
 
 <!-- ##### MACRO G_GNUC_PRINTF ##### -->
 <para>
-Expands to the GNU C format function attribute if the compiler is GNU C.
-This is used for declaring functions which take a variable number of
-arguments, with the same syntax as <function>printf()</function>.
-It allows the compiler to type-check the arguments passed to the function.
-See the GNU C documentation for details. 
+
 </para>
 
-@format_idx: the index of the argument corresponding to the format string.
-(The arguments are numbered from 1).
-@arg_idx: the index of the first of the format arguments.
+@format_idx: 
+@arg_idx: 
 
 
 <!-- ##### MACRO G_GNUC_SCANF ##### -->
 <para>
-Expands to the GNU C format function attribute if the compiler is GNU C.
-This is used for declaring functions which take a variable number of
-arguments, with the same syntax as <function>scanf()</function>.
-It allows the compiler to type-check the arguments passed to the function.
-See the GNU C documentation for details. 
+
 </para>
 
-@format_idx: the index of the argument corresponding to the format string.
-(The arguments are numbered from 1).
-@arg_idx: the index of the first of the format arguments.
+@format_idx: 
+@arg_idx: 
 
 
 <!-- ##### MACRO G_GNUC_FORMAT ##### -->
 <para>
-Expands to the GNU C format_arg function attribute if the compiler is GNU C.
-This is used for declaring functions which take a variable number of
-parameters, like <function>printf()</function> and
-<function>scanf()</function>. See the GNU C documentation for details. 
 
-FIXME: I can't find this in my GNU C documentation. Take out?
 </para>
 
-@arg_idx: the index of the argument.
+@arg_idx: 
 
 
 <!-- ##### MACRO G_GNUC_FUNCTION ##### -->
 <para>
-Expands to the GNU C __FUNCTION__ variable if the compiler is GNU C,
-or "" if it isn't.
-The GNU C __FUNCTION__ variable contains the name of the current function.
-See the GNU C documentation for details. 
+
 </para>
 
 
 
 <!-- ##### MACRO G_GNUC_PRETTY_FUNCTION ##### -->
 <para>
-Expands to the GNU C __PRETTY_FUNCTION__ variable if the compiler is GNU C,
-or "" if it isn't.
-The GNU C __PRETTY_FUNCTION__ variable contains the name of the current
-function. For a C program this is the same as the __FUNCTION__ variable
-but for C++ it also includes extra information such as the class
-and function prototype. See the GNU C documentation for details. 
+
 </para>
 
 
 
-<!-- ##### MACRO g_string ##### -->
+<!-- ##### MACRO G_STRLOC ##### -->
 <para>
-Turns the argument into a string literal by using the '#' stringizing operator.
+
+</para>
+
+
+
+<!-- ##### MACRO G_GSHORT_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GUSHORT_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GINT_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GUINT_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GLONG_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GULONG_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GINT16_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GUINT16_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GINT32_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GUINT32_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GINT64_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_GUINT64_FORMAT ##### -->
+<para>
+
 </para>
 
-@x: text to convert to a literal string.
 
 
index e97e91a5d407a6936c1aa70e367c54cd28029fa3..7c12f1e8cce566bae4bb5cf3d7db717e3a6d8f8b 100644 (file)
 The Main Event Loop
 
 <!-- ##### SECTION Short_Description ##### -->
-manages all available sources of events.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The main event loop manages all the available sources of events for GLib
-and GTK+ applications. These events can come from any number of different
-types of sources such as file descriptors (plain files, pipes or sockets)
-and timeouts.
-New types of event sources can also be added using g_source_add().
-</para>
-<para>
-Each event source is assigned a priority.
-The default priority, #G_PRIORITY_DEFAULT, is 0.
-Values less than 0 denote higher priorities.
-Values greater than 0 denote lower priorities.
-Events from high priority sources
-are always processed before events from lower priority sources.
-</para>
-<para>
-Idle functions can also be added, and assigned a priority. These will be
-run whenever no events with a higher priority are ready to be processed.
-</para>
-<para>
-The #GMainLoop data type represents a main event loop.
-A #GMainLoop is created with g_main_new(). After adding the initial event
-sources, g_main_run() is called. This continuously checks for new events
-from each of the event sources and dispatches them.
-Finally, the processing of an event from one of the sources leads to a call
-to g_main_quit() to exit the main loop, and g_main_run() returns.
-</para>
-<para>
-It is possible to create new instances of #GMainLoop recursively.
-This is often used in GTK+ applications when showing modal dialog boxes.
-However, all event sources are global; they are not tied to a particular
-#GMainLoop.
-</para>
-<para>
-GTK+ contains wrappers of many of these functions,
-e.g. gtk_main(), gtk_main_quit(), gtk_events_pending(), gtk_idle_add(),
-gtk_timeout_add() and gtk_input_add_full().
-In a GTK+ application, these wrapper functions should be used instead.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GMainLoop ##### -->
 <para>
-The #GMainLoop struct is an opaque data type representing the main event loop
-of a GLib or GTK+ application.
+
 </para>
 
 
 <!-- ##### FUNCTION g_main_new ##### -->
 <para>
-Creates a new #GMainLoop.
+
 </para>
 
-@is_running: set to TRUE to indicate that the loop is running. This is not
-very important since calling g_main_run() will set this to TRUE anyway.
-@Returns: a new #GMainLoop.
+@is_running: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_main_destroy ##### -->
 <para>
-Frees the memory allocated for the #GMainLoop.
+
 </para>
 
-@loop: a #GMainLoop.
+@loop: 
 
 
 <!-- ##### FUNCTION g_main_run ##### -->
 <para>
-Runs a main loop until it stops running, which occurs when g_main_quit()
-is called.
+
 </para>
 
-@loop: a #GMainLoop.
+@loop: 
 
 
 <!-- ##### FUNCTION g_main_is_running ##### -->
 <para>
-Returns TRUE if the main loop is running.
+
 </para>
 
-@loop: a #GMainLoop.
-@Returns: TRUE if the main loop is running.
+@loop: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_main_pending ##### -->
 <para>
-Returns TRUE if any events are pending (i.e. ready to be processed).
+
 </para>
 
-@Returns: TRUE if any events are pending.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_main_iteration ##### -->
 <para>
-Runs a single iteration of the main loop.
-This will check which event sources are ready to be processed, and will
-process the highest priority event sources which are ready.
+
 </para>
 
-@may_block: set to TRUE if it should block (i.e. wait) until an event source
-becomes ready. It will return after an event source has been processed.
-If set to FALSE it will return immediately if no event source is ready to be
-processed.
-@Returns: TRUE if more events are pending.
+@may_block: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_main_quit ##### -->
 <para>
-Stops the #GMainLoop. If g_main_run() was called to run the #GMainLoop,
-it will now return.
+
 </para>
 
-@loop: a #GMainLoop.
+@loop: 
 
 
 <!-- ##### MACRO G_PRIORITY_HIGH ##### -->
 <para>
-Use this for high priority event sources.
-It is not used within GLib or GTK+.
+
 </para>
 
 
 
 <!-- ##### MACRO G_PRIORITY_DEFAULT ##### -->
 <para>
-Use this for default priority event sources.
-In GLib this priority is used when adding timeout functions with
-g_timeout_add().
-In GDK this priority is used for events from the X Windows server.
+
 </para>
 
 
 
 <!-- ##### MACRO G_PRIORITY_HIGH_IDLE ##### -->
 <para>
-Use this for high priority idle functions.
-GTK+ uses #G_PRIORITY_HIGH_IDLE + 10 for resizing operations, and
-#G_PRIORITY_HIGH_IDLE + 20 for redrawing operations. (This is done to
-ensure that any pending resizes are processed before any pending redraws,
-so that widgets are not redrawn twice unnecessarily.)
+
 </para>
 
 
 
 <!-- ##### MACRO G_PRIORITY_DEFAULT_IDLE ##### -->
 <para>
-Use this for default priority idle functions.
-In GLib this priority is used when adding idle functions with g_idle_add().
+
 </para>
 
 
 
 <!-- ##### MACRO G_PRIORITY_LOW ##### -->
 <para>
-Use this for very low priority background tasks.
-It is not used within GLib or GTK+.
+
 </para>
 
 
 
 <!-- ##### FUNCTION g_timeout_add ##### -->
 <para>
-Sets a function to be called at regular intervals, with the default priority,
-#G_PRIORITY_DEFAULT.
-The function is called repeatedly until it returns FALSE, at which point
-the timeout is automatically destroyed and the function will not be called
-again.
-The first call to the function will be at the end of the first @interval.
-</para>
-<para>
-Note that timeout functions may be delayed, due to the processing of other
-event sources. Thus they should not be relied on for precise timing.
-After each call to the timeout function, the time of the next
-timeout is recalculated based on the current time and the given interval
-(it does not try to 'catch up' time lost in delays).
+
 </para>
 
-@interval: the time between calls to @function, in milliseconds (1/1000ths
-of a second.)
-@function: the function to call at each interval.
-@data: data to pass to @function.
-@Returns: the id of the event source.
+@interval: 
+@function: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_timeout_add_full ##### -->
 <para>
-Sets a function to be called at regular intervals, with the given priority.
-The function is called repeatedly until it returns FALSE, at which point
-the timeout is automatically destroyed and the function will not be called
-again.
-The @notify function is called when the timeout is destroyed.
-The first call to the function will be at the end of the first @interval.
-</para>
-<para>
-Note that timeout functions may be delayed, due to the processing of other
-event sources. Thus they should not be relied on for precise timing.
-After each call to the timeout function, the time of the next
-timeout is recalculated based on the current time and the given interval
-(it does not try to 'catch up' time lost in delays).
+
 </para>
 
-@priority: the priority of the function. See #G_PRIORITY_DEFAULT,
-#G_PRIORITY_DEFAULT_IDLE, #G_PRIORITY_HIGH, #G_PRIORITY_HIGH_IDLE, and
-#G_PRIORITY_LOW.
-@interval: the time between calls to the function, in milliseconds (1/1000ths
-of a second.)
-@function: the function to call at each interval.
-@data: data to pass to @function (and @notify).
-@notify: the function to call when the timeout is destroyed, or NULL.
-@Returns: the id of event source.
+@priority: 
+@interval: 
+@function: 
+@data: 
+@notify: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GSourceFunc ##### -->
 <para>
-Specifies the type of function passed to g_timeout_add(), g_timeout_add_full(),
-g_idle_add(), and g_idle_add_full().
+
 </para>
 
-@data: data passed to the function, set when the source was created with one
-of the above functions.
-@Returns: it should return FALSE if the source should be removed.
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_idle_add ##### -->
 <para>
-Adds a function to be called whenever there are no higher priority events
-pending. The function is given the default idle priority,
-#G_PRIORITY_DEFAULT_IDLE.
-If the function returns FALSE it is automatically removed from the list of
-event sources and will not be called again.
+
 </para>
 
-@function: the function to call.
-@data: data to pass to the function.
-@Returns: the id of the event source.
+@function: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_idle_add_full ##### -->
 <para>
-Adds a function to be called whenever there are no higher priority events
-pending.
-If the function returns FALSE it is automatically removed from the list of
-event sources and will not be called again.
+
 </para>
 
-@priority: the priority of the idle function, which should be somewhere around
-#G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE.
-@function: the function to call.
-@data: data to pass to the function.
-@destroy: the function to call when the timeout is destroyed, or NULL.
-@Returns: the id of the event source.
+@priority: 
+@function: 
+@data: 
+@destroy: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_idle_remove_by_data ##### -->
 <para>
-Removes the idle function with the given data.
+
 </para>
 
-@data: the data which is passed to the idle function.
-@Returns: TRUE if the idle function was found.
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_main_add_poll ##### -->
 <para>
-Adds a file descriptor to be polled.
-This is usually combined with g_source_add() to add an event source.
-The event source's check function will typically test the revents
-field in the #GPollFD struct and return TRUE if events need to be processed.
+
 </para>
 
-@fd: a #GPollFD, which is a file descriptor together with a bitwise
-combination of #GIOCondition flags determining which events to poll for.
-@priority: the priority of the poll, which should be the same as the priority
-used for g_source_add() to ensure that the file descriptor is polled whenever
-the results may be needed.
-See #G_PRIORITY_DEFAULT, #G_PRIORITY_DEFAULT_IDLE, #G_PRIORITY_HIGH,
-#G_PRIORITY_HIGH_IDLE, and #G_PRIORITY_LOW.
+@fd: 
+@priority: 
 
 
 <!-- ##### STRUCT GPollFD ##### -->
 <para>
 
-<informaltable pgwide=1 frame="none" role="struct">
-<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
-<tbody>
-
-<row>
-<entry>#gint fd;</entry>
-<entry>the file descriptor to poll (or a HANDLE on Win32 platforms).</entry>
-</row>
-
-<row>
-<entry>#gushort events;</entry>
-<entry>a bitwise combination of flags from #GIOCondition, specifying which
-events should be polled for. Typically for reading from a file descriptor
-you would use %G_IO_IN | %G_IO_HUP | %G_IO_ERR, and for writing you would use
-%G_IO_OUT | %G_IO_ERR.
-</entry>
-</row>
-
-<row>
-<entry>#gushort revents;</entry>
-<entry>a bitwise combination of flags from #GIOCondition, returned from the
-poll() function to indicate which events occurred.
-</entry>
-</row>
-</tbody></tgroup></informaltable>
-
 </para>
 
 @fd: 
@@ -325,128 +200,56 @@ poll() function to indicate which events occurred.
 
 <!-- ##### FUNCTION g_main_remove_poll ##### -->
 <para>
-Removes a file descriptor from the list being polled.
+
 </para>
 
-@fd: the #GPollFD to remove.
+@fd: 
 
 
 <!-- ##### FUNCTION g_main_set_poll_func ##### -->
 <para>
-Sets the function to use to handle polling of file descriptors.
-It will be used instead of the <function>poll()</function> system call
-(or GLib's replacement function, which is used where
-<function>poll()</function> isn't available).
+
 </para>
+
+@func: 
+
+
+<!-- ##### FUNCTION g_main_win32_get_poll_func ##### -->
 <para>
-This function could possibly be used to integrate the GLib event loop
-with an external event loop.
+
 </para>
 
-@func: the function to call to poll all file descriptors.
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GPollFunc ##### -->
 <para>
-Specifies the type of function passed to g_main_set_poll_func().
-The semantics of the function should match those of the
-<function>poll()</function> system call.
+
 </para>
 
-@ufds: an array of #GPollFD elements.
-@nfsd: the number of elements in @ufds.
-@timeout: the maximum time to wait for an event of the file descriptors.
-@Returns: the number of #GPollFD elements which have events or errors reported,
-or -1 if an error occurred.
+@ufds: 
+@nfsd: 
+@timeout: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_source_add ##### -->
 <para>
-Adds an event source to the main loop.
+
 </para>
 
-@priority: the priority of the event source. See #G_PRIORITY_DEFAULT,
-#G_PRIORITY_DEFAULT_IDLE, #G_PRIORITY_HIGH, #G_PRIORITY_HIGH_IDLE, and
-#G_PRIORITY_LOW.
-@can_recurse: if it is safe to call the source functions recursively.
-@funcs: the functions to handle the source.
-@source_data: data specific to the type of event source.
-@user_data: user data which will be passed to the user function handling the
-source.
-@notify: the function to call when the source is destroyed.
-@Returns: the id of the event source.
+@priority: 
+@can_recurse: 
+@funcs: 
+@source_data: 
+@user_data: 
+@notify: 
+@Returns: 
 
 
 <!-- ##### STRUCT GSourceFuncs ##### -->
 <para>
-The #GSourceFuncs struct contains a table of functions used to handle
-event sources in a generic manner.
-
-<informaltable pgwide=1 frame="none" role="struct">
-<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
-<tbody>
-
-<row>
-<entry>prepare</entry>
-<entry>
-Called before all the file descriptors are polled.
-If the source can determine that it is ready here (without waiting for the
-results of the poll() call) it should return TRUE.
-It can also return a @timeout value which should be the maximum timeout
-(in milliseconds) which should be passed to the poll() call.
-The actual timeout used will be -1 if all sources returned -1, or it will
-be the minimum of all the @timeout values returned which were >= 0.
-</entry>
-</row>
-
-<row>
-<entry>check</entry>
-<entry>
-Called after all the file descriptors are polled.
-The source should return TRUE if it is ready to be processed.
-Note that some time may have passed since the previous prepare function was
-called, so the source should be checked again here.
-</entry>
-</row>
-
-<row>
-<entry>dispatch</entry>
-<entry>
-Called to process the event source, after it has returned TRUE in either
-its @prepare or its @check function.
-</entry>
-</row>
-
-<row>
-<entry>destroy</entry>
-<entry>
-Called when the source is destroyed. It will be called with the user data
-parameter passed to the g_source_add() and related functions.
-</entry>
-</row>
-</tbody></tgroup></informaltable>
-</para>
-
-<para>
-For idle sources, the prepare and check functions always return TRUE to
-indicate that the source is always ready to be processed.
-The prepare function also returns a timeout value of 0 to ensure that the
-poll() call doesn't block (since that would be time wasted which could have
-been spent running the idle function).
-</para>
-<para>
-For timeout sources, the prepare and check functions both return TRUE if the
-timeout interval has expired.
-The prepare function also returns a timeout value to ensure that the poll()
-call doesn't block too long and miss the next timeout.
-</para>
-<para>
-For file descriptor sources, the prepare function typically returns FALSE,
-since it must wait until poll() has been called before it knows whether any
-events need to be processed. It sets the returned timeout to -1 to indicate
-that it doesn't mind how long the poll() call blocks.
-In the check function, it tests the results of the poll() call to see if
-the required condition has been met, and returns TRUE if so.
+
 </para>
 
 @prepare: 
@@ -456,55 +259,38 @@ the required condition has been met, and returns TRUE if so.
 
 <!-- ##### FUNCTION g_source_remove ##### -->
 <para>
-Removes the event source with the given id.
-The id is returned when the source is created, either directly with
-g_source_add(), or indirectly with g_idle_add(), g_idle_add_full(),
-g_timeout_add() and g_timeout_add_full().
+
 </para>
 
-@tag: the id of the event source to remove.
-@Returns: TRUE if the source was found and removed.
+@tag: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_source_remove_by_funcs_user_data ##### -->
 <para>
-Removes the first event source found with the given #GSourceFuncs and user
-data.
-</para>
-<para>
-Event sources are sorted with the highest priority first. Sources with equal
-priority are stored in the order in which they were added.
+
 </para>
 
-@funcs: the #GSourceFuncs of the source to remove.
-@user_data: the user data of the source to remove.
-@Returns: TRUE if an event source was found and removed.
+@funcs: 
+@user_data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_source_remove_by_source_data ##### -->
 <para>
-Removes the first event source found with the given source data.
-</para>
-<para>
-Event sources are sorted with the highest priority first. Sources with equal
-priority are stored in the order in which they were added.
+
 </para>
 
-@source_data: the source data, which contains information specific to the
-type of source.
-@Returns: TRUE if an event source was found and removed.
+@source_data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_source_remove_by_user_data ##### -->
 <para>
-Removes the first event source found with the given user data.
-</para>
-<para>
-Event sources are sorted with the highest priority first. Sources with equal
-priority are stored in the order in which they were added.
+
 </para>
 
-@user_data: the user data of the source to remove.
-@Returns: TRUE if an event source was found and removed.
+@user_data: 
+@Returns: 
 
 
index 4a6e1b4349be09000d737e6f57cc19966fafe10c..c1f236d4e87ce4ac57e301ac05a55c8e00fb9585 100644 (file)
 Memory Allocation
 
 <!-- ##### SECTION Short_Description ##### -->
-general memory-handling.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These functions provide support for allocating and freeing memory.
-</para>
-<note>
-<para>
-If any call to allocate memory fails, the application is terminated.
-This also means that there is no need to check if the call succeeded.
+
 </para>
-</note>
+
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO g_new ##### -->
 <para>
-Allocates @count elements of type @type.
-The returned pointer is cast to a pointer to the given type.
-If @count is 0 it returns NULL.
+
 </para>
 
-@type: the type of the elements to allocate.
-@count: the number of elements to allocate.
-@Returns: a pointer to the allocated memory, cast to a pointer to @type.
+@type: 
+@count: 
 
 
 <!-- ##### MACRO g_new0 ##### -->
 <para>
-Allocates @count elements of type @type, initialized to 0's.
-The returned pointer is cast to a pointer to the given type.
-If @count is 0 it returns NULL.
+
 </para>
 
-@type: the type of the elements to allocate.
-@count: the number of elements to allocate.
-@Returns: a pointer to the allocated memory, cast to a pointer to @type.
+@type: 
+@count: 
 
 
 <!-- ##### MACRO g_renew ##### -->
 <para>
-Reallocates the memory pointed to by @mem, so that it now has space for
-@count elements of type @type. It returns the new address of the memory,
-which may have been moved.
+
 </para>
 
-@type: the type of the elements to allocate.
-@mem: the currently allocated memory.
-@count: the number of elements to allocate.
-@Returns: a pointer to the new allocated memory, cast to a pointer to @type.
+@type: 
+@mem: 
+@count: 
 
 
 <!-- ##### FUNCTION g_malloc ##### -->
 <para>
-Allocates @size bytes of memory.
-If @size is 0 it returns NULL.
+
 </para>
 
-@size: the number of bytes to allocate.
-@Returns: a pointer to the allocated memory.
+@size: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_malloc0 ##### -->
 <para>
-Allocates @size bytes of memory, initialized to 0's.
-If @size is 0 it returns NULL.
+
 </para>
 
-@size: the number of bytes to allocate.
-@Returns: a pointer to the allocated memory.
+@size: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_realloc ##### -->
 <para>
-Reallocates the memory pointed to by @mem, so that it now has space for
-@size bytes of memory. It returns the new address of the memory, which may
-have been moved.
+
 </para>
 
-@mem: the memory to reallocate.
-@size: the new size of the allocated memory, in bytes.
-@Returns: the new address of the allocated memory.
+@mem: 
+@size: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_free ##### -->
 <para>
-Frees the memory pointed to by @mem.
-If @mem is NULL it simply returns.
+
 </para>
 
-@mem: the memory to free.
+@mem: 
 
 
 <!-- ##### MACRO g_memmove ##### -->
 <para>
-Copies a block of memory @n bytes long, from @s to @d.
-The source and destination areas may overlap.
-</para>
-<note>
-<para>
-On architectures where memmove() is not available, this function is implemented
-using bcopy(), which may not be able to handle overlapping areas.
+
 </para>
-</note>
 
-@d: the destination address to copy the bytes to.
-@s: the source address to copy the bytes from.
-@n: the number of bytes to copy.
+@d: 
+@s: 
+@n: 
 
 
 <!-- ##### FUNCTION g_memdup ##### -->
 <para>
-Allocates @byte_size bytes of memory, and copies @byte_size bytes into it
-from @mem. If @mem is NULL it returns NULL.
+
 </para>
 
-@mem: the memory to copy.
-@byte_size: the number of bytes to copy.
-@Returns: a pointer to the newly allocated copy of the memory, or NULL if @mem
-is NULL.
+@mem: 
+@byte_size: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_mem_profile ##### -->
 <para>
-Outputs a summary of memory usage.
-To use this function you must configure glib with the flag
-'--enable-mem-profile=yes' before compiling.
-</para>
-<para>
-It outputs the frequency of allocations of different sizes,
-the total number of bytes which have been allocated,
-the total number of bytes which have been freed,
-and the difference between the previous two values, i.e. the number of bytes
-still in use.
+
 </para>
 
 
 
 <!-- ##### FUNCTION g_mem_check ##### -->
 <para>
-Checks if the given memory has already been freed. If it has it outputs
-a warning message.
-To use this function you must configure glib with the flag
-'--enable-mem-check=yes' before compiling.
+
 </para>
 
-@mem: the memory to check.
+@mem: 
 
 
index 2f33963b9abc5a495e13ccd83a8c336d34faea10..3f2f596d6f44e94641c9a4b155fc294ac3869a26 100644 (file)
 Memory Chunks
 
 <!-- ##### SECTION Short_Description ##### -->
-efficient way to allocate groups of equal-sized chunks of memory.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-Memory chunks provide an efficient way to allocate equal-sized pieces of
-memory, called atoms. They are used extensively within GLib itself.
-For example, the
-<link linkend="glib-Doubly-Linked-lists">Doubly Linked Lists</link>
-use memory chunks to allocate space for elements of the lists.
-</para>
-<para>
-There are two types of memory chunks, #G_ALLOC_ONLY, and #G_ALLOC_AND_FREE.
-<itemizedlist>
-<listitem><para>
-#G_ALLOC_ONLY chunks only allow allocation of atoms. The atoms can never
-be freed individually. The memory chunk can only be free in its entirety.
-</para></listitem>
-<listitem><para>
-#G_ALLOC_AND_FREE chunks do allow atoms to be freed individually.
-The disadvantage of this is that the memory chunk has to keep track of which
-atoms have been freed. This results in more memory being used and a slight
-degradation in performance.
-</para></listitem>
-
-</itemizedlist>
-</para>
-<para>
-To create a memory chunk use g_mem_chunk_new() or the convenience macro
-g_mem_chunk_create().
-</para>
-<para>
-To allocate a new atom use g_mem_chunk_alloc(), g_mem_chunk_alloc0(),
-or the convenience macros g_chunk_new() or g_chunk_new0(). 
-</para>
-<para>
-To free an atom use g_mem_chunk_free(), or the convenience macro
-g_chunk_free(). (Atoms can only be freed if the memory chunk is created
-with the type set to #G_ALLOC_AND_FREE.)
-</para>
-<para>
-To free any blocks of memory which are no longer being used, use
-g_mem_chunk_clean(). To clean all memory chunks, use g_blow_chunks().
-</para>
-<para>
-To reset the memory chunk, freeing all of the atoms, use g_mem_chunk_reset().
-</para>
-<para>
-To destroy a memory chunk, use g_mem_chunk_destroy().
-</para>
-<para>
-To help debug memory chunks, use g_mem_chunk_info() and g_mem_chunk_print().
+
 </para>
 
-<example>
-<title>Using a GMemChunk.</title>
-<programlisting>
-  GMemChunk *mem_chunk;
-  gchar *mem[10000];
-  gint i;
-
-  /* Create a GMemChunk with atoms 50 bytes long, and memory blocks holding
-     100 bytes. Note that this means that only 2 atoms fit into each memory
-     block and so isn't very efficient. */
-  mem_chunk = g_mem_chunk_new ("test mem chunk", 50, 100, G_ALLOC_AND_FREE);
-
-  /* Now allocate 10000 atoms. */
-  for (i = 0; i < 10000; i++)
-    {
-      mem[i] = g_chunk_new (gchar, mem_chunk);
-
-      /* Fill in the atom memory with some junk. */
-      for (j = 0; j < 50; j++)
-       mem[i][j] = i * j;
-    }
-
-  /* Now free all of the atoms. Note that since we are going to destroy the
-     GMemChunk, this wouldn't normally be used. */
-  for (i = 0; i < 10000; i++)
-    {
-      g_mem_chunk_free (mem_chunk, mem[i]);
-    }
-
-  /* We are finished with the GMemChunk, so we destroy it. */
-  g_mem_chunk_destroy (mem_chunk);
-</programlisting></example>
-
-<example>
-<title>Using a GMemChunk with data structures.</title>
-<programlisting>
-  GMemChunk *array_mem_chunk;
-  GRealArray *array;
-
-  /* Create a GMemChunk to hold GRealArray structures, using the
-     g_mem_chunk_create() convenience macro. We want 1024 atoms in each
-     memory block, and we want to be able to free individual atoms. */
-  array_mem_chunk = g_mem_chunk_create (GRealArray, 1024, G_ALLOC_AND_FREE);
-
-  /* Allocate one atom, using the g_chunk_new() convenience macro. */
-  array = g_chunk_new (GRealArray, array_mem_chunk);
-
-  /* We can now use array just like a normal pointer to a structure. */
-  array->data            = NULL;
-  array->len             = 0;
-  array->alloc           = 0;
-  array->zero_terminated = (zero_terminated ? 1 : 0);
-  array->clear           = (clear ? 1 : 0);
-  array->elt_size        = elt_size;
-
-  /* We can free the element, so it can be reused. */
-  g_chunk_free (array, array_mem_chunk);
-
-  /* We destroy the GMemChunk when we are finished with it. */
-  g_mem_chunk_destroy (array_mem_chunk);
-</programlisting></example>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GMemChunk ##### -->
 <para>
-The #GMemChunk struct is an opaque data structure representing a memory
-chunk. It should be accessed only through the use of the following functions.
+
 </para>
 
 
 <!-- ##### MACRO G_ALLOC_AND_FREE ##### -->
 <para>
-Specifies the type of a #GMemChunk.
-Used in g_mem_chunk_new() and g_mem_chunk_create() to specify that atoms
-will be freed individually.
+
 </para>
 
 
 
 <!-- ##### MACRO G_ALLOC_ONLY ##### -->
 <para>
-Specifies the type of a #GMemChunk.
-Used in g_mem_chunk_new() and g_mem_chunk_create() to specify that atoms
-will never be freed individually.
+
 </para>
 
 
 
 <!-- ##### FUNCTION g_mem_chunk_new ##### -->
 <para>
-Creates a new #GMemChunk.
+
 </para>
 
-@name: a string to identify the #GMemChunk. It is not copied so it
-should be valid for the lifetime of the #GMemChunk. It is only used in
-g_mem_chunk_print(), which is used for debugging.
-@atom_size: the size, in bytes, of each element in the #GMemChunk.
-@area_size: the size, in bytes, of each block of memory allocated to contain
-the atoms.
-@type: the type of the #GMemChunk.
-#G_ALLOC_AND_FREE is used if the atoms will be freed individually.
-#G_ALLOC_ONLY should be used if atoms will never be freed individually.
-#G_ALLOC_ONLY is quicker, since it does not need to track free atoms,
-but it obviously wastes memory if you no longer need many of the atoms.
-@Returns: the new #GMemChunk.
+@name: 
+@atom_size: 
+@area_size: 
+@type: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_mem_chunk_alloc ##### -->
 <para>
-Allocates an atom of memory from a #GMemChunk.
+
 </para>
 
-@mem_chunk: a #GMemChunk.
-@Returns: a pointer to the allocated atom.
+@mem_chunk: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_mem_chunk_alloc0 ##### -->
 <para>
-Allocates an atom of memory from a #GMemChunk, setting the memory to 0.
+
 </para>
 
-@mem_chunk: a #GMemChunk.
-@Returns: a pointer to the allocated atom.
+@mem_chunk: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_mem_chunk_free ##### -->
 <para>
-Frees an atom in a #GMemChunk.
-This should only be called if the #GMemChunk was created with
-#G_ALLOC_AND_FREE. Otherwise it will simply return.
+
 </para>
 
-@mem_chunk: a #GMemChunk.
-@mem: a pointer to the atom to free.
+@mem_chunk: 
+@mem: 
 
 
 <!-- ##### FUNCTION g_mem_chunk_destroy ##### -->
 <para>
-Frees all of the memory allocated for a #GMemChunk.
+
 </para>
 
-@mem_chunk: a #GMemChunk.
+@mem_chunk: 
 
 
 <!-- ##### MACRO g_mem_chunk_create ##### -->
 <para>
-A convenience macro for creating a new #GMemChunk.
-It calls g_mem_chunk_new(), using the given type to create the #GMemChunk
-name. The atom size is determined using <function>sizeof()</function>, and the
-area size is calculated by multiplying the @pre_alloc parameter with
-the atom size.
+
 </para>
 
-@type: the type of the atoms, typically a structure name.
-@pre_alloc: the number of atoms to store in each block of memory.
-@alloc_type: the type of the #GMemChunk.
-#G_ALLOC_AND_FREE is used if the atoms will be freed individually.
-#G_ALLOC_ONLY should be used if atoms will never be freed individually.
-#G_ALLOC_ONLY is quicker, since it does not need to track free atoms,
-but it obviously wastes memory if you no longer need many of the atoms.
-@Returns: the new #GMemChunk.
+@type: 
+@pre_alloc: 
+@alloc_type: 
 
 
 <!-- ##### MACRO g_chunk_new ##### -->
 <para>
-A convenience macro to allocate an atom of memory from a #GMemChunk.
-It calls g_mem_chunk_alloc() and casts the returned atom to a pointer to
-the given type, avoiding a type cast in the source code.
+
 </para>
 
-@type: the type of the #GMemChunk atoms, typically a structure name.
-@chunk: a #GMemChunk.
-@Returns: a pointer to the allocated atom, cast to a pointer to @type.
+@type: 
+@chunk: 
 
 
 <!-- ##### MACRO g_chunk_new0 ##### -->
 <para>
-A convenience macro to allocate an atom of memory from a #GMemChunk.
-It calls g_mem_chunk_alloc0() and casts the returned atom to a pointer to
-the given type, avoiding a type cast in the source code.
+
 </para>
 
-@type: the type of the #GMemChunk atoms, typically a structure name.
-@chunk: a #GMemChunk.
-@Returns: a pointer to the allocated atom, cast to a pointer to @type.
+@type: 
+@chunk: 
 
 
 <!-- ##### MACRO g_chunk_free ##### -->
 <para>
-A convenience macro to free an atom of memory from a #GMemChunk.
-It simply switches the arguments and calls g_mem_chunk_free()
-It is included simply to complement the other convenience macros, g_chunk_new()
-and g_chunk_new0().
+
 </para>
 
-@mem: a pointer to the atom to be freed.
-@mem_chunk: a #GMemChunk.
+@mem: 
+@mem_chunk: 
 
 
 <!-- ##### FUNCTION g_mem_chunk_reset ##### -->
 <para>
-Resets a GMemChunk to its initial state.
-It frees all of the currently allocated blocks of memory.
+
 </para>
 
-@mem_chunk: a #GMemChunk.
+@mem_chunk: 
 
 
 <!-- ##### FUNCTION g_mem_chunk_clean ##### -->
 <para>
-Frees any blocks in a #GMemChunk which are no longer being used.
+
 </para>
 
-@mem_chunk: a #GMemChunk.
+@mem_chunk: 
 
 
 <!-- ##### FUNCTION g_blow_chunks ##### -->
 <para>
-Calls g_mem_chunk_clean() on all #GMemChunk objects.
+
 </para>
 
 
 
 <!-- ##### FUNCTION g_mem_chunk_info ##### -->
 <para>
-Outputs debugging information for all #GMemChunk objects currently in use.
-It outputs the number of #GMemChunk objects currently allocated,
-and calls g_mem_chunk_print() to output information on each one.
+
 </para>
 
 
 
 <!-- ##### FUNCTION g_mem_chunk_print ##### -->
 <para>
-Outputs debugging information for a #GMemChunk.
-It outputs the name of the #GMemChunk (set with g_mem_chunk_new()),
-the number of bytes used, and the number of blocks of memory allocated.
+
 </para>
 
-@mem_chunk: a #GMemChunk.
+@mem_chunk: 
 
 
index 743a1b4dc111e921f595c3ec2aee5239106a6690..7d94f128faa8c4a68391e9065ff238512da672d8 100644 (file)
@@ -2,38 +2,23 @@
 Message Logging
 
 <!-- ##### SECTION Short_Description ##### -->
-versatile support for logging messages with different levels of importance.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These functions provide support for logging error messages or messages
-used for debugging.
-</para>
 
-<para>
-There are several built-in levels of messages, defined in #GLogLevelFlags.
-These can be extended with user-defined levels.
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO G_LOG_DOMAIN ##### -->
 <para>
-Defines the log domain.
-For applications, this is typically left as the default NULL (or "") domain.
-Libraries should define this so that any messages which they log can
-be differentiated from messages from other libraries and application code.
-But be careful not to define it in any public header files.
-</para>
-<para>
-For example, GTK uses this in its Makefile.am:
-<informalexample><programlisting>
-INCLUDES = \
-       -DG_LOG_DOMAIN=\"Gtk\"
-</programlisting></informalexample>
+
 </para>
 
 
@@ -52,33 +37,32 @@ INCLUDES = \
 
 <!-- ##### MACRO G_LOG_FATAL_MASK ##### -->
 <para>
-GLib log levels that are considered fatal by default.
+
 </para>
 
 
 
 <!-- ##### MACRO G_LOG_LEVEL_USER_SHIFT ##### -->
 <para>
-Log level shift offset for user defined log levels (0-7 are used by GLib).
+
 </para>
 
 
 
 <!-- ##### USER_FUNCTION GLogFunc ##### -->
 <para>
-Specifies the prototype of log handler functions.
+
 </para>
 
-@log_domain: the log domain of the message.
-@log_level: the log level of the message (including the fatal and recursion
-flags).
-@message: the message to process.
-@user_data: user data, set in g_log_set_handler().
+@log_domain: 
+@log_level: 
+@message: 
+@user_data: 
 
 
 <!-- ##### ENUM GLogLevelFlags ##### -->
 <para>
-Flags specifying the level of log messages.
+
 </para>
 
 @G_LOG_FLAG_RECURSION: 
@@ -93,188 +77,149 @@ Flags specifying the level of log messages.
 
 <!-- ##### FUNCTION g_log ##### -->
 <para>
-Logs an error or debugging message.
-If the log level has been set as fatal, the <function>abort()</function>
-function is called to terminate the program.
+
 </para>
 
-@log_domain: the log domain, usually #G_LOG_DOMAIN.
-@log_level: the log level, either from #GLogLevelFlags or a user-defined level.
-@format: the message format. See the <function>printf()</function>
-documentation.
-@Varargs: the parameters to insert into the format string.
+@log_domain: 
+@log_level: 
+@format: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_logv ##### -->
 <para>
-Logs an error or debugging message.
-If the log level has been set as fatal, the <function>abort()</function>
-function is called to terminate the program.
+
 </para>
 
-@log_domain: the log domain.
-@log_level: the log level.
-@format: the message format. See the <function>printf()</function>
-documentation.
-@args: the parameters to insert into the format string.
+@log_domain: 
+@log_level: 
+@format: 
+@args: 
 
 
 <!-- ##### MACRO g_message ##### -->
 <para>
-A convenience function/macro to log a normal message.
+
 </para>
 
-@format: the message format. See the <function>printf()</function>
-documentation.
-@args...: the parameters to insert into the format string.
+@...: 
 
 
 <!-- ##### MACRO g_warning ##### -->
 <para>
-A convenience function/macro to log a warning message.
+
 </para>
 
-@format: the message format. See the <function>printf()</function>
-documentation.
-@args...: the parameters to insert into the format string.
+@...: 
 
 
-<!-- ##### MACRO g_error ##### -->
+<!-- ##### MACRO g_critical ##### -->
 <para>
-A convenience function/macro to log an error message.
-Error messages are always fatal, resulting in a call to
-<function>abort()</function> to terminate the application.
+
 </para>
 
-@format: the message format. See the <function>printf()</function>
-documentation.
-@args...: the parameters to insert into the format string.
+@...: 
 
 
-<!-- ##### FUNCTION g_log_set_handler ##### -->
+<!-- ##### MACRO g_error ##### -->
 <para>
-Sets the log handler for a domain and a set of log levels.
-To handle fatal and recursive messages the @log_levels parameter
-must be combined with the G_LOG_FLAG_FATAL and G_LOG_FLAG_RECURSIVE bit flags.
+
 </para>
+
+@...: 
+
+
+<!-- ##### FUNCTION g_log_set_handler ##### -->
 <para>
-Note that since the G_LOG_LEVEL_ERROR log level is always fatal, if you want
-to set a handler for this log level you must combine it with G_LOG_FLAG_FATAL.
-</para>
 
-<example>
-<title>Adding a log handler for all warning messages</title>
-<programlisting>
-  g_log_set_handler (NULL, G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL
-                     | G_LOG_FLAG_RECURSIVE, my_log_handler, NULL);
-</programlisting>
-</example>
 </para>
 
-@log_domain: the log domain, or NULL for the default "" application domain.
-@log_levels: the log levels to apply the log handler for. To handle fatal
-and recursive messages as well, combine the log levels with the
-G_LOG_FLAG_FATAL and G_LOG_FLAG_RECURSIVE bit flags.
-@log_func: the log handler function.
-@user_data: data passed to the log handler.
-@Returns: the id of the new handler.
+@log_domain: 
+@log_levels: 
+@log_func: 
+@user_data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_log_remove_handler ##### -->
 <para>
-Removes the log handler.
+
 </para>
 
-@log_domain: the log domain.
-@handler_id: the id of the handler, which was returned in g_log_set_handler().
+@log_domain: 
+@handler_id: 
 
 
 <!-- ##### FUNCTION g_log_set_always_fatal ##### -->
 <para>
-Sets the message levels which are always fatal, in any log domain.
-When a message with any of these levels is logged the program terminates.
-You can only set the levels defined by GLib to be fatal.
-%G_LOG_LEVEL_ERROR is always fatal.
+
 </para>
 
-@fatal_mask: the mask containing bits set for each level of error which is
-to be fatal.
-@Returns: the old fatal mask.
+@fatal_mask: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_log_set_fatal_mask ##### -->
 <para>
-Sets the log levels which are fatal in the given domain.
-%G_LOG_LEVEL_ERROR is always fatal.
+
 </para>
 
-@log_domain: the log domain.
-@fatal_mask: the new fatal mask.
-@Returns: the old fatal mask for the log domain.
+@log_domain: 
+@fatal_mask: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_log_default_handler ##### -->
 <para>
-The default log handler.
-This is used if no log handler has been set for the particular log domain
-and log level combination. It outputs the message to stderr or stdout
-and if the log level is fatal it calls <function>abort()</function>.
-</para>
-<para>
-stderr is used for levels %G_LOG_LEVEL_ERROR, %G_LOG_LEVEL_CRITICAL, and
-%G_LOG_LEVEL_WARNING. stdout is used for the rest.
-(On the Windows platform, stdout is always used.)
+
 </para>
 
-@log_domain: the log domain of the message.
-@log_level: the level of the message.
-@message: the message.
-@unused_data: data passed from g_log which is unused.
+@log_domain: 
+@log_level: 
+@message: 
+@unused_data: 
 
 
 <!-- ##### FUNCTION g_set_error_handler ##### -->
 <para>
-Sets the function to be called to handle error messages.
-This function is deprecated in favour of the new logging facilities.
+
 </para>
 
-@func: the function to be called to handle error messages.
-@Returns: the old error handler.
+@func: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GErrorFunc ##### -->
 <para>
-Specifies the type of function passed to g_set_error_handler().
+
 </para>
 
-@str: the error message.
+@str: 
 
 
 <!-- ##### FUNCTION g_set_warning_handler ##### -->
 <para>
-Sets the function to be called to handle warning messages.
-This function is deprecated in favour of the new logging facilities.
+
 </para>
 
-@func: the function to be called to handle warning messages.
-@Returns: the old warning handler.
+@func: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GWarningFunc ##### -->
 <para>
-Specifies the type of function passed to g_set_warning_handler().
+
 </para>
 
-@str: the warning message.
+@str: 
 
 
 <!-- ##### FUNCTION g_set_message_handler ##### -->
 <para>
-Sets the function to be called to handle messages.
-This function is deprecated in favour of the new logging facilities.
+
 </para>
 
-@func: the function to be called to handle normal messages.
-@Returns: the old message handler.
+@func: 
+@Returns: 
 
 
index eaa8736347b2630c05ff4f49815b2dd63250d7b9..5576e1a5d3110a77c33961d6daee801b377de024 100644 (file)
 Miscellaneous Utility Functions
 
 <!-- ##### SECTION Short_Description ##### -->
-a selection of portable utility functions.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These are portable utility functions.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### FUNCTION g_get_prgname ##### -->
 <para>
-Gets the name of the program.
-(If you are using GDK or GTK the program name is set in gdk_init(), which
-is called by gtk_init(). The program name is found by taking the last
-component of argv[0].)
+
 </para>
 
-@Returns: the name of the program.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_set_prgname ##### -->
 <para>
-Sets the name of the program.
+
 </para>
 
-@prgname: the name of the program.
+@prgname: 
 
 
 <!-- ##### FUNCTION g_getenv ##### -->
 <para>
-Returns an environment variable.
-On windows systems the returned value is only valid until the next call to
-g_getenv().
+
 </para>
 
-@variable: the environment variable to get.
-@Returns: the value of the environment variable, or NULL if the environment
-variable is not found.
+@variable: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_get_user_name ##### -->
 <para>
-Gets the user name of the current user.
+
 </para>
 
-@Returns: the user name of the current user.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_get_real_name ##### -->
 <para>
-Gets the real name of the user. This comes from the user's entry in the
-passwd file.
+
 </para>
 
-@Returns: the user's real name.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_get_home_dir ##### -->
 <para>
-Gets the current user's home directory.
+
 </para>
 
-@Returns: the current user's home directory.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_get_tmp_dir ##### -->
 <para>
-Gets the directory to use for temporary files.
-This is found from inspecting the environment variables TMPDIR, TMP, and TEMP
-in that order. If none of those are defined "/tmp" is returned.
+
 </para>
 
-@Returns: the directory to use for temporary files.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_get_current_dir ##### -->
 <para>
-Gets the current directory.
-The returned string should be freed when no longer needed.
+
 </para>
 
-@Returns: the current directory.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_basename ##### -->
 <para>
-Gets the name of the file without any leading directory components.
-It returns a pointer into the given file name string.
+
 </para>
 
-@file_name: the name of the file.
-@Returns: the name of the file without any leading directory components.
+@file_name: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_dirname ##### -->
 <para>
-Gets the directory components of a file name.
-If the file name has no directory components "." is returned.
-The returned string should be freed when no longer needed.
+
 </para>
 
-@file_name: the name of the file.
-@Returns: the directory components of the file.
+@file_name: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_path_is_absolute ##### -->
 <para>
-Returns TRUE if the given @file_name is an absolute file name,
-i.e. it contains a full path from the root directory such as '/usr/local'
-or 'C:/windows' on windows systems.
+
 </para>
 
-@file_name: a file name.
-@Returns: TRUE if @file_name is an absolute path.
+@file_name: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_path_skip_root ##### -->
 <para>
-Returns a pointer into @file_name after the root component, i.e. after
-the '/' in Unix or 'C:/' under Windows. If @file_name is not an absolute
-path it returns NULL.
+
 </para>
 
-@file_name: a file name.
-@Returns: a pointer into @file_name after the root component.
+@file_name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_path_get_dirname ##### -->
+<para>
+
+</para>
+
+@file_name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_path_get_basename ##### -->
+<para>
+
+</para>
+
+@file_name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_filename_to_utf8 ##### -->
+<para>
+
+</para>
+
+@opsysstring: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_filename_from_utf8 ##### -->
+<para>
+
+</para>
+
+@utf8string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_bit_nth_lsf ##### -->
 <para>
-Find the position of the first bit set in @mask, searching from (but not
-including) @nth_bit upwards. Bits are numbered from 0 (least significant)
-to 31. To start searching from the 0th bit, set @nth_bit to -1.
+
 </para>
 
-@mask: a #guint32 containing up to 32 bit flags.
-@nth_bit: the index of the bit to start the search from.
-@Returns: the index of the first bit set which is higher than @nth_bit.
+@mask: 
+@nth_bit: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_bit_nth_msf ##### -->
 <para>
-Find the position of the first bit set in @mask, searching from (but not
-including) @nth_bit downwards. Bits are numbered from 0 (least significant)
-to 31. To start searching from the 31st bit, set @nth_bit to 32 or -1.
+
 </para>
 
-@mask: a #guint32 containing up to 32 bit flags.
-@nth_bit: the index of the bit to start the search from.
-@Returns: the index of the first bit set which is lower than @nth_bit.
+@mask: 
+@nth_bit: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_bit_storage ##### -->
 <para>
-Gets the number of bits used to hold @number,
-e.g. if @number is 4, 3 bits are needed.
+
 </para>
 
-@number: a guint.
-@Returns: the number of bits used to hold @number.
+@number: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_spaced_primes_closest ##### -->
 <para>
-Gets the smallest prime number from a built-in array of primes which
-is larger than @num. This is used within GLib to calculate the optimum
-size of a #GHashTable.
-</para>
-<para>
-The built-in array of primes ranges from 11 to 13845163 such that
-each prime is approximately 1.5-2 times the previous prime.
+
 </para>
 
-@num: a guint.
-@Returns: the smallest prime number from a built-in array of primes which is
-larger than @num.
+@num: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_atexit ##### -->
 <para>
-Specifies a function to be called at normal program termination.
+
 </para>
 
-@func: the function to call on normal program termination.
+@func: 
 
 
 <!-- ##### FUNCTION g_parse_debug_string ##### -->
 <para>
-Parses a string containing debugging options separated by ':' into a guint
-containing bit flags.
-This is used within GDK and GTK to parse the debug options passed on the
-command line or through environment variables.
+
 </para>
 
-@string: a list of debug options separated by ':' or "all" to set all flags.
-@keys: pointer to an array of #GDebugKey which associate strings with
-bit flags.
-@nkeys: the number of #GDebugKey in the array.
-@Returns: the combined set of bit flags.
+@string: 
+@keys: 
+@nkeys: 
+@Returns: 
 
 
 <!-- ##### STRUCT GDebugKey ##### -->
 <para>
-Associates a string with a bit flag.
-Used in g_parse_debug_string().
+
 </para>
 
 @key: 
@@ -216,16 +220,14 @@ Used in g_parse_debug_string().
 
 <!-- ##### USER_FUNCTION GVoidFunc ##### -->
 <para>
-Declares a type of function which takes no arguments and has no return value.
-It is used to specify the type function passed to g_atexit().
+
 </para>
 
 
 
 <!-- ##### USER_FUNCTION GFreeFunc ##### -->
 <para>
-Declares a type of function which takes an arbitrary data pointer argument
-and has no return value. It is not currently used in GLib or GTK+.
+
 </para>
 
 @data: 
index f3d0ba83e51b229040433169a8333c51dcb517a4..ec1f92a23e5e99c14089a0b38cb178d50af6d91d 100644 (file)
 Dynamic Loading of Modules
 
 <!-- ##### SECTION Short_Description ##### -->
-portable method for dynamically loading 'plug-ins'.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These functions provide a portable way to dynamically load object files
-(commonly known as 'plug-ins').
-The current implementation supports all systems that provide
-an implementation of dlopen() (e.g. Linux/Sun), as well as HP-UX via its
-shl_load() mechanism, and Windows platforms via DLLs.
-</para>
-<para>
-To use them you must first determine whether dynamic loading
-is supported on the platform by calling g_module_supported().
-If it is, you can open a module with g_module_open(),
-find the module's symbols (e.g. function names) with g_module_symbol(),
-and later close the module with g_module_close().
-g_module_name() will return the file name of a currently opened module.
-</para>
-<para>
-If any of the above functions fail, the error status can be found with
-g_module_error().
-</para>
-<para>
-The gmodule implementation features reference counting for opened modules,
-and supports hook functions within a module which are called when the
-module is loaded and unloaded (see #GModuleCheckInit and #GModuleUnload).
-</para>
-<para>
-If your module introduces static data to common subsystems in the running
-program, e.g. through calling g_quark_from_static_string ("my-module-stuff"),
-it must ensure that it is never unloaded, by calling g_module_make_resident().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GModule ##### -->
 <para>
-The #GModule struct is an opaque data structure to represent a
-<link linkend="glib-Dynamic-Loading-of-Modules">Dynamically-Loaded Module</link>.
-It should only be accessed via the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_module_supported ##### -->
 <para>
-Checks if modules are supported on the current platform.
+
 </para>
 
-@Returns: TRUE if modules are supported.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_module_build_path ##### -->
 <para>
-A portable way to build the filename of a module. The platform-specific
-prefix and suffix are added to the filename, if needed, and the result is
-added to the directory, using the correct separator character.
-</para>
-<para>
-The directory should specify the directory where the module can be found.
-It can be NULL or an empty string to indicate that the module is in a standard
-operating-system specific directory, though this is not recommended since the
-wrong module may be found.
-</para>
-<para>
-For example, calling g_module_build_path() on a Linux system with a directory
-of "/lib" and a module_name of "mylibrary" will return "/lib/libmylibrary.so".
-On a Windows system, using "\Windows" as the directory it will return
-"\Windows\mylibrary.dll".
+
 </para>
 
-@directory: the directory where the module is. This can be NULL or the empty
-string to indicate that the standard operating system-specific directories
-will be used, though that is not recommended.
-@module_name: the name of the module.
-@Returns: the complete path of the module, including the standard library
-prefix and suffix. This should be freed when no longer needed.
+@directory: 
+@module_name: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_module_open ##### -->
 <para>
-Opens a module.
-If the module has already been opened, its reference count is incremented.
+
 </para>
 
-@file_name: the name of the file containing the module.
-@flags: the flags used for opening the module. Currently this can be 0 or
-G_MODULE_BIND_LAZY for lazy binding, where symbols are only bound when needed.
-@Returns: a #GModule on success, or NULL on failure.
+@file_name: 
+@flags: 
+@Returns: 
 
 
 <!-- ##### ENUM GModuleFlags ##### -->
 <para>
-Flags passed to g_module_open().
-G_MODULE_BIND_LAZY specifies that symbols are only resolved when needed.
-The default action is to bind all symbols when the module is loaded.
-(G_MODULE_BIND_LAZY is not supported on all platforms.)
+
 </para>
 
 @G_MODULE_BIND_LAZY: 
@@ -108,85 +60,76 @@ The default action is to bind all symbols when the module is loaded.
 
 <!-- ##### FUNCTION g_module_symbol ##### -->
 <para>
-Gets a symbol pointer from a module.
+
 </para>
 
-@module: the module.
-@symbol_name: the name of the symbol to find.
-@symbol: returns the pointer to the symbol value.
-@Returns: TRUE on success.
+@module: 
+@symbol_name: 
+@symbol: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_module_name ##### -->
 <para>
-Gets the file name from a #GModule.
+
 </para>
 
-@module: the module.
-@Returns: the file name of the module, or "main" if the module is the main
-program itself.
+@module: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_module_make_resident ##### -->
 <para>
-Ensures that a module will never be unloaded.
-Any future g_module_close() calls on the module will be ignored.
+
 </para>
 
-@module: a module to make permanently resident.
+@module: 
 
 
 <!-- ##### FUNCTION g_module_close ##### -->
 <para>
-Closes a module.
+
 </para>
 
-@module: the module to close.
-@Returns: TRUE on success.
+@module: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_module_error ##### -->
 <para>
-Gets a string describing the last module error.
+
 </para>
 
-@Returns: a string describing the last module error.
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GModuleCheckInit ##### -->
 <para>
-Specifies the type of the module initialization function.
-If a module contains a function named g_module_check_init() it is called
-automatically when the module is loaded. It is passed the #GModule structure
-and should return NULL on success or a string describing the initialization
-error.
+
 </para>
 
-@module: the #GModule corresponding to the module which has just been loaded.
-@Returns: NULL on success, or a string describing the initialization error.
+@module: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GModuleUnload ##### -->
 <para>
-Specifies the type of the module function called when it is unloaded.
-If a module contains a function named g_module_unload() it is called
-automatically when the module is unloaded.
-It is passed the #GModule structure.
+
 </para>
 
-@module: the module about to be unloaded.
+@module: 
 
 
 <!-- ##### MACRO G_MODULE_EXPORT ##### -->
 <para>
-Used to declare functions exported by modules.
+
 </para>
 
 
 
 <!-- ##### MACRO G_MODULE_IMPORT ##### -->
 <para>
-Used to declare functions imported from modules.
+
 </para>
 
 
index b62e032aaf318dc7c23c9d6e90b6de7fbb519776..997e336a6b98d60f8507cfa8ecbe2ce730eceebd 100644 (file)
@@ -2,90 +2,59 @@
 Quarks
 
 <!-- ##### SECTION Short_Description ##### -->
-a 2-way association between a string and a unique integer identifier.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-Quarks are associations between strings and integer identifiers.
-Given either the string or the #GQuark identifier it is possible to
-retrieve the other.
-</para>
-<para>
-Quarks are used for both
-<link linkend="glib-datasets">Datasets</link> and
-<link linkend="glib-keyed-data-lists">Keyed Data Lists</link>.
-</para>
-<para>
-To create a new quark from a string, use g_quark_from_string() or
-g_quark_from_static_string().
-</para>
-<para>
-To find the string corresponding to a given #GQuark, use g_quark_to_string().
-</para>
-<para>
-To find the #GQuark corresponding to a given string, use g_quark_try_string().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### TYPEDEF GQuark ##### -->
 <para>
-A GQuark is an integer which uniquely identifies a particular string.
+
 </para>
 
 
 <!-- ##### FUNCTION g_quark_from_string ##### -->
 <para>
-Gets the #GQuark identifying the given string.
-If the string does not currently have an associated #GQuark, a new
-#GQuark is created, using a copy of the string.
+
 </para>
 
-@string: a string.
-@Returns: the #GQuark identifying the string.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_quark_from_static_string ##### -->
 <para>
-Gets the #GQuark identifying the given (static) string.
-If the string does not currently have an associated #GQuark, a new
-#GQuark is created, linked to the given string.
-</para>
-<para>
-Note that this function is identical to g_quark_from_string() except
-that if a new #GQuark is created the string itself is used rather than
-a copy. This saves memory, but can only be used if the string will
-always exist (if, for example, it is a statically-allocated string).
+
 </para>
 
-@string: a string.
-@Returns: the #GQuark identifying the string.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_quark_to_string ##### -->
 <para>
-Gets the string associated with the given #GQuark.
+
 </para>
 
-@quark: a #GQuark.
-@Returns: the string associated with the #GQuark.
+@quark: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_quark_try_string ##### -->
 <para>
-Gets the #GQuark associated with the given string, or 0 if the string has
-no associated #GQuark.
-</para>
-<para>
-If you want the GQuark to be created if it doesn't already exist, use
-g_quark_from_string() or g_quark_from_static_string().
+
 </para>
 
-@string: a string.
-@Returns: the #GQuark associated with the string, or 0 if there is no
-#GQuark associated with the string.
+@string: 
+@Returns: 
 
 
index 4c1dd6110ad3edc67758e91a8d99cb95d1dfd7f9..7bf216f54dbf2a1829499067cd72e5858f7d3ebd 100644 (file)
 Relations and Tuples
 
 <!-- ##### SECTION Short_Description ##### -->
-tables of data which can be indexed on any number of fields.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-A #GRelation is a table of data which can be indexed on any number of fields,
-rather like simple database tables. A #GRelation contains a number of
-records, called tuples. Each record contains a number of fields.
-Records are not ordered, so it is not possible to find the record at a
-particular index.
-</para>
-<para>
-Note that #GRelation tables are currently limited to 2 fields.
-</para>
-<para>
-To create a GRelation, use g_relation_new().
-</para>
-<para>
-To specify which fields should be indexed, use g_relation_index().
-Note that this must be called before any tuples are added to the #GRelation.
-</para>
-<para>
-To add records to a #GRelation use g_relation_insert().
-</para>
-<para>
-To determine if a given record appears in a #GRelation, use
-g_relation_exists(). Note that fields are compared directly, so pointers
-must point to the exact same position (i.e. different copies of the same
-string will not match.)
-</para>
-<para>
-To count the number of records which have a particular value in a given
-field, use g_relation_count().
-</para>
-<para>
-To get all the records which have a particular value in a given field,
-use g_relation_select(). To access fields of the resulting records,
-use g_tuples_index(). To free the resulting records use g_tuples_destroy().
-</para>
-<para>
-To delete all records which have a particular value in a given field,
-use g_relation_delete().
-</para>
-<para>
-To destroy the #GRelation, use g_relation_destroy().
-</para>
-<para>
-To help debug #GRelation objects, use g_relation_print().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GRelation ##### -->
 <para>
-The #GRelation struct is an opaque data structure to represent a
-<link linkend="glib-Relations-and-Tuples">Relation</link>.
-It should only be accessed via the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_relation_new ##### -->
 <para>
-Creates a new #GRelation with the given number of fields.
-Note that currently the number of fields must be 2.
+
 </para>
 
-@fields: the number of fields.
-@Returns: a new #GRelation.
+@fields: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_relation_index ##### -->
 <para>
-Creates an index on the given field.
-Note that this must be called before any records are added to the #GRelation.
+
 </para>
 
-@relation: a #GRelation.
-@field: the field to index, counting from 0.
-@hash_func: a function to produce a hash value from the field data.
-@key_compare_func: a function to compare two values of the given field.
+@relation: 
+@field: 
+@hash_func: 
+@key_compare_func: 
 
 
 <!-- ##### FUNCTION g_relation_insert ##### -->
 <para>
-Inserts a record into a #GRelation.
+
 </para>
 
-@relation: a #GRelation.
-@Varargs: the fields of the record to add. This must match the number of
-fields in the #GRelation.
+@relation: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_relation_exists ##### -->
 <para>
-Returns TRUE if a record with the given values exists in a #GRelation.
-Note that the values are compared directly, so that, for example, two
-copies of the same string will not match.
+
 </para>
 
-@relation: a #GRelation.
-@Varargs: the fields of the record to compare. The number must match the
-number of fields in the #GRelation.
-@Returns: TRUE if a record matches.
+@relation: 
+@Varargs: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_relation_count ##### -->
 <para>
-Returns the number of tuples in a #GRelation that have the given value
-in the given field.
+
 </para>
 
-@relation: a #GRelation.
-@key: the value to compare with.
-@field: the field of each record to match.
-@Returns: the number of matches.
+@relation: 
+@key: 
+@field: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_relation_select ##### -->
 <para>
-Returns all of the tuples which have the given key in the given field.
-Use g_tuples_index() to access the returned records.
-The returned records should be freed with g_tuples_destroy().
+
 </para>
 
-@relation: a #GRelation.
-@key: the value to compare with.
-@field: the field of each record to match.
-@Returns: the records (tuples) that matched.
+@relation: 
+@key: 
+@field: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_relation_delete ##### -->
 <para>
-Deletes any records from a GRelation that have the given key value in
-the given field.
+
 </para>
 
-@relation: a #GRelation.
-@key: the value to compare with.
-@field: the field of each record to match.
-@Returns: the number of records deleted.
+@relation: 
+@key: 
+@field: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_relation_destroy ##### -->
 <para>
-Destroys the #GRelation, freeing all memory allocated.
-However, it does not free memory allocated for the
-tuple data, so you should free that first if appropriate.
+
 </para>
 
-@relation: a #GRelation.
+@relation: 
 
 
 <!-- ##### FUNCTION g_relation_print ##### -->
 <para>
-Outputs information about all records in a #GRelation, as well as the indexes.
-It is for debugging.
+
 </para>
 
-@relation: a #GRelation.
+@relation: 
 
 
 <!-- ##### STRUCT GTuples ##### -->
 <para>
-The #GTuples struct is used to return records (or tuples) from the
-#GRelation by g_relation_select().
-It only contains one public member - the number of records that matched.
-To access the matched records, you must use g_tuples_index().
+
 </para>
 
 @len: 
 
 <!-- ##### FUNCTION g_tuples_destroy ##### -->
 <para>
-Frees the records which were returned by g_relation_select().
-This should always be called after g_relation_select() when you are
-finished with the records.
-The records are not removed from the #GRelation.
+
 </para>
 
-@tuples: the tuple data to free.
+@tuples: 
 
 
 <!-- ##### FUNCTION g_tuples_index ##### -->
 <para>
-Gets a field from the records returned by g_relation_select().
-It returns the given field of the record at the given index.
-The returned value should not be changed.
+
 </para>
 
-@tuples: the tuple data, returned by g_relation_select().
-@index: the index of the record.
-@field: the field to return.
-@Returns: the field of the record.
+@tuples: 
+@index: 
+@field: 
+@Returns: 
 
 
index 9940cc028b0c180cb620405bbdb5dd8aed4e8e50..0b42f475a32fd63db99e9d8706a1d650c08f811c 100644 (file)
@@ -2,41 +2,23 @@
 Lexical Scanner
 
 <!-- ##### SECTION Short_Description ##### -->
-a general purpose lexical scanner.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GScanner and its associated functions provide a general purpose
-lexical scanner.
-</para>
-<para>
-FIXME: really needs an example and more detail, but I don't completely
-understand it myself. Look at gtkrc.c for some code using the scanner.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GScanner ##### -->
 <para>
-The data structure representing a lexical scanner.
-</para>
-<para>
-You should set input_name after creating the scanner, since it is used
-by the default message handler when displaying warnings and errors.
-If you are scanning a file, the file name would be a good choice.
-</para>
-<para>
-The <structfield>user_data</structfield> and
-<structfield>derived_data</structfield> fields are not used.
-If you need to associate extra data with the scanner you can place them here.
-</para>
-<para>
-If you want to use your own message handler you can set the
-<structfield>msg_handler</structfield> field. The type of the message
-handler function is declared by #GScannerMsgFunc.
+
 </para>
 
 @user_data: 
@@ -63,50 +45,16 @@ handler function is declared by #GScannerMsgFunc.
 
 <!-- ##### FUNCTION g_scanner_new ##### -->
 <para>
-Creates a new #GScanner.
-The @config_templ structure specifies the initial settings of the scanner,
-which are copied into the #GScanner <structfield>config</structfield> field.
-If you pass NULL then the default settings are used.
-(See g_scanner_config_template in gscanner.c for the defaults.)
+
 </para>
 
-@config_templ: the initial scanner settings.
-@Returns: the new #GScanner.
+@config_templ: 
+@Returns: 
 
 
 <!-- ##### STRUCT GScannerConfig ##### -->
 <para>
-Specifies the #GScanner settings.
-</para>
-<para>
-<structfield>cset_skip_characters</structfield> specifies which characters
-should be skipped by the scanner (the default is the whitespace characters:
-space, tab, carriage-return and line-feed).
-</para>
-<para>
-<structfield>cset_identifier_first</structfield> specifies the characters
-which can start identifiers.
-(the default is #G_CSET_a_2_z, "_", and #G_CSET_A_2_Z).
-</para>
-<para>
-<structfield>cset_identifier_nth</structfield> specifies the characters
-which can be used in identifiers, after the first character.
-The default is #G_CSET_a_2_z, "_0123456789", #G_CSET_A_2_Z, #G_CSET_LATINS,
-#G_CSET_LATINC.
-</para>
-<para>
-<structfield>cpair_comment_single</structfield> specifies the characters
-at the start and end of single-line comments. The default is "#\n" which
-means that single-line comments start with a '#' and continue until a '\n'
-(end of line).
-</para>
-<para>
-<structfield>case_sensitive</structfield> specifies if symbols are
-case sensitive.
-</para>
-<para>
-The rest of the fields are flags which turn features on or off.
-FIXME: should describe these.
+
 </para>
 
 @cset_skip_characters: 
@@ -137,11 +85,11 @@ FIXME: should describe these.
 
 <!-- ##### FUNCTION g_scanner_input_file ##### -->
 <para>
-Prepares to scan a file.
+
 </para>
 
-@scanner: a #GScanner.
-@input_fd: a file descriptor.
+@scanner: 
+@input_fd: 
 
 
 <!-- ##### FUNCTION g_scanner_sync_file_offset ##### -->
@@ -154,122 +102,105 @@ Prepares to scan a file.
 
 <!-- ##### FUNCTION g_scanner_stat_mode ##### -->
 <para>
-Gets the file attributes.
-This is the <structfield>st_mode</structfield> field from the
-<structname>stat</structname> structure. See the <function>stat()</function>
-documentation.
+
 </para>
 
-@filename: the file name.
-@Returns: the file attributes.
+@filename: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_input_text ##### -->
 <para>
-Prepares to scan a text buffer.
+
 </para>
 
-@scanner: a #GScanner.
-@text: the text buffer to scan.
-@text_len: the length of the text buffer.
+@scanner: 
+@text: 
+@text_len: 
 
 
 <!-- ##### FUNCTION g_scanner_peek_next_token ##### -->
 <para>
-Gets the next token, without removing it from the input stream.
-The token data is placed in the
-<structfield>next_token</structfield>,
-<structfield>next_value</structfield>,
-<structfield>next_line</structfield>, and
-<structfield>next_position</structfield> fields of the #GScanner structure.
+
 </para>
 
-@scanner: a #GScanner.
-@Returns: the type of the token.
+@scanner: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_get_next_token ##### -->
 <para>
-Gets the next token, removing it from the input stream.
-The token data is placed in the
-<structfield>token</structfield>,
-<structfield>value</structfield>,
-<structfield>line</structfield>, and
-<structfield>position</structfield> fields of the #GScanner structure.
+
 </para>
 
-@scanner: a #GScanner.
-@Returns: the type of the token.
+@scanner: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_cur_line ##### -->
 <para>
-Gets the current line in the input stream (counting from 1).
+
 </para>
 
-@scanner: a #GScanner.
-@Returns: the current line.
+@scanner: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_cur_position ##### -->
 <para>
-Gets the current position in the current line (counting from 0).
+
 </para>
 
-@scanner: a #GScanner.
-@Returns: the current position on the line.
+@scanner: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_cur_token ##### -->
 <para>
-Gets the current token type.
-This is simply the <structfield>token</structfield> field in the #GScanner
-structure.
+
 </para>
 
-@scanner: a #GScanner.
-@Returns: the current token type.
+@scanner: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_cur_value ##### -->
 <para>
-Gets the current token value.
-This is simply the <structfield>value</structfield> field in the #GScanner
-structure.
+
 </para>
 
-@scanner: a #GScanner.
-@Returns: the current token value.
+@scanner: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_eof ##### -->
 <para>
-Returns TRUE if the scanner has reached the end of the file or text buffer.
+
 </para>
 
-@scanner: a #GScanner.
-@Returns: TRUE if the scanner has reached the end of the file or text buffer.
+@scanner: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_set_scope ##### -->
 <para>
-Sets the current scope.
+
 </para>
 
-@scanner: a #GScanner.
-@scope_id: the new scope id.
-@Returns: the old scope id.
+@scanner: 
+@scope_id: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_scanner_scope_add_symbol ##### -->
 <para>
-Adds a symbol to the given scope.
+
 </para>
 
-@scanner: a #GScanner.
-@scope_id: the scope id.
-@symbol: the symbol to add.
-@value: the value of the symbol.
+@scanner: 
+@scope_id: 
+@symbol: 
+@value: 
 
 
 <!-- ##### FUNCTION g_scanner_scope_foreach_symbol ##### -->
@@ -281,8 +212,6 @@ Adds a symbol to the given scope.
 @scope_id: 
 @func: 
 @user_data: 
-<!-- # Unused Parameters # -->
-@func_data: 
 
 
 <!-- ##### FUNCTION g_scanner_scope_lookup_symbol ##### -->
@@ -334,42 +263,36 @@ Adds a symbol to the given scope.
 
 <!-- ##### FUNCTION g_scanner_warn ##### -->
 <para>
-Outputs a warning message, via the #GScanner message handler.
+
 </para>
 
-@scanner: a #GScanner.
-@format: the message format. See the <function>printf()</function>
-documentation.
-@Varargs: the parameters to insert into the format string.
+@scanner: 
+@format: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_scanner_error ##### -->
 <para>
-Outputs an error message, via the #GScanner message handler.
+
 </para>
 
-@scanner: a #GScanner.
-@format: the message format. See the <function>printf()</function>
-documentation.
-@Varargs: the parameters to insert into the format string.
+@scanner: 
+@format: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_scanner_unexp_token ##### -->
 <para>
-Outputs a message resulting from an unexpected token in the input stream.
-FIXME: I don't understand the arguments here.
+
 </para>
 
-@scanner: a #GScanner.
-@expected_token: the expected token.
-@identifier_spec: a string describing the expected type of identifier,
-or NULL to use the default "identifier" string.
-@symbol_spec: a string describing the expected type of identifier,
-or NULL to use the default "symbol" string.
+@scanner: 
+@expected_token: 
+@identifier_spec: 
+@symbol_spec: 
 @symbol_name: 
-@message: a message string to output at the end of the warning/error, or NULL.
-@is_error: if TRUE it is output as an error. If False it is output as a
-warning.
+@message: 
+@is_error: 
 
 
 <!-- ##### USER_FUNCTION GScannerMsgFunc ##### -->
@@ -384,33 +307,31 @@ warning.
 
 <!-- ##### FUNCTION g_scanner_destroy ##### -->
 <para>
-Frees all memory used by the #GScanner.
+
 </para>
 
-@scanner: a #GScanner.
+@scanner: 
 
 
 <!-- ##### ENUM GTokenType ##### -->
 <para>
-The possible types of token returned from each g_scanner_get_next_token() call.
+
 </para>
 
 @G_TOKEN_EOF: 
 @G_TOKEN_LEFT_PAREN: 
-@G_TOKEN_RIGHT_PAREN: 
 @G_TOKEN_LEFT_CURLY: 
 @G_TOKEN_RIGHT_CURLY: 
 
 <!-- ##### UNION GTokenValue ##### -->
 <para>
-A union holding the value of the token.
+
 </para>
 
 
 <!-- ##### ENUM GErrorType ##### -->
 <para>
-The possible errors, used in the <structfield>v_error</structfield> field
-of #GTokenValue, when the token is a G_TOKEN_ERROR.
+
 </para>
 
 @G_ERR_UNKNOWN: 
@@ -424,67 +345,65 @@ of #GTokenValue, when the token is a G_TOKEN_ERROR.
 
 <!-- ##### MACRO G_CSET_a_2_z ##### -->
 <para>
-The set of lower-case ASCII alphabet characters.
-Used for specifying valid identifier characters in #GScannerConfig.
+
 </para>
 
 
 
 <!-- ##### MACRO G_CSET_A_2_Z ##### -->
 <para>
-The set of upper-case ASCII alphabet characters.
-Used for specifying valid identifier characters in #GScannerConfig.
+
+</para>
+
+
+
+<!-- ##### MACRO G_CSET_DIGITS ##### -->
+<para>
+
 </para>
 
 
 
 <!-- ##### MACRO G_CSET_LATINC ##### -->
 <para>
-Part of the set of extended characters in the Latin character sets.
-FIXME: lower case?
-Used for specifying valid identifier characters in #GScannerConfig.
+
 </para>
 
 
 
 <!-- ##### MACRO G_CSET_LATINS ##### -->
 <para>
-Part of the set of extended characters in the Latin character sets.
-FIXME: upper case?
-Used for specifying valid identifier characters in #GScannerConfig.
+
 </para>
 
 
 
 <!-- ##### MACRO g_scanner_add_symbol ##### -->
 <para>
-Adds a symbol to the default scope.
-Deprecated in favour of g_scanner_scope_add_symbol().
+
 </para>
 
-@scanner: a #GScanner.
-@symbol: the symbol to add.
-@value: the value of the symbol.
+@scanner: 
+@symbol: 
+@value: 
 
 
 <!-- ##### MACRO g_scanner_remove_symbol ##### -->
 <para>
-Removes a symbol from the default scope.
-Deprecated in favour of g_scanner_scope_remove_symbol().
+
 </para>
 
-@scanner: a #GScanner.
-@symbol: the symbol to remove.
+@scanner: 
+@symbol: 
 
 
 <!-- ##### MACRO g_scanner_foreach_symbol ##### -->
 <para>
-Calls a function for each symbol in the default scope.
-Deprecated in favour of g_scanner_scope_foreach_symbol().
+
 </para>
 
-@scanner: a #GScanner.
-@func: the function to call with each symbol.
-@data: data to pass to the function.
+@scanner: 
+@func: 
+@data: 
 
 
index 85961aedb4c8629cb21f5e1ed04238135f821222..de24628288e3920dc15494e4c4f2a74150761bd4 100644 (file)
 String Chunks
 
 <!-- ##### SECTION Short_Description ##### -->
-efficient storage of groups of strings.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-String chunks are used to store groups of strings.
-Memory is allocated in blocks, and as strings are added to the #GStringChunk
-they are copied into the next free position in a block. When a block is
-full a new block is allocated.
-</para>
-<para>
-When storing a large number of strings, string chunks are more efficient
-than using g_strdup() since fewer calls to <function>malloc()</function>
-are needed, and less memory is wasted in memory allocation overheads.
-</para>
-<para>
-By adding strings with g_string_chunk_insert_const() it is also possible
-to remove duplicates.
-</para>
-<para>
-To create a new #GStringChunk use g_string_chunk_new().
-</para>
-<para>
-To add strings to a #GStringChunk use g_string_chunk_insert().
-</para>
-<para>
-To add strings to a #GStringChunk, but without duplicating strings which are
-already in the #GStringChunk, use g_string_chunk_insert_const().
-</para>
-<para>
-To free the entire #GStringChunk use g_string_chunk_free().
-It is not possible to free individual strings.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GStringChunk ##### -->
 <para>
-An opaque data structure representing String Chunks.
-It should only be accessed by using the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_string_chunk_new ##### -->
 <para>
-Creates a new #GStringChunk.
+
 </para>
 
-@size: the default size of the blocks of memory which are allocated to store
-the strings. If a particular string is larger than this default size, a larger
-block of memory will be allocated for it.
-@Returns: a new #GStringChunk.
+@size: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_chunk_insert ##### -->
 <para>
-Adds a copy of @string to the #GStringChunk.
-It returns a pointer to the new copy of the string in the #GStringChunk.
-The characters in the string can be changed, if necessary, though you
-should not change anything after the end of the string.
-</para>
-<para>
-Unlike g_string_chunk_insert_const(), this function does not check for
-duplicates. Also strings added with g_string_chunk_insert() will not be
-searched by g_string_chunk_insert_const() when looking for duplicates.
+
 </para>
 
-@chunk: a #GStringChunk.
-@string: the string to add.
-@Returns: a pointer to the copy of @string within the #GStringChunk.
+@chunk: 
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_chunk_insert_const ##### -->
 <para>
-Adds a copy of @string to the #GStringChunk, unless the same string has
-already been added to the #GStringChunk with g_string_chunk_insert_const().
-</para>
-<para>
-This function is useful if you need to copy a large number of strings
-but do not want to waste space storing duplicates. But you must remember
-that there may be several pointers to the same string, and so any changes
-made to the strings should be done very carefully.
-</para>
-<para>
-Note that g_string_chunk_insert_const() will not return a pointer to a string
-added with g_string_chunk_insert(), even if they do match.
+
 </para>
 
-@chunk: a #GStringChunk.
-@string: the string to add.
-@Returns: a pointer to the new or existing copy of @string within the
-#GStringChunk.
+@chunk: 
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_chunk_free ##### -->
 <para>
-Frees all memory allocated by the #GStringChunk.
-After calling g_string_chunk_free() it is not safe to
-access any of the strings which were contained within it.
+
 </para>
 
-@chunk: a #GStringChunk.
+@chunk: 
 
 
index fe8566f37c7fad05e171e98d39bc78e7986e8b0c..2da378827ca850da4300b71a8721e3d141b00e3f 100644 (file)
 String Utility Functions
 
 <!-- ##### SECTION Short_Description ##### -->
-various string-related functions.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-This section describes a number of utility functions for creating,
-duplicating, and manipulating strings.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### FUNCTION g_strdup ##### -->
 <para>
-Duplicates a string.
-The returned string should be freed when no longer needed.
+
 </para>
 
-@str: the string to duplicate.
-@Returns: a newly-allocated copy of @str.
+@str: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strndup ##### -->
 <para>
-Duplicates the first @n characters of a string, returning a newly-allocated
-buffer @n + 1 characters long which will always be null-terminated.
-If @str is less than @n characters long the buffer is padded with nulls.
-The returned value should be freed when no longer needed.
+
 </para>
 
-@str: the string to duplicate part of.
-@n: the maximum number of characters to copy from @str.
-@Returns: a newly-allocated buffer containing the first @n characters of @str,
-null-terminated.
+@str: 
+@n: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strnfill ##### -->
 <para>
-Creates a new string @length characters long filled with @fill_char.
-The returned string should be freed when no longer needed.
+
 </para>
 
-@length: the length of the new string.
-@fill_char: the character to fill the string with.
-@Returns: a newly-allocated string filled the @fill_char.
+@length: 
+@fill_char: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_strdup_printf ##### -->
+<!-- ##### FUNCTION g_strlcpy ##### -->
 <para>
-Similar to the standard C <function>sprintf()</function> function
-but safer, since it calculates the maximum space required and allocates
-memory to hold the result.
-The returned string should be freed when no longer needed.
+
 </para>
 
-@format: the standard <function>sprintf()</function> format string.
-@Varargs: the parameters to insert into the format string.
-@Returns: a newly-allocated string holding the result.
+@dest: 
+@src: 
+@dest_size: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_strdup_vprintf ##### -->
+<!-- ##### FUNCTION g_strlcat ##### -->
 <para>
-Similar to the standard C <function>vsprintf()</function> function
-but safer, since it calculates the maximum space required and allocates
-memory to hold the result.
-The returned string should be freed when no longer needed.
+
 </para>
 
-@format: the standard <function>sprintf()</function> format string.
-@args: the list of parameters to insert into the format string.
-@Returns: a newly-allocated string holding the result.
+@dest: 
+@src: 
+@dest_size: 
+@Returns: 
 
 
-<!-- ##### FUNCTION g_snprintf ##### -->
+<!-- ##### FUNCTION g_strdup_printf ##### -->
 <para>
-A safer form of the standard <function>sprintf()</function> function.
-The output is guaranteed to not exceed @n characters (including the
-terminating NULL character), so it is easy to ensure that a buffer overflow
-cannot occur.
+
 </para>
+
+@format: 
+@Varargs: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_strdup_vprintf ##### -->
 <para>
-See also g_strdup_printf().
+
 </para>
-<note>
+
+@format: 
+@args: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_snprintf ##### -->
 <para>
-In versions of GLib prior to 1.2.3, this function may return -1 if the output
-was truncated, and the truncated string may not be NULL-terminated.
+
 </para>
-</note>
 
-@string: the buffer to hold the output.
-@n: the maximum number of characters to produce (including the terminating null
-character).
-@format: the format string. See the <function>sprintf()</function>
-documentation.
-@Varargs: the arguments to insert in the output.
-@Returns: the length of the output string.
+@string: 
+@n: 
+@format: 
+@Varargs: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_vsnprintf ##### -->
 <para>
-A safer form of the standard <function>vsprintf()</function> function.
-The output is guaranteed to not exceed @n characters (including the
-terminating NULL character), so it is easy to ensure that a buffer overflow
-cannot occur.
-</para>
-<para>
-See also g_strdup_vprintf().
-</para>
-<note>
-<para>
-In versions of GLib prior to 1.2.3, this function may return -1 if the output
-was truncated, and the truncated string may not be NULL-terminated.
+
 </para>
-</note>
 
-@string: the buffer to hold the output.
-@n: the maximum number of characters to produce (including the terminating null
-character).
-@format: the format string. See the <function>sprintf()</function>
-documentation.
-@args: the list of arguments to insert in the output.
-@Returns: the length of the output string.
+@string: 
+@n: 
+@format: 
+@args: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_printf_string_upper_bound ##### -->
 <para>
-Calculates the maximum space needed to store the output of the
-<function>sprintf()</function> function.
+
 </para>
 
-@format: the format string. See the <function>printf()</function>
-documentation.
-@args: the parameters to be inserted into the format string.
-@Returns: the maximum space needed to store the formatted string.
+@format: 
+@args: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strup ##### -->
 <para>
-Converts a string to upper case.
+
 </para>
 
-@string: the string to convert.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strdown ##### -->
 <para>
-Converts a string to lower case.
+
 </para>
 
-@string: the string to convert.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strcasecmp ##### -->
 <para>
-A case-insensitive string comparison, corresponding to the standard
-<function>strcasecmp()</function> function on platforms which support it.
+
 </para>
 
-@s1: a string.
-@s2: a string to compare with @s1.
-@Returns: 0 if the strings match, a negative value if @s1 < @s2, or a positive
-value if @s1 > @s2.
+@s1: 
+@s2: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strncasecmp ##### -->
 <para>
-A case-insensitive string comparison, corresponding to the standard
-<function>strncasecmp()</function> function on platforms which support it.
-It is similar to g_strcasecmp() except it only compares the first @n characters
-of the strings.
+
 </para>
 
-@s1: a string.
-@s2: a string to compare with @s1.
-@n: the maximum number of characters to compare.
-@Returns: 0 if the strings match, a negative value if @s1 < @s2, or a positive
-value if @s1 > @s2.
+@s1: 
+@s2: 
+@n: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strreverse ##### -->
 <para>
-Reverses all of the characters in a string.
-For example, g_strreverse ("abcdef") would be "fedcba".
+
 </para>
 
-@string: the string to reverse.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strtod ##### -->
 <para>
-Converts a string to a gdouble value.
-It calls the standard <function>strtod()</function> function
-to handle the conversion, but if the string is not completely converted
-it attempts the conversion again in the "C" locale, and returns the best
-match.
+
 </para>
 
-@nptr: the string to convert to a numeric value.
-@endptr: if non-NULL, it returns the character after the last character used
-in the conversion.
-@Returns: the gdouble value.
+@nptr: 
+@endptr: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strchug ##### -->
 <para>
-Removes leading whitespace from a string, by moving the rest of the
-characters forward.
+
 </para>
 
-@string: a string to remove the leading whitespace from.
-@Returns: @string.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strchomp ##### -->
 <para>
-Removes trailing whitespace from a string.
+
 </para>
 
-@string: a string to remove the trailing whitespace from.
-@Returns: @string.
+@string: 
+@Returns: 
 
 
 <!-- ##### MACRO g_strstrip ##### -->
 <para>
-Removes leading and trailing whitespace from a string.
+
 </para>
 
-@string: a string to remove the leading and trailing whitespace from.
+@string: 
 
 
 <!-- ##### FUNCTION g_strdelimit ##### -->
 <para>
-Converts any delimiter characters in @string to @new_delimiter.
-Any characters in @string which are found in @delimiters are changed
-to the @new_delimiter character.
+
 </para>
 
-@string: the string to convert.
-@delimiters: a string containing the current delimiters, or NULL to use the
-standard delimiters defined in #G_STR_DELIMITERS.
-@new_delimiter: the new delimiter character.
+@string: 
+@delimiters: 
+@new_delimiter: 
 @Returns: 
 
 
 <!-- ##### MACRO G_STR_DELIMITERS ##### -->
 <para>
-The standard delimiters, used in #g_strdelimit.
+
 </para>
 
 
 
 <!-- ##### FUNCTION g_strescape ##### -->
 <para>
-Escapes all backslash characters, '\' in a string, by inserting a second '\'.
+
+</para>
+
+@source: 
+@exceptions: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_strcompress ##### -->
+<para>
+
 </para>
 
-@string: a string to escape the backslashes in.
-@Returns: a newly allocated copy of @string, with all backslash characters
-escaped using a second backslash.
+@source: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_strcanon ##### -->
+<para>
+
+</para>
+
+@string: 
+@valid_chars: 
+@subsitutor: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strsplit ##### -->
 <para>
-Splits a string into a maximum of @max_tokens pieces, using the given
-@delimiter. If @max_tokens is reached, the final string in the returned
-string array contains the remainder of @string.
+
 </para>
 
-@string: a string to split.
-@delimiter: a string which specifies the places at which to split the string.
-The delimiter is not included in any of the resulting strings, unless
-max_tokens is reached.
-@max_tokens: the maximum number of strings to split @string into. If this is
-less than 1, the string is split completely.
-@Returns: a newly-allocated array of strings. Use g_strfreev() to free it.
+@string: 
+@delimiter: 
+@max_tokens: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strfreev ##### -->
 <para>
-Frees a NULL-terminated array of strings, and the array itself.
+
 </para>
 
-@str_array: a NULL-terminated array of strings to free.
+@str_array: 
 
 
 <!-- ##### FUNCTION g_strconcat ##### -->
 <para>
-Concatenates all of the given strings into one long string.
-The returned string should be freed when no longer needed.
+
 </para>
 
-@string1: The first string to add, which must not be NULL.
-@Varargs: a NULL-terminated list of strings to append to the string.
-@Returns: a newly-allocated string containing all the string arguments.
+@string1: 
+@Varargs: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strjoin ##### -->
 <para>
-Joins a number of strings together to form one long string, with the optional
-@separator inserted between each of them.
+
 </para>
 
-@separator: a string to insert between each of the strings, or NULL.
-@Varargs: a NULL-terminated list of strings to join.
-@Returns: a newly-allocated string containing all of the strings joined
-together, with @separator between them.
+@separator: 
+@Varargs: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strjoinv ##### -->
 <para>
-Joins a number of strings together to form one long string, with the optional
-@separator inserted between each of them.
+
 </para>
 
-@separator: a string to insert between each of the strings, or NULL.
-@str_array: a NULL-terminated array of strings to join.
-@Returns: a newly-allocated string containing all of the strings joined
-together, with @separator between them.
+@separator: 
+@str_array: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strerror ##### -->
 <para>
-Returns a string corresponding to the given error code, e.g. "no such process".
-This function is included since not all platforms support the 
-<function>strerror()</function> function.
+
 </para>
 
-@errnum: the system error number. See the standard C %errno
-documentation.
-@Returns: a string describing the error code.
-If the error code is unknown, it returns "unknown error (&lt;code&gt;)".
-The string can only be used until the next call to g_strerror.
+@errnum: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_strsignal ##### -->
 <para>
-Returns a string describing the given signal, e.g. "Segmentation fault".
-This function is included since not all platforms support the
-<function>strsignal()</function> function.
+
 </para>
 
-@signum: the signal number. See the <literal>signal</literal>
-documentation.
-@Returns: a string describing the signal.
-If the signal is unknown, it returns "unknown signal (&lt;signum&gt;)".
-The string can only be used until the next call to g_strsignal.
+@signum: 
+@Returns: 
 
 
index f621d180ba01a78e8746e65f479b59deab255be3..c9167c23e1efd03e03d0e69984e24db6536879a3 100644 (file)
@@ -2,35 +2,23 @@
 Strings
 
 <!-- ##### SECTION Short_Description ##### -->
-text buffers which grow automatically as text is added.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-A #GString is similar to a standard C string, except that it grows
-automatically as text is appended or inserted.
-</para>
-<para>
-The space allocated for the string is always a power of two, so as the
-string grows it will occupy 2, 4, 8, 16, 32, 64, 128 etc. characters.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GString ##### -->
 <para>
-The #GString struct contains the public fields of a #GString.
-The <structfield>str</structfield> field points to the character data.
-It may move as text is added.
-The <structfield>len</structfield> field contains the length of the string,
-not including the terminating null character.
-</para>
-<para>
-The str field is zero-terminated and so can be used as an ordinary C
-string. But it may be moved when text is appended or inserted into the
-string.
+
 </para>
 
 @str: 
@@ -38,172 +26,213 @@ string.
 
 <!-- ##### FUNCTION g_string_new ##### -->
 <para>
-Creates a new #GString, initialized with the given string.
+
 </para>
 
-@init: the initial text to copy into the string.
-@Returns: the new #GString.
+@init: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_sized_new ##### -->
 <para>
-Creates a new GString, with enough space for @dfl_size characters.
-This is useful if you are going to add a lot of text to the string and
-don't want it to be reallocated too often.
+
 </para>
 
-@dfl_size: the default size of the space allocated to hold the string.
-@Returns: the new #GString.
+@dfl_size: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_assign ##### -->
 <para>
-Copies the characters from one #GString into another, destroying any previous
-contents. It is rather like the standard strcpy() function, except that
-you do not have to worry about having enough space to copy the string.
+
 </para>
 
-@lval: the destination #GString. Its current contents are destroyed.
-@rval: the source #GString.
-@Returns: the destination #GString.
+@string: 
+@rval: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_sprintf ##### -->
 <para>
-Writes a formatted string into a #GString.
-This is similar to the standard <function>sprintf()</function> function,
-except that the GString buffer automatically expands to contain the results.
-The previous contents of the GString are destroyed.
+
 </para>
 
-@string: a #GString.
-@format: the string format. See the <function>sprintf()</function>
-documentation.
-@Varargs: the parameters to insert into the format string.
+@string: 
+@format: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_string_sprintfa ##### -->
 <para>
-Appends a formatted string onto the end of a #GString.
-This function is is similar to g_string_sprintf() except that
-the text is appended to the GString.
+
 </para>
 
-@string: a #GString.
-@format: the string format. See the <function>sprintf()</function>
-documentation.
-@Varargs: the parameters to insert into the format string.
+@string: 
+@format: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_string_append ##### -->
 <para>
-Adds a string onto the end of a #GString, expanding it if necessary.
+
 </para>
 
-@string: a #GString.
-@val: the string to append onto the end of the #GString.
-@Returns: the #GString.
+@string: 
+@val: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_append_c ##### -->
 <para>
-Adds a character onto the end of a #GString, expanding it if necessary.
+
 </para>
 
-@string: a #GString.
-@c: the character to append onto the end of the #GString.
-@Returns: the #GString.
+@string: 
+@c: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_append_len ##### -->
+<para>
+
+</para>
+
+@string: 
+@val: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_prepend ##### -->
 <para>
-Adds a string on to the start of a #GString, expanding it if necessary.
+
 </para>
 
-@string: a #GString.
-@val: the string to prepend on the start of the #GString.
-@Returns: the #GString.
+@string: 
+@val: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_prepend_c ##### -->
 <para>
-Adds a character onto the start of a #GString, expanding it if necessary.
+
 </para>
 
-@string: a #GString.
-@c: the character to prepend on the start of the #GString.
-@Returns: the #GString.
+@string: 
+@c: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_prepend_len ##### -->
+<para>
+
+</para>
+
+@string: 
+@val: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_insert ##### -->
 <para>
-Inserts a copy of a string into a #GString, expanding it if necessary.
+
 </para>
 
-@string: a #GString.
-@pos: the position to insert the copy of the string.
-@val: the string to insert.
-@Returns: the #GString.
+@string: 
+@pos: 
+@val: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_insert_c ##### -->
 <para>
-Inserts a character into a #GString, expanding it if necessary.
+
 </para>
 
-@string: a #GString.
-@pos: the position to insert the character.
-@c: the character to insert.
-@Returns: the #GString.
+@string: 
+@pos: 
+@c: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_insert_len ##### -->
+<para>
+
+</para>
+
+@string: 
+@pos: 
+@val: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_erase ##### -->
 <para>
-Removes @len characters from a #GString, starting at position @pos.
-The rest of the #GString is shifted down to fill the gap.
+
 </para>
 
-@string: a #GString.
-@pos: the position of the characters to remove.
-@len: the number of characters to remove.
-@Returns: the #GString.
+@string: 
+@pos: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_truncate ##### -->
 <para>
-Cuts off the end of the GString, leaving the first @len characters.
+
 </para>
 
-@string: a #GString.
-@len: the new size of the #GString.
-@Returns: the #GString.
+@string: 
+@len: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_free ##### -->
 <para>
-Frees the memory allocated for the #GString.
-If free_segment is TRUE it also frees the character data.
+
 </para>
 
-@string: a #GString.
-@free_segment: if TRUE the actual character data is freed as well.
+@string: 
+@free_segment: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_up ##### -->
 <para>
-Converts a #GString to upper case.
+
 </para>
 
-@string: a #GString.
-@Returns: the #GString.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_down ##### -->
 <para>
-Converts a #GString to lower case.
+
+</para>
+
+@string: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_hash ##### -->
+<para>
+
+</para>
+
+@str: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_equal ##### -->
+<para>
+
 </para>
 
-@string: a #GString.
-@Returns: the #GString.
+@v: 
+@v2: 
+@Returns: 
 
 
index 0b577d17aa3f004e244290fe824164b4c310f2f2..dc1c2456118e581317d539359bcd341b5fb43c54 100644 (file)
 <!-- ##### SECTION Title ##### -->
-
 Threads
 
 <!-- ##### SECTION Short_Description ##### -->
 
-thread abstraction; including mutexes, conditions and thread private data.
 
 <!-- ##### SECTION Long_Description ##### -->
-
 <para>
-Threads act almost like processes, but unlike processes all threads of
-one process share the same memory. This is good, as it provides easy
-communication between the involved threads via this shared memory, and
-it is bad, because strange things (so called Heisenbugs) might happen,
-when the program is not carefully designed. Especially bad is, that due
-to the concurrent nature of threads no assumptions on the order of
-execution of different threads can be done unless explictly forced by
-the programmer through synchronization primitives.
-</para>
 
-<para>
-The aim of the thread related functions in GLib is to provide a
-portable means for writing multithread safe software. There are
-primitives for mutexes to protect the access to portions of memory
-(#GMutex, #GStaticMutex, #G_LOCK_DEFINE and friends), there are
-primitives for condition variables to allow synchronization of threads
-(#GCond) and finally there are primitives for thread-private data,
-that every thread has a private instance of (#GPrivate,
-#GStaticPrivate).
 </para>
 
-<para>
-Currently there is only as much thread support included in GLib as is
-necessary to make GLib itself multithread safe. Version 1.4 of GLib
-will contain full thread support. For now the most portable way to
-create threads is to require the macro #G_THREADS_IMPL_POSIX to be
-defined and use POSIX threads then. This will work on almost all
-platforms (except most notably Solaris and DCE threads.).
-</para>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
-<!-- ##### MACRO G_THREADS_ENABLED ##### -->
 
+<!-- ##### MACRO G_THREADS_ENABLED ##### -->
 <para>
-This macro is defined, if GLib was compiled with thread support. This
-does not necessarily mean, that there is a thread implementation
-available, but the infrastructure is in place and once you provide a
-thread implementation to g_thread_init(), GLib will be multithread
-safe. It isn't and can't be, if #G_THREADS_ENABLED is not defined.
+
 </para>
 
 
 
 <!-- ##### MACRO G_THREADS_IMPL_POSIX ##### -->
-
 <para>
-This macro is defined, if POSIX style threads are used.
+
 </para>
 
 
 
 <!-- ##### MACRO G_THREADS_IMPL_SOLARIS ##### -->
-
 <para>
-This macro is defined, if the SOLARIS thread system is used.
+
 </para>
 
 
 
 <!-- ##### MACRO G_THREADS_IMPL_NONE ##### -->
-
 <para>
-This macro is defined, if no thread implementation is used. You can
-however provide one to g_thread_init() to make GLib multithread safe.
+
 </para>
 
 
 
-<!-- ##### STRUCT GThreadFunctions ##### -->
+<!-- ##### MACRO G_THREAD_ERROR ##### -->
+<para>
+
+</para>
+
+
 
+<!-- ##### ENUM GThreadError ##### -->
 <para>
-This function table is used by g_thread_init() to initialize the
-thread system. The functions in that table are directly used by their
-g_* prepended counterparts, that are described here, e.g. if you call
-g_mutex_new() then mutex_new() from the table provided to
-g_thread_init() will be called.
+
 </para>
 
-<note>
+@G_THREAD_ERROR_AGAIN: 
+
+<!-- ##### STRUCT GThreadFunctions ##### -->
 <para>
-This struct should only be used, if you know, what you are doing.
+
 </para>
-</note>
 
 @mutex_new: 
 @mutex_lock: 
@@ -111,818 +77,530 @@ This struct should only be used, if you know, what you are doing.
 @private_new: 
 @private_get: 
 @private_set: 
+@thread_create: 
+@thread_yield: 
+@thread_join: 
+@thread_exit: 
+@thread_set_priority: 
+@thread_self: 
 
 <!-- ##### FUNCTION g_thread_init ##### -->
-
-<para>
-Before you use a thread related function in GLib, you should
-initialize the thread system. This is done by calling
-g_thread_init(). Most of the time you will only have to call
-g_thread_init(NULL). 
-</para>
-
-<note>
-<para>
-You should only call g_thread_init() with a non-NULL parameter, if you
-really know, what you are doing.
-</para>
-</note>
-
-<note>
 <para>
-g_thread_init() must not be called directly or indirectly as a
-callback from GLib.
-</para>
-</note>
 
-<para>
-g_thread_init() might only be called once. On the second call
-it will abort with an error. If you want to make sure, that the thread
-system is initialized, you can do that too:
 </para>
 
-<para>
-<informalexample>
-<programlisting>
-if (!g_thread_supported ()) g_thread_init (NULL);
-</programlisting>
-</informalexample>
-</para>
+@vtable: 
 
-<para>
-After that line either the thread system is initialized or the program
-will abort, if no thread system is available in GLib, i.e. either
-#G_THREADS_ENABLED is not defined or #G_THREADS_IMPL_NONE is defined.
-</para>
 
+<!-- ##### FUNCTION g_thread_supported ##### -->
 <para>
-If no thread system is available and @vtable is NULL or if not all
-elements of @vtable are non-NULL, then g_thread_init() will abort.
-</para>
 
-<note>
-<para>
-To use g_thread_init() in your program, you have to link with the
-libraries, that the command "glib-config --libs gthread" outputs. This
-is not the case for all the other thread related functions of
-GLib. Those can be used without having to link with the thread
-libraries.
 </para>
-</note>
 
-@vtable: a function table of type #GThreadFunctions, that provides the
-entry points to the thread system to be used.
+@Returns: 
 
 
-<!-- ##### MACRO g_thread_supported ##### -->
+<!-- ##### USER_FUNCTION GThreadFunc ##### -->
 <para>
-This function returns, whether the thread system is initialized or
-not.
-</para>
 
-<note>
-<para>
-This function is actually a macro. Apart from taking the address of it
-you can however use it as if it was a function.
 </para>
-</note>
-
-@Returns: TRUE, if the thread system is initialized.
 
+@value: 
 
-<!-- ##### STRUCT GMutex ##### -->
 
+<!-- ##### ENUM GThreadPriority ##### -->
 <para>
-The #GMutex struct is an opaque data structure to represent a mutex
-(mutual exclusion). It can be used to protect data against shared
-access. Take for example the following function:
 
-<example>
-<title>A function which will not work in a threaded environment</title>
-<programlisting>
-  int give_me_next_number ()
-  {
-    static int current_number = 0;
-
-    /* now do a very complicated calculation to calculate the new number,
-       this might for example be a random number generator */
-    current_number = calc_next_number (current_number); 
-    return current_number;
-  }
-</programlisting>
-</example>
 </para>
 
-<para>
-It is easy to see, that this won't work in a multithreaded
-application. There current_number must be protected against shared
-access. A first naive implementation would be:
-</para>
+@G_THREAD_PRIORITY_LOW: 
+@G_THREAD_PRIORITY_NORMAL: 
+@G_THREAD_PRIORITY_HIGH: 
+@G_THREAD_PRIORITY_URGENT: 
 
+<!-- ##### STRUCT GThread ##### -->
 <para>
-<example>
-<title>The wrong way to write a thread-safe function</title>
-<programlisting>
-  int give_me_next_number ()
-  {
-    static int current_number = 0;
-    int ret_val;
-    static GMutex * mutex = NULL;
 
-    if (!mutex)
-      mutex = g_mutex_new ();
-    g_mutex_lock (mutex);
-    ret_val = current_number = calc_next_number (current_number); 
-    g_mutex_unlock (mutex);
-    return ret_val;
-  }
-</programlisting>
-</example>
 </para>
 
-<para>
-This looks like it would work, but there is a race condition while
-constructing the mutex and this code can't work reliable. So please do
-not use such constructs in your own programs. One working solution is:
-</para>
+@priority: 
+@bound: 
+@joinable: 
 
+<!-- ##### FUNCTION g_thread_create ##### -->
 <para>
-<example>
-<title>A correct thread-safe function</title>
-<programlisting>
-  static GMutex *give_me_next_number_mutex = NULL;
 
-  /* this function must be called before any call to give_me_next_number ()
-     it must be called exactly once. */
-  void init_give_me_next_number () 
-  {
-    g_assert (give_me_next_number_mutex == NULL);
-    give_me_next_number_mutex = g_mutex_new ();
-  }
+</para>
 
-  int give_me_next_number ()
-  {
-    static int current_number = 0;
-    int ret_val;
+@thread_func: 
+@arg: 
+@stack_size: 
+@joinable: 
+@bound: 
+@priority: 
+@error: 
+@Returns: 
 
-    g_mutex_lock (give_me_next_number_mutex);
-    ret_val = current_number = calc_next_number (current_number); 
-    g_mutex_unlock (give_me_next_number_mutex);
-    return ret_val;
-  }
-</programlisting>
-</example>
-</para>
 
+<!-- ##### FUNCTION g_thread_self ##### -->
 <para>
-#GStaticMutex provides a simpler and safer way of doing this.
-</para>
 
-<para>
-A #GMutex should only be accessed via the following functions.
 </para>
 
-<note>
+@Returns: 
+
+
+<!-- ##### FUNCTION g_thread_join ##### -->
 <para>
-All of the g_mutex_* functions are actually macros. Apart from taking
-the addresses of them, you can however use them as if they were functions.
+
 </para>
-</note>
 
+@thread: 
 
-<!-- ##### MACRO g_mutex_new ##### -->
 
+<!-- ##### FUNCTION g_thread_set_priority ##### -->
 <para>
-Creates a new #GMutex. 
-</para>
 
-<note>
-<para>
-This function will abort, if g_thread_init() has not been called yet.
 </para>
-</note>
-
-@Returns: a new #GMutex.
 
+@thread: 
+@priority: 
 
-<!-- ##### MACRO g_mutex_lock ##### -->
 
+<!-- ##### MACRO g_thread_yield ##### -->
 <para>
-Locks the #GMutex. If the #GMutex is already locked by another thread,
-the current thread will block until the #GMutex is unlocked by the
-other thread.
-</para>
 
-<para>
-This function can also be used, if g_thread_init() has not yet been
-called and will do nothing then.
 </para>
 
-<note>
+
+
+<!-- ##### MACRO g_thread_exit ##### -->
 <para>
-#GMutex is not guaranteed to be recursive, i.e. a thread might block,
-if it already has locked the #GMutex. It will deadlock then, of
-course.
-</para>
-</note>
 
-@mutex: a #GMutex.
+</para>
 
 
-<!-- ##### MACRO g_mutex_trylock ##### -->
 
+<!-- ##### STRUCT GMutex ##### -->
 <para>
-Tries to lock the #GMutex. If the #GMutex is already locked by another
-thread, it immediately returns FALSE. Otherwise it locks the #GMutex
-and returns TRUE.
+
 </para>
 
+
+<!-- ##### FUNCTION g_mutex_new ##### -->
 <para>
-This function can also be used, if g_thread_init() has not yet been
-called and will immediately return TRUE then.
-</para>
 
-@mutex: a #GMutex.
-@Returns: TRUE, if the #GMutex could be locked.
+</para>
 
+@Returns: 
 
-<!-- ##### MACRO g_mutex_unlock ##### -->
 
+<!-- ##### FUNCTION g_mutex_lock ##### -->
 <para>
-Unlocks the #GMutex. If another thread is blocked in a g_mutex_lock()
-call, it will be woken and can lock the #GMutex itself. This function
-can also be used, if g_thread_init() has not yet been called and will
-do nothing then.
-</para>
 
-@mutex: a #GMutex.
+</para>
 
+@mutex: 
 
-<!-- ##### MACRO g_mutex_free ##### -->
 
+<!-- ##### FUNCTION g_mutex_trylock ##### -->
 <para>
-Destroys the #GMutex.
-</para>
 
-@mutex: a #GMutex.
+</para>
 
+@mutex: 
+@Returns: 
 
-<!-- ##### STRUCT GStaticMutex ##### -->
 
+<!-- ##### FUNCTION g_mutex_unlock ##### -->
 <para>
-A #GStaticMutex works like a #GMutex, but it has one significant
-advantage. It doesn't need to be created at run-time like a #GMutex,
-but can be defined at compile-time. Here is a shorter, easier and
-safer version of our give_me_next_number() example:
+
 </para>
 
-<para>
-<example>
-<title>Using GStaticMutex to simplify thread-safe programming</title>
-<programlisting>
-  int give_me_next_number ()
-  {
-    static int current_number = 0;
-    int ret_val;
-    static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+@mutex: 
 
-    g_static_mutex_lock (&amp;mutex);
-    ret_val = current_number = calc_next_number (current_number); 
-    g_static_mutex_unlock (&amp;mutex);
-    return ret_val;
-  }
-</programlisting>
-</example>
-</para>
 
+<!-- ##### FUNCTION g_mutex_free ##### -->
 <para>
-Even though #GStaticMutex is not opaque, it should only be used with
-the following functions, as it is defined differently on different
-platforms.
-</para>
 
-<para>All of the g_static_mutex_* functions can also be used, if
-g_thread_init() has not yet.
 </para>
 
-<note>
+@mutex: 
+
+
+<!-- ##### STRUCT GStaticMutex ##### -->
 <para>
-All of the g_static_mutex_* functions are actually macros. Apart from
-taking the addresses of them, you can however use them as if they were
-functions.
+
 </para>
-</note>
 
-@runtime_mutex: 
 
 <!-- ##### MACRO G_STATIC_MUTEX_INIT ##### -->
-
 <para>
-Every #GStaticMutex must be initialized with this macro, before it can
-be used.
-</para>
 
-<para>
-<example>
-<title>Initializing a GStaticMutext</title>
-<programlisting>
-GStaticMutex my_mutex = G_STATIC_MUTEX_INIT;
-</programlisting>
-</example>
 </para>
 
 
 
-<!-- ##### MACRO g_static_mutex_lock ##### -->
+<!-- ##### FUNCTION g_static_mutex_lock ##### -->
 <para>
-works like g_mutex_lock(), but for a #GStaticMutex.
-</para>
 
-@mutex: a #GStaticMutex.
+</para>
 
+@mutex: 
 
-<!-- ##### MACRO g_static_mutex_trylock ##### -->
 
+<!-- ##### FUNCTION g_static_mutex_trylock ##### -->
 <para>
-works like g_mutex_trylock(), but for a #GStaticMutex.
-</para>
 
-@mutex: a #GStaticMutex.
-@Returns: TRUE, if the #GStaticMutex could be locked.
+</para>
 
+@mutex: 
+@Returns: 
 
-<!-- ##### MACRO g_static_mutex_unlock ##### -->
 
+<!-- ##### FUNCTION g_static_mutex_unlock ##### -->
 <para>
-works like g_mutex_unlock(), but for a #GStaticMutex.
-</para>
 
-@mutex: a #GStaticMutex.
+</para>
 
+@mutex: 
 
-<!-- ##### MACRO g_static_mutex_get_mutex ##### -->
 
+<!-- ##### FUNCTION g_static_mutex_get_mutex ##### -->
 <para>
-For some operations (like g_cond_wait()) you must have a #GMutex
-instead of a #GStaticMutex. This function will return the
-corresponding #GMutex for every #GStaticMutex.
+
 </para>
 
-@mutex: a #GStaticMutex.
-@Returns: the corresponding #GMutex.
+@mutex: 
+@Returns: 
 
 
 <!-- ##### MACRO G_LOCK_DEFINE ##### -->
-
 <para>
-The G_LOCK_* macros provide a convenient interface to #GStaticMutex
-with the advantage that they will expand to nothing in programs
-compiled against a thread-disabled GLib, saving code and memory
-there. #G_LOCK_DEFINE defines a lock. It can occur, where variable
-definitions may occur in programs, i.e. in the first block of a
-function or outside of functions. The @name parameter will be mangled
-to get the name of the #GStaticMutex. This means, that you can use
-names of existing variables as the parameter, e.g. the name of the
-variable you intent to protect with the lock. Look at our
-give_me_next_number() example using the G_LOCK_* macros:
-</para>
 
-<para>
-<example>
-<title>Using the G_LOCK_* convenience macros</title>
-<programlisting>
-G_LOCK_DEFINE (current_number);
-
-int give_me_next_number ()
-  {
-    static int current_number = 0;
-    int ret_val;
-
-    G_LOCK (current_number);
-    ret_val = current_number = calc_next_number (current_number); 
-    G_UNLOCK (current_number);
-    return ret_val;
-  }
-</programlisting>
-</example>
 </para>
 
-@name: the name of the lock.
+@name: 
 
 
 <!-- ##### MACRO G_LOCK_DEFINE_STATIC ##### -->
-
 <para>
-This works like #G_LOCK_DEFINE, but it creates a static object.
+
 </para>
 
-@name: the name of the lock.
+@name: 
 
 
 <!-- ##### MACRO G_LOCK_EXTERN ##### -->
-
 <para>
-This declares a lock, that is defined with #G_LOCK_DEFINE in another module.
+
 </para>
 
-@name: the name of the lock.
+@name: 
 
 
 <!-- ##### MACRO G_LOCK ##### -->
-
 <para>
-works like g_mutex_lock(), but for a lock defined with #G_LOCK_DEFINE.
+
 </para>
 
-@name: the name of the lock.
+@name: 
 
 
 <!-- ##### MACRO G_TRYLOCK ##### -->
-
 <para>
-works like g_mutex_trylock(), but for a lock defined with #G_LOCK_DEFINE.
+
 </para>
 
-@name: the name of the lock.
-@Returns: TRUE, if the lock could be locked.
+@name: 
 
 
 <!-- ##### MACRO G_UNLOCK ##### -->
-
 <para>
-works like g_mutex_unlock(), but for a lock defined with #G_LOCK_DEFINE.
-</para>
 
-@name: the name of the lock.
+</para>
 
+@name: 
 
-<!-- ##### STRUCT GCond ##### -->
 
+<!-- ##### STRUCT GStaticRecMutex ##### -->
 <para>
-The #GCond struct is an opaque data structure to represent a
-condition. A #GCond is an object, that threads can block on, if they
-find a certain condition to be false. If other threads change the
-state of this condition they can signal the #GCond, such that the
-waiting thread is woken up. 
+
 </para>
 
+@mutex: 
+@depth: 
+@owner: 
+
+<!-- ##### MACRO G_STATIC_REC_MUTEX_INIT ##### -->
 <para>
-<example>
-<title>Using GCond to block a thread until a condition is satisfied</title>
-<programlisting>
-GCond* data_cond = NULL;   /* Must be initialized somewhere */
-GMutex* data_mutex = NULL; /* Must be initialized somewhere */
-gpointer current_data = NULL;
 
-void push_data (gpointer data)
-{
-  g_mutex_lock (data_mutex);
-  current_data = data;
-  g_cond_signal (data_cond);
-  g_mutex_unlock (data_mutex);
-}
+</para>
 
-gpointer pop_data ()
-{
-  gpointer data;
 
-  g_mutex_lock (data_mutex);
-  while (!current_data)
-      g_cond_wait (data_cond, data_mutex);
-  data = current_data;
-  current_data = NULL;
-  g_mutex_unlock (data_mutex);
-  return data;
-}
-</programlisting>
-</example>
-</para>
 
+<!-- ##### FUNCTION g_static_rec_mutex_lock ##### -->
 <para>
-Whenever a thread calls pop_data() now, it will wait until
-current_data is non-NULL, i.e. until some other thread has called
-push_data().
-</para>
 
-<note>
-<para>
-It is important to use the g_cond_wait() and g_cond_timed_wait()
-functions only inside a loop, which checks for the condition to be
-true as it is not guaranteed that the waiting thread will find it
-fulfilled, even if the signaling thread left the condition
-in that state. This is because another thread can have altered the
-condition, before the waiting thread got the chance to be woken up,
-even if the condition itself is protected by a #GMutex, like above.
 </para>
-</note>
 
-<para>
-A #GCond should only be accessed via the following functions.
-</para>
+@mutex: 
+
 
-<note>
+<!-- ##### FUNCTION g_static_rec_mutex_trylock ##### -->
 <para>
-All of the g_cond_* functions are actually macros. Apart from taking
-the addresses of them, you can however use them as if they were functions.
+
 </para>
-</note>
 
+@mutex: 
+@Returns: 
 
-<!-- ##### MACRO g_cond_new ##### -->
 
+<!-- ##### FUNCTION g_static_rec_mutex_unlock ##### -->
 <para>
-Creates a new #GCond. This function will abort, if g_thread_init()
-has not been called yet.
+
 </para>
 
-@Returns: a new #GCond.
+@mutex: 
 
 
-<!-- ##### MACRO g_cond_signal ##### -->
+<!-- ##### FUNCTION g_static_rec_mutex_lock_full ##### -->
 <para>
-If threads are waiting for @cond, exactly one of them is woken up. It
-is good practice to hold the same lock as the waiting thread, while
-calling this function, though not required.
+
 </para>
 
+@mutex: 
+@depth: 
+
+
+<!-- ##### FUNCTION g_static_rec_mutex_unlock_full ##### -->
 <para>
-This function can also be used, if g_thread_init() has
-not yet been called and will do nothing then.
-</para>
 
-@cond: a #GCond.
+</para>
 
+@mutex: 
+@Returns: 
 
-<!-- ##### MACRO g_cond_broadcast ##### -->
 
+<!-- ##### STRUCT GStaticRWLock ##### -->
 <para>
-If threads are waiting for @cond, all of them are woken up. It is good
-practice to lock the same mutex as the waiting threads, while calling
-this function, though not required.
+
 </para>
 
+@mutex: 
+@read_cond: 
+@write_cond: 
+@read_counter: 
+@write: 
+@want_to_write: 
+
+<!-- ##### MACRO G_STATIC_RW_LOCK_INIT ##### -->
 <para>
-This function can also be used, if g_thread_init() has
-not yet been called and will do nothing then.
-</para>
 
-@cond: a #GCond.
+</para>
 
 
-<!-- ##### MACRO g_cond_wait ##### -->
 
+<!-- ##### FUNCTION g_static_rw_lock_reader_lock ##### -->
 <para>
-Waits until this thread is woken up on the #GCond. The #GMutex is
-unlocked before falling asleep and locked again before resuming.
+
 </para>
 
+@lock: 
+
+
+<!-- ##### FUNCTION g_static_rw_lock_reader_trylock ##### -->
 <para>
-This function can also be used, if g_thread_init() has not yet been
-called and will immediately return then.
-</para>
 
-@cond: a #GCond.
-@mutex: the #GMutex, that is currently locked.
+</para>
 
+@lock: 
+@Returns: 
 
-<!-- ##### MACRO g_cond_timed_wait ##### -->
 
+<!-- ##### FUNCTION g_static_rw_lock_reader_unlock ##### -->
 <para>
-Waits until this thread is woken up on the #GCond, but not longer than
-until the time, that is specified by @abs_time. The #GMutex is
-unlocked before falling asleep and locked again before resuming.
+
 </para>
 
+@lock: 
+
+
+<!-- ##### FUNCTION g_static_rw_lock_writer_lock ##### -->
 <para>
-If @abs_time is NULL, g_cond_timed_wait() acts like g_cond_wait().
+
 </para>
 
+@lock: 
+
+
+<!-- ##### FUNCTION g_static_rw_lock_writer_trylock ##### -->
 <para>
-This function can also be used, if g_thread_init() has not yet been
-called and will immediately return TRUE then.
-</para>
 
-@cond: a #GCond.
-@mutex: the #GMutex, that is currently locked.
-@abs_time: a #GTimeVal, determining the final time.
-@Returns: TRUE, if the thread is woken up in time.
+</para>
 
+@lock: 
+@Returns: 
 
-<!-- ##### MACRO g_cond_free ##### -->
 
+<!-- ##### FUNCTION g_static_rw_lock_writer_unlock ##### -->
 <para>
-Destroys the #GCond.
+
 </para>
 
-@cond: a #GCond.
+@lock: 
 
 
-<!-- ##### STRUCT GPrivate ##### -->
+<!-- ##### FUNCTION g_static_rw_lock_free ##### -->
 <para>
-The #GPrivate struct is an opaque data structure to represent a thread
-private data key. Threads can thereby obtain and set a pointer, which
-is private to the current thread. Take our give_me_next_number()
-example from above.  Now we don't want current_number to be shared
-between the threads, but to be private to each thread. This can be
-done as follows:
 
-<example>
-<title>Using GPrivate for per-thread data</title>
-<programlisting>
-  GPrivate* current_number_key = NULL; /* Must be initialized somewhere */
-                                       /* with g_private_new (g_free); */
+</para>
 
-  int give_me_next_number ()
-  {
-    int *current_number = g_private_get (current_number_key);
+@lock: 
 
-    if (!current_number)
-    {
-      current_number = g_new (int,1);
-      *current_number = 0;
-      g_private_set (current_number_key, current_number);
-    }
-    *current_number = calc_next_number (*current_number); 
-    return *current_number;
-  }
-</programlisting>
-</example>
-</para>
 
+<!-- ##### STRUCT GCond ##### -->
 <para>
-Here the pointer belonging to the key current_number_key is read. If
-it is NULL, it has not been set yet. Then get memory for an integer
-value, assign this memory to the pointer and write the pointer
-back. Now we have an integer value, that is private to the current
-thread.
+
 </para>
 
+
+<!-- ##### FUNCTION g_cond_new ##### -->
 <para>
-The #GPrivate struct should only be accessed via the following functions.
+
 </para>
 
-<note>
+@Returns: 
+
+
+<!-- ##### FUNCTION g_cond_signal ##### -->
 <para>
-All of the g_private_* functions are actually macros. Apart from taking
-the addresses of them, you can however use them as if they were functions.
+
 </para>
-</note>
 
+@cond: 
 
-<!-- ##### MACRO g_private_new ##### -->
 
+<!-- ##### FUNCTION g_cond_broadcast ##### -->
 <para>
-Creates a new #GPrivate. If @destructor is non-NULL, it is a pointer
-to a destructor function. Whenever a thread ends and the corresponding
-pointer keyed to this instance of #GPrivate is non-NULL, the
-destructor is called with this pointer as the argument.
+
 </para>
 
-<note>
+@cond: 
+
+
+<!-- ##### FUNCTION g_cond_wait ##### -->
 <para>
-The @destructor is working quite differently from @notify in
-g_static_private_set().
+
 </para>
-</note>
 
-<note>
+@cond: 
+@mutex: 
+
+
+<!-- ##### FUNCTION g_cond_timed_wait ##### -->
 <para>
-A #GPrivate can not be destroyed. Reuse it instead, if you can to
-avoid shortage.
+
 </para>
-</note>
 
-<note>
+@cond: 
+@mutex: 
+@abs_time: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_cond_free ##### -->
 <para>
-This function will abort, if g_thread_init() has not been called yet.
-</para>
-</note>
 
-@destructor: a function to handle the data keyed to #GPrivate, when a
-thread ends.
+</para>
 
+@cond: 
 
-<!-- ##### MACRO g_private_get ##### -->
 
+<!-- ##### STRUCT GPrivate ##### -->
 <para>
-Returns the pointer keyed to @private_key for the current thread. This
-pointer is NULL, when g_private_set() hasn't been called for the
-current @private_key and thread yet.
+
 </para>
 
+
+<!-- ##### FUNCTION g_private_new ##### -->
 <para>
-This function can also be used, if g_thread_init() has not yet been
-called and will return the value of @private_key casted to #gpointer then.
-</para>
 
-@private_key: a #GPrivate.
-@Returns: the corresponding pointer.
+</para>
 
+@destructor: 
+@Returns: 
 
-<!-- ##### MACRO g_private_set ##### -->
 
+<!-- ##### FUNCTION g_private_get ##### -->
 <para>
-Sets the pointer keyed to @private_key for the current thread.
-</para>
 
-<para>
-This function can also be used, if g_thread_init() has not yet been
-called and will set @private_key to @data casted to #GPrivate* then.
 </para>
 
-@private_key: a #GPrivate.
-@value: 
-<!-- # Unused Parameters # -->
-@data: the new pointer.
-
+@private_key: 
+@Returns: 
 
-<!-- ##### STRUCT GStaticPrivate ##### -->
 
+<!-- ##### FUNCTION g_private_set ##### -->
 <para>
-A #GStaticPrivate works almost like a #GPrivate, but it has one
-significant advantage. It doesn't need to be created at run-time like
-a #GPrivate, but can be defined at compile-time. This is similar to
-the difference between #GMutex and #GStaticMutex. Now look at our
-give_me_next_number() example with #GStaticPrivate:
+
 </para>
 
+@private_key: 
+@data: 
+
+
+<!-- ##### STRUCT GStaticPrivate ##### -->
 <para>
-<example>
-<title>Using GStaticPrivate for per-thread data</title>
-<programlisting>
-  int give_me_next_number ()
-  {
-    static GStaticPrivate current_number_key = G_STATIC_PRIVATE_INIT;
-    int *current_number = g_static_private_get (&amp;current_number_key);
 
-    if (!current_number)
-    {
-      current_number = g_new (int,1);
-      *current_number = 0;
-      g_static_private_set (&amp;current_number_key, current_number, g_free);
-    }
-    *current_number = calc_next_number (*current_number); 
-    return *current_number;
-  }
-</programlisting>
-</example>
 </para>
 
 @index: 
 
 <!-- ##### MACRO G_STATIC_PRIVATE_INIT ##### -->
 <para>
-Every #GStaticPrivate must be initialized with this macro, before it can
-be used.
-</para>
 
-<para>
-<informalexample>
-<programlisting>
-GStaticPrivate my_private = G_STATIC_PRIVATE_INIT;
-</programlisting>
-</informalexample>
 </para>
 
 
 
 <!-- ##### FUNCTION g_static_private_get ##### -->
 <para>
-Works like g_private_get() only for a #GStaticPrivate.
+
 </para>
 
+@private_key: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_static_private_get_for_thread ##### -->
 <para>
-This function also works, if g_thread_init() has not yet been called.
+
 </para>
 
-@private_key: a #GStaticPrivate.
-@Returns: the corresponding pointer.
+@private_key: 
+@thread: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_static_private_set ##### -->
 <para>
-Sets the pointer keyed to @private_key for the current thread and the
-function @notify to be called with that pointer (NULL or non-NULL),
-whenever the pointer is set again or whenever the current thread ends.
-</para>
 
-<para>
-This function also works, if g_thread_init() has not yet been
-called. If g_thread_init() is called later, the @data keyed to
-@private_key will be inherited only by the main thread, i.e. the one that
-called g_thread_init().
 </para>
 
-<note>
+@private_key: 
+@data: 
+@notify: 
+
+
+<!-- ##### FUNCTION g_static_private_set_for_thread ##### -->
 <para>
-The @notify is working quite differently from @destructor in
-g_private_new().
+
 </para>
-</note>
 
-@private_key: a #GStaticPrivate.
-@data: the new pointer.
-@notify: a function to be called with the pointer, whenever the
-current thread ends or sets this pointer again.
+@private_key: 
+@thread: 
+@data: 
+@notify: 
 
 
index 87cba3791380e4ad4bbcf7b72d74c53f63d7c660..621998dc7728322b2c24ca6c60fa40a7ae5630a6 100644 (file)
@@ -2,49 +2,48 @@
 Timers
 
 <!-- ##### SECTION Short_Description ##### -->
-functions to time operations.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-Timers can be used to time operations, in a similar way to a stopwatch.
-Call g_timer_new () to create the timer, g_timer_start () to start it,
-g_timer_elapsed () to determine the time which has elapsed since the timer
-was started, and g_timer_stop () to stop the timer.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GTimer ##### -->
 <para>
-An opaque data structure which holds the timer information.
+
 </para>
 
 
 <!-- ##### FUNCTION g_timer_new ##### -->
 <para>
-Creates a new timer.
+
 </para>
 
-@Returns: the new timer.
+@Returns: 
 
 
 <!-- ##### FUNCTION g_timer_start ##### -->
 <para>
-Starts the timer.
+
 </para>
 
-@timer: the timer.
+@timer: 
 
 
 <!-- ##### FUNCTION g_timer_stop ##### -->
 <para>
-Stops the timer.
+
 </para>
 
-@timer: the timer.
+@timer: 
 
 
 <!-- ##### FUNCTION g_timer_elapsed ##### -->
@@ -52,25 +51,24 @@ Stops the timer.
 
 </para>
 
-@timer: the timer.
-@microseconds: if non-NULL, this will be set to the microseconds component
-of the elapsed time (it does not include the number of seconds elapsed).
-@Returns: the elapsed time in seconds, as a double.
+@timer: 
+@microseconds: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_timer_reset ##### -->
 <para>
-Resets the elapsed time to 0, leaving the timer running.
+
 </para>
 
-@timer: the timer.
+@timer: 
 
 
 <!-- ##### FUNCTION g_timer_destroy ##### -->
 <para>
-Destroys the timer, freeing the memory allocated for it.
+
 </para>
 
-@timer: the timer.
+@timer: 
 
 
index ef2f9e110c543f9e7de4b816b9150d6f859ef8a1..2e9e50fc05abc06ce41d0587d11aa7a65f174a92 100644 (file)
 Balanced Binary Trees
 
 <!-- ##### SECTION Short_Description ##### -->
-a sorted collection of key/value pairs optimised for searching
-and traversing in order.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GTree structure and its associated functions provide a sorted collection
-of key/value pairs optimised for searching and traversing in order.
-</para>
-<para>
-To create a new #GTree use g_tree_new().
-</para>
-<para>
-To insert a key/value pair into a #GTree use g_tree_insert().
-</para>
-<para>
-To lookup the value corresponding to a given key, use g_tree_lookup().
-</para>
-<para>
-To find out the number of nodes in a #GTree, use g_tree_nnodes().
-To get the height of a #GTree, use g_tree_height().
-</para>
-<para>
-To traverse a #GTree, calling a function for each node visited in the
-traversal, use g_tree_traverse().
-</para>
-<para>
-To remove a key/value pair use g_tree_remove().
-</para>
-<para>
-To destroy a #GTree, use g_tree_destroy().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GTree ##### -->
 <para>
-The #GTree struct is an opaque data structure representing a
-<link linkend="glib-Balanced-Binary-Trees">Balanced Binary Tree</link>.
-It should be accessed only by using the following functions.
+
 </para>
 
 
 <!-- ##### FUNCTION g_tree_new ##### -->
 <para>
-Creates a new GTree.
+
 </para>
 
-@key_compare_func: the function used to order the nodes in the #GTree.
-It should return values similar to the standard <function>strcmp()</function>
-function -
-0 if the two arguments are equal, a negative value if the first argument comes
-before the second, or a positive value if the first argument comes after the
-second.
-@Returns: a new #GTree.
+@key_compare_func: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_tree_insert ##### -->
 <para>
-Inserts a key/value pair into a #GTree.
-If the given key already exists in the #GTree it is set to the new value.
-(If you are using dynamically allocated keys and values you should be careful
-to ensure that the old values are freed.)
-</para>
-<para>
-The tree is automatically 'balanced' as new key/value pairs are added,
-so that the distance from the root to every leaf is as small as possible.
+
 </para>
 
-@tree: a #GTree.
-@key: the key to insert.
-@value: the value corresponding to the key.
+@tree: 
+@key: 
+@value: 
 
 
 <!-- ##### FUNCTION g_tree_nnodes ##### -->
 <para>
-Gets the number of nodes in a #GTree.
+
 </para>
 
-@tree: a #GTree.
-@Returns: the number of nodes in the #GTree.
+@tree: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_tree_height ##### -->
 <para>
-Gets the height of a #GTree.
-</para>
-<para>
-If the #GTree contains no nodes, the height is 0.
-If the #GTree contains only one root node the height is 1.
-If the root node has children the height is 2, etc.
+
 </para>
 
-@tree: a #GTree.
-@Returns: the height of the #GTree.
+@tree: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_tree_lookup ##### -->
 <para>
-Gets the value corresponding to the given key.
-Since a #GTree is automatically balanced as key/value pairs are
-added, key lookup is very fast.
+
 </para>
 
-@tree: a #GTree.
-@key: the key to look up.
-@Returns: the value corresponding to the key.
+@tree: 
+@key: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_tree_search ##### -->
 <para>
-Searches a #GTree using an alternative form of the comparison function.
-</para>
-<para>
-This function is not as useful as it sounds.
-It allows you to use a different function for performing the lookup of
-a key. However, since the tree is ordered according to the @key_compare_func
-function passed to g_tree_new(), the function you pass to g_tree_search() must
-return exactly the same value as would be returned by the comparison function,
-for each pair of tree nodes, or the search will not work.
-</para>
-<para>
-To search for a specific value, you can use g_tree_traverse().
-</para>
-
-@tree: a #GTree.
-@search_func: the comparison function used to search the #GTree.
-@data: the data passed as the second argument to the @search_func function.
-@Returns: the value corresponding to the found key, or NULL if the key is
-not found.
 
-
-<!-- ##### USER_FUNCTION GSearchFunc ##### -->
-<para>
-Specifies the type of function passed to g_tree_search().
 </para>
 
-@key: a key from a #GTree.
-@data: the data to compare with the key.
-@Returns: 0 if the desired key has been found, a negative number if the
-desired key comes before @key in the sort order of the #GTree, or a positive
-value if the desired key comes after @key.
+@tree: 
+@search_func: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_tree_traverse ##### -->
 <para>
-Calls the given function for each node in the GTree.
+
 </para>
 
-@tree: a #GTree.
-@traverse_func: the function to call for each node visited. If this function
-returns TRUE, the traversal is stopped.
-@traverse_type: the order in which nodes are visited, one of %G_IN_ORDER,
-%G_PRE_ORDER and %G_POST_ORDER.
-@data: user data to pass to the traverse function.
+@tree: 
+@traverse_func: 
+@traverse_type: 
+@data: 
 
 
 <!-- ##### USER_FUNCTION GTraverseFunc ##### -->
 <para>
-Specifies the type of function passed to g_tree_traverse().
-It is passed the key and value of each node, together with
-the @user_data parameter passed to g_tree_traverse().
-If the function returns TRUE, the traversal is stopped.
+
 </para>
 
-@key: a key of a #GTree node.
-@value: the value corresponding to the key.
-@data: user data passed to g_tree_traverse().
-@Returns: TRUE to stop the traversal.
+@key: 
+@value: 
+@data: 
+@Returns: 
 
 
 <!-- ##### ENUM GTraverseType ##### -->
 <para>
-Specifies the type of traveral performed by g_tree_traverse(),
-g_node_traverse() and g_node_find().
-<itemizedlist>
-<listitem><para>
-%G_PRE_ORDER visits a node, then its children.
-</para></listitem>
-<listitem><para>
-%G_IN_ORDER vists a node's left child first, then the node itself, then its
-right child. This is the one to use if you want the output sorted according
-to the compare function.
-</para></listitem>
-<listitem><para>
-%G_POST_ORDER visits the node's children, then the node itself.
-</para></listitem>
-<listitem><para>
-%G_LEVEL_ORDER is not implemented for
-<link linkend="glib-Balanced-Binary-Trees">Balanced Binary Trees</link>.
-For <link linkend="glib-N-ary-Trees">N-ary Trees</link>
-it calls the function for each child of the node, then it recursively visits
-each child.
-</para></listitem>
-</itemizedlist>
+
 </para>
 
 @G_IN_ORDER: 
@@ -208,21 +114,18 @@ each child.
 
 <!-- ##### FUNCTION g_tree_remove ##### -->
 <para>
-Removes a key/value pair from a #GTree.
-If the key or value is dynamically allocated you must remember to free them
-yourself.
+
 </para>
 
-@tree: a #GTree.
-@key: the key to remove.
+@tree: 
+@key: 
 
 
 <!-- ##### FUNCTION g_tree_destroy ##### -->
 <para>
-Destroys the #GTree, freeing all of the memory allocated.
-But it doesn't free keys or values.
+
 </para>
 
-@tree: a #GTree.
+@tree: 
 
 
index 7a8aca2e87c82c232cd969d7e204473220e76b4e..a7589e1afcd233bc5bc772c5698e33c65b5c60bd 100644 (file)
@@ -2,66 +2,23 @@
 N-ary Trees
 
 <!-- ##### SECTION Short_Description ##### -->
-trees of data with any number of branches.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-The #GNode struct and its associated functions provide a N-ary tree data
-structure, where nodes in the tree can contain arbitrary data.
-</para>
-<para>
-To create a new tree use g_node_new().
-</para>
-<para>
-To insert a node into a tree use g_node_insert(), g_node_insert_before(),
-g_node_append() and g_node_prepend().
-</para>
-<para>
-To create a new node and insert it into a tree use g_node_insert_data(), 
-g_node_insert_data_before(), g_node_append_data() and g_node_prepend_data().
-</para>
-<para>
-To reverse the children of a node use g_node_reverse_children().
-</para>
-<para>
-To find a node use g_node_get_root(), g_node_find(), g_node_find_child(),
-g_node_child_index(), g_node_child_position(), 
-g_node_first_child(), g_node_last_child(),
-g_node_nth_child(), g_node_first_sibling(), g_node_prev_sibling(),
-g_node_next_sibling() or g_node_last_sibling().
-</para>
-<para>
-To get information about a node or tree use G_NODE_IS_LEAF(),
-G_NODE_IS_ROOT(), g_node_depth(), g_node_n_nodes(), g_node_n_children(),
-g_node_is_ancestor() or g_node_max_height().
-</para>
-<para>
-To traverse a tree, calling a function for each node visited in the
-traversal, use g_node_traverse() or g_node_children_foreach().
-</para>
-<para>
-To remove a node or subtree from a tree use g_node_unlink() or
-g_node_destroy().
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### STRUCT GNode ##### -->
 <para>
-The #GNode struct represents one node in a
-<link linkend="glib-N-ary-Trees">N-ary Tree</link>.
-The <structfield>data</structfield> field contains the actual data of the node.
-The <structfield>next</structfield> and <structfield>prev</structfield>
-fields point to the node's siblings (a sibling is another #GNode with the
-same parent).
-The <structfield>parent</structfield> field points to the parent of the #GNode,
-or is NULL if the #GNode is the root of the tree.
-The <structfield>children</structfield> field points to the first child of the
-#GNode. The other children are accessed by using the
-<structfield>next</structfield> pointer of each child.
+
 </para>
 
 @data: 
@@ -72,145 +29,125 @@ The <structfield>children</structfield> field points to the first child of the
 
 <!-- ##### FUNCTION g_node_new ##### -->
 <para>
-Creates a new #GNode containing the given data.
-Used to create the first node in a tree.
+
 </para>
 
-@data: the data of the new node.
-@Returns: a new #GNode.
+@data: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_node_copy ##### -->
+<para>
+
+</para>
+
+@node: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_insert ##### -->
 <para>
-Inserts a #GNode beneath the parent at the given position.
+
 </para>
 
-@parent: the #GNode to place @node under.
-@position: the position to place @node at, with respect to its siblings.
-If position is -1, @node is inserted as the last child of @parent.
-@node: the #GNode to insert.
-@Returns: the inserted #GNode.
+@parent: 
+@position: 
+@node: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_insert_before ##### -->
 <para>
-Inserts a #GNode beneath the parent before the given sibling.
+
 </para>
 
-@parent: the #GNode to place @node under.
-@sibling: the sibling #GNode to place @node before. If sibling is NULL,
-the node is inserted as the last child of @parent.
-@node: the #GNode to insert.
-@Returns: the inserted #GNode.
+@parent: 
+@sibling: 
+@node: 
+@Returns: 
 
 
 <!-- ##### MACRO g_node_append ##### -->
 <para>
-Inserts a #GNode as the last child of the given parent.
+
 </para>
 
-@parent: the #GNode to place the new #GNode under.
-@node: the #GNode to insert.
-@Returns: the inserted #GNode.
+@parent: 
+@node: 
 
 
 <!-- ##### FUNCTION g_node_prepend ##### -->
 <para>
-Inserts a #GNode as the first child of the given parent.
+
 </para>
 
-@parent: the #GNode to place the new #GNode under.
-@node: the #GNode to insert.
-@Returns: the inserted #GNode.
+@parent: 
+@node: 
+@Returns: 
 
 
 <!-- ##### MACRO g_node_insert_data ##### -->
 <para>
-Inserts a new #GNode at the given position.
+
 </para>
 
-@parent: the #GNode to place the new #GNode under.
-@position: the position to place the new #GNode at.
-If position is -1, the new #GNode is inserted as the last child of @parent.
-@data: the data for the new #GNode.
-@Returns: the new #GNode.
+@parent: 
+@position: 
+@data: 
 
 
 <!-- ##### MACRO g_node_insert_data_before ##### -->
 <para>
-Inserts a new #GNode before the given sibling.
+
 </para>
 
-@parent: the #GNode to place the new #GNode under.
-@sibling: the sibling #GNode to place the new #GNode before.
-@data: the data for the new #GNode.
-@Returns: the new #GNode.
+@parent: 
+@sibling: 
+@data: 
 
 
 <!-- ##### MACRO g_node_append_data ##### -->
 <para>
-Inserts a new #GNode as the last child of the given parent.
+
 </para>
 
-@parent: the #GNode to place the new #GNode under.
-@data: the data for the new #GNode.
-@Returns: the new #GNode.
+@parent: 
+@data: 
 
 
 <!-- ##### MACRO g_node_prepend_data ##### -->
 <para>
-Inserts a new #GNode as the first child of the given parent.
+
 </para>
 
-@parent: the #GNode to place the new #GNode under.
-@data: the data for the new #GNode.
-@Returns: the new #GNode.
+@parent: 
+@data: 
 
 
 <!-- ##### FUNCTION g_node_reverse_children ##### -->
 <para>
-Reverses the order of the children of a #GNode.
-(It doesn't change the order of the grandchildren.)
+
 </para>
 
-@node: a #GNode.
+@node: 
 
 
 <!-- ##### FUNCTION g_node_traverse ##### -->
 <para>
-Traverses a tree starting at the given root #GNode.
-It calls the given function for each node visited.
-The traversal can be halted at any point by returning TRUE from @func.
+
 </para>
 
-@root: the root #GNode of the tree to traverse.
-@order: the order in which nodes are visited - %G_IN_ORDER, %G_PRE_ORDER,
-%G_POST_ORDER, or %G_LEVEL_ORDER.
-@flags: which types of children are to be visited, one of %G_TRAVERSE_ALL,
-%G_TRAVERSE_LEAFS and %G_TRAVERSE_NON_LEAFS.
-@max_depth: the maximum depth of the traversal. Nodes below this
-depth will not be visited. If max_depth is -1 all nodes in the tree are
-visited. If depth is 1, only the root is visited. If depth is 2, the root
-and its children are visited. And so on.
-@func: the function to call for each visited #GNode.
-@data: user data to pass to the function.
+@root: 
+@order: 
+@flags: 
+@max_depth: 
+@func: 
+@data: 
 
 
 <!-- ##### ENUM GTraverseFlags ##### -->
 <para>
-Specifies which nodes are visited during several of the tree functions,
-including g_node_traverse() and g_node_find().
-<itemizedlist>
-<listitem><para>
-%G_TRAVERSE_LEAFS specifies that only leaf nodes should be visited.
-</para></listitem>
-<listitem><para>
-%G_TRAVERSE_NON_LEAFS specifies that only non-leaf nodes should be visited.
-</para></listitem>
-<listitem><para>
-%G_TRAVERSE_ALL specifies that all nodes should be visited.
-</para></listitem>
-</itemizedlist>
+
 </para>
 
 @G_TRAVERSE_LEAFS: 
@@ -220,275 +157,238 @@ including g_node_traverse() and g_node_find().
 
 <!-- ##### USER_FUNCTION GNodeTraverseFunc ##### -->
 <para>
-Specifies the type of function passed to g_node_traverse().
-The function is called with each of the nodes visited, together with the
-user data passed to g_node_traverse().
-If the function returns TRUE, then the traversal is stopped.
+
 </para>
 
-@node: a #GNode.
-@data: user data passed to g_node_traverse().
-@Returns: TRUE to stop the traversal.
+@node: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_children_foreach ##### -->
 <para>
-Calls a function for each of the children of a #GNode.
-Note that it doesn't descend beneath the child nodes.
+
 </para>
 
-@node: a #GNode.
-@flags: which types of children are to be visited, one of %G_TRAVERSE_ALL,
-%G_TRAVERSE_LEAFS and %G_TRAVERSE_NON_LEAFS.
-@func: the function to call for each visited node.
-@data: user data to pass to the function.
+@node: 
+@flags: 
+@func: 
+@data: 
 
 
 <!-- ##### USER_FUNCTION GNodeForeachFunc ##### -->
 <para>
-Specifies the type of function passed to g_node_children_foreach().
-The function is called with each child node, together with the user data
-passed to g_node_children_foreach().
+
 </para>
 
-@node: a #GNode.
-@data: user data passed to g_node_children_foreach().
+@node: 
+@data: 
 
 
 <!-- ##### FUNCTION g_node_get_root ##### -->
 <para>
-Gets the root of a tree.
+
 </para>
 
-@node: a #GNode.
-@Returns: the root of the tree.
+@node: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_find ##### -->
 <para>
-Finds a #GNode in a tree.
+
 </para>
 
-@root: the root #GNode of the tree to search.
-@order: the order in which nodes are visited - %G_IN_ORDER, %G_PRE_ORDER,
-%G_POST_ORDER, or %G_LEVEL_ORDER.
-@flags: which types of children are to be searched, one of %G_TRAVERSE_ALL,
-%G_TRAVERSE_LEAFS and %G_TRAVERSE_NON_LEAFS.
-@data: the data to find.
-@Returns: the found #GNode, or NULL if the data is not found.
+@root: 
+@order: 
+@flags: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_find_child ##### -->
 <para>
-Finds the first child of a #GNode with the given data.
+
 </para>
 
-@node: a #GNode.
-@flags: which types of children are to be searched, one of %G_TRAVERSE_ALL,
-%G_TRAVERSE_LEAFS and %G_TRAVERSE_NON_LEAFS.
-@data: the data to find.
-@Returns: the found child #GNode, or NULL if the data is not found.
+@node: 
+@flags: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_child_index ##### -->
 <para>
-Gets the position of the first child of a #GNode which contains the given data.
+
 </para>
 
-@node: a #GNode.
-@data: the data to find.
-@Returns: the index of the child of @node which contains @data, or -1
-if the data is not found.
+@node: 
+@data: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_child_position ##### -->
 <para>
-Gets the position of a #GNode with respect to its siblings.
-@child must be a child of @node.
-The first child is numbered 0, the second 1, and so on.
+
 </para>
 
-@node: a #GNode.
-@child: a child of @node.
-@Returns: the position of @child with respect to its siblings.
+@node: 
+@child: 
+@Returns: 
 
 
 <!-- ##### MACRO g_node_first_child ##### -->
 <para>
-Gets the first child of a #GNode.
+
 </para>
 
-@node: a #GNode.
-@Returns: the last child of @node, or NULL if @node is NULL or has no children.
+@node: 
 
 
 <!-- ##### FUNCTION g_node_last_child ##### -->
 <para>
-Gets the last child of a #GNode.
+
 </para>
 
-@node: a #GNode (must not be NULL).
-@Returns: the last child of @node, or NULL if @node has no children.
+@node: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_nth_child ##### -->
 <para>
-Gets a child of a #GNode, using the given index.
-The first child is at index 0. If the index is too big, NULL is returned.
+
 </para>
 
-@node: a #GNode.
-@n: the index of the desired child.
-@Returns: the child of @node at index @n.
+@node: 
+@n: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_first_sibling ##### -->
 <para>
-Gets the first sibling of a #GNode.
-This could possibly be the node itself.
+
 </para>
 
-@node: a #GNode.
-@Returns: the first sibling of @node.
+@node: 
+@Returns: 
 
 
 <!-- ##### MACRO g_node_next_sibling ##### -->
 <para>
-Gets the next sibling of a #GNode.
+
 </para>
 
-@node: a #GNode.
-@Returns: the next sibling of @node, or NULL if @node is NULL.
+@node: 
 
 
 <!-- ##### MACRO g_node_prev_sibling ##### -->
 <para>
-Gets the previous sibling of a #GNode.
+
 </para>
 
-@node: a #GNode.
-@Returns: the previous sibling of @node, or NULL if @node is NULL.
+@node: 
 
 
 <!-- ##### FUNCTION g_node_last_sibling ##### -->
 <para>
-Gets the last sibling of a #GNode.
-This could possibly be the node itself.
+
 </para>
 
-@node: a #GNode.
-@Returns: the last sibling of @node.
+@node: 
+@Returns: 
 
 
 <!-- ##### MACRO G_NODE_IS_LEAF ##### -->
 <para>
-Returns TRUE if a #GNode is a leaf node.
+
 </para>
 
-@node: a #GNode.
-@Returns: TRUE if the #GNode is a leaf node (i.e. it has no children).
+@node: 
 
 
 <!-- ##### MACRO G_NODE_IS_ROOT ##### -->
 <para>
-Returns TRUE if a #GNode is the root of a tree.
+
 </para>
 
-@node: a #GNode.
-@Returns: TRUE if the #GNode is the root of a tree (i.e. it has no parent
-or siblings).
+@node: 
 
 
 <!-- ##### FUNCTION g_node_depth ##### -->
 <para>
-Gets the depth of a #GNode.
-</para>
-<para>
-If @node is NULL the depth is 0.
-The root node has a depth of 1.
-For the children of the root node the depth is 2. And so on.
+
 </para>
 
-@node: a #GNode.
-@Returns: the depth of the #GNode.
+@node: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_n_nodes ##### -->
 <para>
-Gets the number of nodes in a tree.
+
 </para>
 
-@root: a #GNode.
-@flags: which types of children are to be counted, one of %G_TRAVERSE_ALL,
-%G_TRAVERSE_LEAFS and %G_TRAVERSE_NON_LEAFS.
-@Returns: the number of nodes in the tree.
+@root: 
+@flags: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_n_children ##### -->
 <para>
-Gets the number of children of a #GNode.
+
 </para>
 
-@node: a #GNode.
-@Returns: the number of children of @node.
+@node: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_is_ancestor ##### -->
 <para>
-Returns TRUE if @node is an ancestor of @descendant.
-This is true if node is the parent of descendant, or if node is the
-grandparent of descendant etc.
+
 </para>
 
-@node: a #GNode.
-@descendant: a #GNode.
-@Returns: TRUE if @node is an ancestor of @descendant.
+@node: 
+@descendant: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_max_height ##### -->
 <para>
-Gets the maximum height of all branches beneath a #GNode.
-This is the maximum distance from the #GNode to all leaf nodes.
-</para>
-<para>
-If @root is NULL, 0 is returned. If @root has no children, 1 is returned.
-If @root has children, 2 is returned. And so on.
+
 </para>
 
-@root: a #GNode.
-@Returns: the maximum height of the tree beneath @root.
+@root: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_node_unlink ##### -->
 <para>
-Unlinks a #GNode from a tree, resulting in two separate trees.
+
 </para>
 
-@node: the #GNode to unlink, which becomes the root of a new tree.
+@node: 
 
 
 <!-- ##### FUNCTION g_node_destroy ##### -->
 <para>
-Removes the #GNode and its children from the tree, freeing any memory
-allocated.
+
 </para>
 
-@root: the root of the tree/subtree to destroy.
+@root: 
 
 
-<!-- ##### FUNCTION g_node_pop_allocator ##### -->
+<!-- ##### FUNCTION g_node_push_allocator ##### -->
 <para>
-Restores the previous #GAllocator, used when allocating #GNode elements.
+
 </para>
 
+@allocator: 
 
 
-<!-- ##### FUNCTION g_node_push_allocator ##### -->
+<!-- ##### FUNCTION g_node_pop_allocator ##### -->
 <para>
-Sets the allocator to use to allocate #GNode elements.
-Use g_node_pop_allocator() to restore the previous allocator.
+
 </para>
 
-@allocator: the #GAllocator to use when allocating #GNode elements.
 
 
index 45138be50d3bb71b3951aef3483484b0257b43db..d63aee644bbc1f85bae44b0c03166f43b63b9dd8 100644 (file)
@@ -2,77 +2,49 @@
 Type Conversion Macros
 
 <!-- ##### SECTION Short_Description ##### -->
-a portable method for storing #gint &amp; #guint values in #gpointer variables.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These macros provide a portable method of storing #gint and #guint values in
-#gpointer variables.
-</para>
-<para>
-Many of the GLib data types are based on storing #gpointer values,
-e.g. #GHashTable, #GList, #GSList, #GTree, and #GNode.
-By using the type conversion macros described below you can store #gint and
-#guint values inside a #gpointer. So you can, for example, create
-a hash table of #gint values, or a linked list of #guint values.
-</para>
-<para>
-The type conversion macros are necessary because the size of a #gpointer can
-vary across different platforms. So the type conversion has to be done
-carefully.
-</para>
-<para>
-Note that the reverse operation, storing #gpointer values in
-integer variables, is not supported, since an integer is not guaranteed to
-be large enough to store #gpointer values across all platforms.
-</para>
-<para>
-To convert an integer value, a #gint, to a #gpointer, use #GINT_TO_POINTER.
-To convert it back to a #gint, use #GPOINTER_TO_INT.
-</para>
-<para>
-To convert an unsigned integer, a #guint, to a #gpointer, use
-#GUINT_TO_POINTER. To convert it back to a #guint, use #GPOINTER_TO_UINT.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### MACRO GINT_TO_POINTER ##### -->
 <para>
-Converts a #gint to a #gpointer.
+
 </para>
 
-@i: a #gint value.
-@Returns: the value converted to a #gpointer.
+@i: 
 
 
 <!-- ##### MACRO GPOINTER_TO_INT ##### -->
 <para>
-Converts a #gpointer to a #gint.
+
 </para>
 
-@p: a #gpointer value.
-@Returns: the value converted to a #gint.
+@p: 
 
 
 <!-- ##### MACRO GUINT_TO_POINTER ##### -->
 <para>
-Converts a #guint to a #gpointer.
+
 </para>
 
-@u: a #guint value.
-@Returns: the value converted to a #gpointer.
+@u: 
 
 
 <!-- ##### MACRO GPOINTER_TO_UINT ##### -->
 <para>
-Converts a #gpointer to a #guint.
+
 </para>
 
-@p: a #gpointer value.
-@Returns: the value converted to a #guint.
+@p: 
 
 
index b3d63a401f00eacc11c8e887e2c6bfef5553a3a3..fa276e06bcddd6b2a779264541cdac98aab9d8f6 100644 (file)
 <!-- ##### SECTION Title ##### -->
-Basic Types
+GType
 
 <!-- ##### SECTION Short_Description ##### -->
-standard GLib types, defined for ease-of-use and portability.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-GLib defines a number of commonly used types, which can be divided into
-4 groups:
 
-<itemizedlist>
-<listitem><para>
-New types which are not part of standard C - #gboolean, #gsize, #gssize.
-</para></listitem>
+</para>
+
 
-<listitem><para>
-Integer types which are guaranteed to be the same size across all platforms -
-#gint8, #guint8, #gint16, #guint16, #gint32, #guint32, #gint64, #guint64.
-</para></listitem>
+<!-- ##### SECTION See_Also ##### -->
+<para>
 
-<listitem><para>
-Types which are easier to use than their standard C counterparts -
-#gpointer, #gconstpointer, #guchar, #guint, #gushort, #gulong.
-</para></listitem>
+</para>
 
-<listitem><para>
-Types which correspond exactly to standard C types, but are included
-for completeness - #gchar, #gint, #gshort, #glong, #gfloat, #gdouble.
-</para></listitem>
-</itemizedlist>
+
+<!-- ##### TYPEDEF GType ##### -->
+<para>
 
 </para>
 
-<!-- ##### SECTION See_Also ##### -->
+
+<!-- ##### MACRO G_TYPE_FUNDAMENTAL ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### MACRO G_TYPE_FUNDAMENTAL_MAX ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_TYPE_DERIVE_ID ##### -->
+<para>
+
+</para>
+
+@ptype: 
+@branch_seqno: 
+
+
+<!-- ##### MACRO G_TYPE_BRANCH_SEQNO ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### MACRO G_TYPE_FUNDAMENTAL_LAST ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### ENUM GTypeFundamentals ##### -->
+<para>
+
+</para>
+
+@G_TYPE_INVALID: 
+@G_TYPE_NONE: 
+@G_TYPE_INTERFACE: 
+@G_TYPE_CHAR: 
+@G_TYPE_UCHAR: 
+@G_TYPE_BOOLEAN: 
+@G_TYPE_INT: 
+@G_TYPE_UINT: 
+@G_TYPE_LONG: 
+@G_TYPE_ULONG: 
+@G_TYPE_ENUM: 
+@G_TYPE_FLAGS: 
+@G_TYPE_FLOAT: 
+@G_TYPE_DOUBLE: 
+@G_TYPE_STRING: 
+@G_TYPE_PARAM: 
+@G_TYPE_OBJECT: 
+@G_TYPE_GTK_BOXED: 
+@G_TYPE_GTK_POINTER: 
+@G_TYPE_GTK_SIGNAL: 
+@G_TYPE_BSE_PROCEDURE: 
+@G_TYPE_BSE_TIME: 
+@G_TYPE_BSE_NOTE: 
+@G_TYPE_BSE_DOTS: 
+@G_TYPE_GLE_GOBJECT: 
+@G_TYPE_LAST_RESERVED_FUNDAMENTAL: 
+@G_TYPE_PARAM_CHAR: 
+@G_TYPE_PARAM_UCHAR: 
+@G_TYPE_PARAM_BOOLEAN: 
+@G_TYPE_PARAM_INT: 
+@G_TYPE_PARAM_UINT: 
+@G_TYPE_PARAM_LONG: 
+@G_TYPE_PARAM_ULONG: 
+@G_TYPE_PARAM_ENUM: 
+@G_TYPE_PARAM_FLAGS: 
+@G_TYPE_PARAM_FLOAT: 
+@G_TYPE_PARAM_DOUBLE: 
+@G_TYPE_PARAM_STRING: 
+@G_TYPE_PARAM_OBJECT: 
+
+<!-- ##### MACRO G_TYPE_IS_CLASSED ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### MACRO G_TYPE_IS_INSTANTIATABLE ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### MACRO G_TYPE_IS_DERIVABLE ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### MACRO G_TYPE_IS_DEEP_DERIVABLE ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### MACRO G_TYPE_IS_PARAM ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### MACRO G_TYPE_IS_INTERFACE ##### -->
+<para>
+
+</para>
+
+@type: 
+
+
+<!-- ##### STRUCT GTypePlugin ##### -->
+<para>
+
+</para>
+
+@vtable: 
+
+<!-- ##### STRUCT GTypePluginVTable ##### -->
+<para>
+
+</para>
+
+@plugin_ref: 
+@plugin_unref: 
+@complete_type_info: 
+@complete_interface_info: 
+
+<!-- ##### STRUCT GTypeInterface ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GTypeInstance ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GTypeInfo ##### -->
+<para>
+
+</para>
+
+@class_size: 
+@base_init: 
+@base_finalize: 
+@class_init: 
+@class_finalize: 
+@class_data: 
+@instance_size: 
+@n_preallocs: 
+@instance_init: 
+@value_table: 
+
+<!-- ##### STRUCT GTypeFundamentalInfo ##### -->
+<para>
+
+</para>
+
+@type_flags: 
+
+<!-- ##### STRUCT GInterfaceInfo ##### -->
+<para>
+
+</para>
+
+@interface_init: 
+@interface_finalize: 
+@interface_data: 
+
+<!-- ##### STRUCT GTypeValueTable ##### -->
+<para>
+
+</para>
+
+@value_init: 
+@value_free: 
+@value_copy: 
+@collect_type: 
+@collect_value: 
+@lcopy_type: 
+@lcopy_value: 
+
+<!-- ##### MACRO G_TYPE_CHECK_INSTANCE_CAST ##### -->
+<para>
+
+</para>
+
+@instance: 
+@g_type: 
+@c_type: 
+
+
+<!-- ##### MACRO G_TYPE_CHECK_CLASS_CAST ##### -->
+<para>
+
+</para>
+
+@g_class: 
+@g_type: 
+@c_type: 
+
+
+<!-- ##### MACRO G_TYPE_CHECK_INSTANCE_TYPE ##### -->
+<para>
+
+</para>
+
+@instance: 
+@g_type: 
+
+
+<!-- ##### MACRO G_TYPE_CHECK_CLASS_TYPE ##### -->
+<para>
+
+</para>
+
+@g_class: 
+@g_type: 
+
+
+<!-- ##### MACRO G_TYPE_INSTANCE_GET_CLASS ##### -->
+<para>
+
+</para>
+
+@instance: 
+@g_type: 
+@c_type: 
+
+
+<!-- ##### MACRO G_TYPE_FROM_INSTANCE ##### -->
+<para>
+
+</para>
+
+@instance: 
+
+
+<!-- ##### MACRO G_TYPE_FROM_CLASS ##### -->
+<para>
+
+</para>
+
+@g_class: 
+
+
+<!-- ##### MACRO G_TYPE_FROM_INTERFACE ##### -->
+<para>
+
+</para>
+
+@g_iface: 
+
+
+<!-- ##### FUNCTION g_type_init ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION g_type_name ##### -->
+<para>
+
+</para>
+
+@type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_qname ##### -->
+<para>
+
+</para>
+
+@type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_from_name ##### -->
+<para>
+
+</para>
+
+@name: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_parent ##### -->
+<para>
+
+</para>
+
+@type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_next_base ##### -->
+<para>
+
+</para>
+
+@type: 
+@base_type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_is_a ##### -->
+<para>
+
+</para>
+
+@type: 
+@is_a_type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_conforms_to ##### -->
+<para>
+
+</para>
+
+@type: 
+@iface_type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_fundamental_branch_last ##### -->
+<para>
+
+</para>
+
+@type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_class_ref ##### -->
+<para>
+
+</para>
+
+@type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_class_peek ##### -->
+<para>
+
+</para>
+
+@type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_class_unref ##### -->
+<para>
+
+</para>
+
+@g_class: 
+
+
+<!-- ##### FUNCTION g_type_class_peek_parent ##### -->
+<para>
+
+</para>
+
+@g_class: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_interface_peek ##### -->
+<para>
+
+</para>
+
+@instance_class: 
+@iface_type: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_children ##### -->
+<para>
+
+</para>
+
+@type: 
+@n_children: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_interfaces ##### -->
+<para>
+
+</para>
+
+@type: 
+@n_interfaces: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_type_set_qdata ##### -->
+<para>
+
+</para>
+
+@type: 
+@quark: 
+@data: 
+
+
+<!-- ##### FUNCTION g_type_get_qdata ##### -->
+<para>
+
+</para>
+
+@type: 
+@quark: 
+@Returns: 
+
+
+<!-- ##### USER_FUNCTION GBaseInitFunc ##### -->
+<para>
+
+</para>
+
+@g_class: 
+
+
+<!-- ##### USER_FUNCTION GBaseFinalizeFunc ##### -->
+<para>
+
+</para>
+
+@g_class: 
+
+
+<!-- ##### USER_FUNCTION GClassInitFunc ##### -->
+<para>
+
+</para>
+
+@g_class: 
+@class_data: 
+
+
+<!-- ##### USER_FUNCTION GClassFinalizeFunc ##### -->
+<para>
+
+</para>
+
+@g_class: 
+@class_data: 
+
+
+<!-- ##### USER_FUNCTION GInstanceInitFunc ##### -->
 <para>
 
 </para>
 
-<!-- ##### TYPEDEF gboolean ##### -->
+@instance: 
+@g_class: 
+
+
+<!-- ##### USER_FUNCTION GInterfaceInitFunc ##### -->
 <para>
-A standard <type>boolean</type> type.
-Variables of this type should only contain the value #TRUE or #FALSE.
+
 </para>
 
+@g_iface: 
+@iface_data: 
+
 
-<!-- ##### TYPEDEF gpointer ##### -->
+<!-- ##### USER_FUNCTION GInterfaceFinalizeFunc ##### -->
 <para>
-An untyped pointer.
-#gpointer looks better and is easier to use than <type>void*</type>.
+
 </para>
 
+@g_iface: 
+@iface_data: 
+
 
-<!-- ##### TYPEDEF gconstpointer ##### -->
+<!-- ##### USER_FUNCTION GTypePluginRef ##### -->
 <para>
-An untyped pointer to constant data.
-The data pointed to should not be changed.
+
 </para>
+
+@plugin: 
+
+
+<!-- ##### USER_FUNCTION GTypePluginUnRef ##### -->
 <para>
-This is typically used in function prototypes to indicate that the
-data pointed to will not be altered by the function.
+
 </para>
 
+@plugin: 
+
 
-<!-- ##### TYPEDEF gchar ##### -->
+<!-- ##### USER_FUNCTION GTypePluginFillTypeInfo ##### -->
 <para>
-Corresponds to the standard C <type>char</type> type.
+
 </para>
 
+@plugin: 
+@g_type: 
+@info: 
+@value_table: 
+
 
-<!-- ##### TYPEDEF guchar ##### -->
+<!-- ##### USER_FUNCTION GTypePluginFillInterfaceInfo ##### -->
 <para>
-Corresponds to the standard C <type>unsigned char</type> type.
+
 </para>
 
+@plugin: 
+@interface_type: 
+@instance_type: 
+@info: 
 
-<!-- ##### TYPEDEF gint ##### -->
+
+<!-- ##### USER_FUNCTION GTypeClassCacheFunc ##### -->
 <para>
-Corresponds to the standard C <type>int</type> type.
-Values of this type can range from #G_MININT to #G_MAXINT.
+
 </para>
 
+@cache_data: 
+@g_class: 
+@Returns: 
+
 
-<!-- ##### TYPEDEF guint ##### -->
+<!-- ##### ENUM GTypeFlags ##### -->
 <para>
-Corresponds to the standard C <type>unsigned int</type> type.
+
 </para>
 
+@G_TYPE_FLAG_CLASSED: 
+@G_TYPE_FLAG_INSTANTIATABLE: 
+@G_TYPE_FLAG_DERIVABLE: 
+@G_TYPE_FLAG_DEEP_DERIVABLE: 
 
-<!-- ##### TYPEDEF gshort ##### -->
+<!-- ##### FUNCTION g_type_register_static ##### -->
 <para>
-Corresponds to the standard C <type>short</type> type.
-Values of this type can range from #G_MINSHORT to #G_MAXSHORT.
+
 </para>
 
+@parent_type: 
+@type_name: 
+@info: 
+@Returns: 
 
-<!-- ##### TYPEDEF gushort ##### -->
+
+<!-- ##### FUNCTION g_type_register_dynamic ##### -->
 <para>
-Corresponds to the standard C <type>unsigned short</type> type.
+
 </para>
 
+@parent_type: 
+@type_name: 
+@plugin: 
+@Returns: 
+
 
-<!-- ##### TYPEDEF glong ##### -->
+<!-- ##### FUNCTION g_type_register_fundamental ##### -->
 <para>
-Corresponds to the standard C <type>long</type> type.
-Values of this type can range from #G_MINLONG to #G_MAXLONG.
+
 </para>
 
+@type_id: 
+@type_name: 
+@info: 
+@finfo: 
+@Returns: 
+
 
-<!-- ##### TYPEDEF gulong ##### -->
+<!-- ##### FUNCTION g_type_add_interface_static ##### -->
 <para>
-Corresponds to the standard C <type>unsigned long</type> type.
+
 </para>
 
+@instance_type: 
+@interface_type: 
+@info: 
 
-<!-- ##### TYPEDEF gint8 ##### -->
+
+<!-- ##### FUNCTION g_type_add_interface_dynamic ##### -->
 <para>
-A signed integer guaranteed to be 8 bits on all platforms.
-Values of this type can range from -128 to 127.
+
 </para>
 
+@instance_type: 
+@interface_type: 
+@plugin: 
+
 
-<!-- ##### TYPEDEF guint8 ##### -->
+<!-- ##### FUNCTION g_type_class_is_a ##### -->
 <para>
-An unsigned integer guaranteed to be 8 bits on all platforms.
-Values of this type can range from 0 to 255.
+
 </para>
 
+@g_class: 
+@is_a_type: 
+@Returns: 
+
 
-<!-- ##### TYPEDEF gint16 ##### -->
+<!-- ##### FUNCTION g_type_check_class_cast ##### -->
 <para>
-A signed integer guaranteed to be 16 bits on all platforms.
-Values of this type can range from -32,768 to 32,767.
+
 </para>
 
+@g_class: 
+@is_a_type: 
+@Returns: 
+
 
-<!-- ##### TYPEDEF guint16 ##### -->
+<!-- ##### FUNCTION g_type_check_instance_cast ##### -->
 <para>
-An unsigned integer guaranteed to be 16 bits on all platforms.
-Values of this type can range from 0 to 65,535.
+
 </para>
 
+@instance: 
+@iface_type: 
+@Returns: 
 
-<!-- ##### TYPEDEF gint32 ##### -->
+
+<!-- ##### FUNCTION g_type_instance_conforms_to ##### -->
 <para>
-A signed integer guaranteed to be 32 bits on all platforms.
-Values of this type can range from -2,147,483,648 to 2,147,483,647.
+
 </para>
 
+@instance: 
+@iface_type: 
+@Returns: 
+
 
-<!-- ##### TYPEDEF guint32 ##### -->
+<!-- ##### FUNCTION g_type_check_flags ##### -->
 <para>
-An unsigned integer guaranteed to be 32 bits on all platforms.
-Values of this type can range from 0 to 4,294,967,295.
+
 </para>
 
+@type: 
+@flags: 
+@Returns: 
+
 
-<!-- ##### MACRO G_HAVE_GINT64 ##### -->
+<!-- ##### FUNCTION g_type_create_instance ##### -->
 <para>
-This macro is defined if 64-bit signed and unsigned integers are available
-on the platform.
+
 </para>
 
+@type: 
+@Returns: 
 
 
-<!-- ##### TYPEDEF gint64 ##### -->
+<!-- ##### FUNCTION g_type_free_instance ##### -->
 <para>
-A signed integer guaranteed to be 64 bits on all platforms on which it is
-available (see #G_HAVE_GINT64).
-Values of this type can range from -9,223,372,036,854,775,808 to
-9,223,372,036,854,775,807.
+
 </para>
 
+@instance: 
+
 
-<!-- ##### TYPEDEF guint64 ##### -->
+<!-- ##### FUNCTION g_type_value_table_peek ##### -->
 <para>
-An unsigned integer guaranteed to be 64 bits on all platforms on which it is
-available (see #G_HAVE_GINT64).
-Values of this type can range from 0 to 18,446,744,073,709,551,615.
+
 </para>
 
+@type: 
+@Returns: 
+
 
-<!-- ##### MACRO G_GINT64_CONSTANT ##### -->
+<!-- ##### FUNCTION g_type_add_class_cache_func ##### -->
 <para>
-This macro is used to insert 64-bit integer literals into the source code.
+
 </para>
 
-@val: a literal integer value, e.g. 0x1d636b02300a7aa7U.
+@cache_data: 
+@cache_func: 
 
 
-<!-- ##### TYPEDEF gfloat ##### -->
+<!-- ##### FUNCTION g_type_remove_class_cache_func ##### -->
 <para>
-Corresponds to the standard C <type>float</type> type.
-Values of this type can range from #G_MINFLOAT to #G_MAXFLOAT.
+
 </para>
 
+@cache_data: 
+@cache_func: 
+
 
-<!-- ##### TYPEDEF gdouble ##### -->
+<!-- ##### FUNCTION g_type_class_unref_uncached ##### -->
 <para>
-Corresponds to the standard C <type>double</type> type.
-Values of this type can range from #G_MINDOUBLE to #G_MAXDOUBLE.
+
 </para>
 
+@g_class: 
 
-<!-- ##### TYPEDEF gsize ##### -->
+
+<!-- ##### FUNCTION g_type_get_plugin ##### -->
 <para>
-An unsigned 32-bit integer intended to represent sizes of data structures.
+
 </para>
 
+@type: 
+@Returns: 
+
 
-<!-- ##### TYPEDEF gssize ##### -->
+<!-- ##### FUNCTION g_type_fundamental_last ##### -->
 <para>
-A signed 32-bit integer intended to represent sizes of data structures.
+
 </para>
 
+@Returns: 
+
 
index 2cca152655f7d4388802a9bbfcea07e8b040a069..ca360571e01e2f983c52b772097be65d62640ab4 100644 (file)
 <!-- ##### SECTION Title ##### -->
-Message Output and Debugging Functions
+Warnings and Assertions
 
 <!-- ##### SECTION Short_Description ##### -->
-functions to output messages and help debug applications.
+
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-These functions provide support for outputting messages.
+
 </para>
 
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
+
 <!-- ##### FUNCTION g_print ##### -->
 <para>
-Outputs a formatted message via the print handler.
-The default print handler simply outputs the message to stdout.
-</para>
-<para>
-g_print() should not be used from within libraries for debugging messages,
-since it may be redirected by applications to special purpose message
-windows or even files.
-Instead, libraries should use g_log(), or the convenience functions
-g_message(), g_warning() and g_error().
+
 </para>
 
-@format: the message format. See the <function>printf()</function>
-documentation.
-@Varargs: the parameters to insert into the format string.
+@format: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_set_print_handler ##### -->
 <para>
-Sets the print handler.
-Any messages passed to g_print() will be output via the new handler.
-The default handler simply outputs the message to stdout.
-By providing your own handler you can redirect the output, to a GTK
-widget or a log file for example.
+
 </para>
 
-@func: the new print handler.
-@Returns: the old print handler.
+@func: 
+@Returns: 
 
 
 <!-- ##### USER_FUNCTION GPrintFunc ##### -->
 <para>
-Specifies the type of the print handler functions.
-These are called with the complete formatted string to output.
+
 </para>
 
-@string: the message to be output.
+@string: 
 
 
 <!-- ##### FUNCTION g_printerr ##### -->
 <para>
-Outputs a formatted message via the error message handler.
-The default handler simply outputs the message to stderr.
-</para>
-<para>
-g_printerr() should not be used from within libraries. Instead g_log() should
-be used, or the convenience functions g_message(), g_warning() and g_error().
+
 </para>
 
-@format: the message format. See the <function>printf()</function>
-documentation.
-@Varargs: the parameters to insert into the format string.
+@format: 
+@Varargs: 
 
 
 <!-- ##### FUNCTION g_set_printerr_handler ##### -->
 <para>
-Sets the handler for printing error messages.
-Any messages passed to g_printerr() will be output via the new handler.
-The default handler simply outputs the message to stderr.
-By providing your own handler you can redirect the output, to a GTK
-widget or a log file for example.
+
 </para>
 
-@func: the new error message handler.
-@Returns: the old error message handler.
+@func: 
+@Returns: 
 
 
 <!-- ##### MACRO g_return_if_fail ##### -->
 <para>
-Returns from the current function if the expression is not true.
-If the expression evaluates to FALSE, a critical message is logged and
-the function returns. This can only be used in functions which do not return
-a value.
+
 </para>
 
-@expr: the expression to check.
+@expr: 
 
 
 <!-- ##### MACRO g_return_val_if_fail ##### -->
 <para>
-Returns from the current function, returning the value @val, if the expression
-is not true.
-If the expression evaluates to FALSE, a critical message is logged and
-@val is returned.
+
 </para>
 
-@expr: the expression to check.
-@val: the value to return from the current function if the expression is not
-true.
+@expr: 
+@val: 
 
 
-<!-- ##### MACRO g_assert ##### -->
+<!-- ##### MACRO g_return_if_reached ##### -->
 <para>
-Debugging macro to terminate the application if the assertion fails.
-If the assertion fails (i.e. the expression is not true), an error message
-is logged and the application is terminated.
+
 </para>
+
+
+
+<!-- ##### MACRO g_return_val_if_reached ##### -->
 <para>
-The macro can be turned off in final releases of code by defining
-G_DISABLE_ASSERT when compiling the application.
+
 </para>
 
-@expr: the expression to check.
+@val: 
 
 
-<!-- ##### MACRO g_assert_not_reached ##### -->
+<!-- ##### MACRO g_assert ##### -->
 <para>
-Debugging macro to terminate the application if it is ever reached.
-If it is reached, an error message is logged and the application is terminated.
+
 </para>
+
+@expr: 
+
+
+<!-- ##### MACRO g_assert_not_reached ##### -->
 <para>
-The macro can be turned off in final releases of code by defining
-G_DISABLE_ASSERT when compiling the application.
+
 </para>
 
 
 
 <!-- ##### FUNCTION g_on_error_query ##### -->
 <para>
-Prompts the user with "[E]xit, [H]alt, show [S]tack trace or [P]roceed".
-This function is intended to be used for debugging use only.
-FIXME: How do you set it up?
-</para>
-<para>
-If Exit is selected, the application terminates with a call to
-<function>_exit(0)</function>.
-</para>
-<para>
-If Halt is selected, the application enters an infinite loop.
-The infinite loop can only be stopped by killing the application,
-or by setting glib_on_error_halt to FALSE (possibly via a debugger).
-</para>
-<para>
-If Stack trace is selected, g_on_error_stack_trace() is called. This
-invokes gdb, which attaches to the current process and shows a stack trace.
-The prompt is then shown again.
-</para>
-<para>
-If Proceed is selected, the function returns.
-</para>
-<para>
-This function may cause different actions on non-unix platforms.
+
 </para>
 
-@prg_name: the program name, needed by gdb for the [S]tack trace option.
-If @prg_name is NULL, g_get_prgname() is called to get the program name
-(which will work correctly if gdk_init() or gtk_init() has been called).
+@prg_name: 
 
 
 <!-- ##### FUNCTION g_on_error_stack_trace ##### -->
 <para>
-Invokes gdb, which attaches to the current process and shows a stack trace.
-Called by g_on_error_query() when the [S]tack trace option is selected.
-</para>
-<para>
-This function may cause different actions on non-unix platforms.
+
 </para>
 
-@prg_name: the program name, needed by gdb for the [S]tack trace option.
-If @prg_name is NULL, g_get_prgname() is called to get the program name
-(which will work correctly if gdk_init() or gtk_init() has been called).
+@prg_name: 
 
 
 <!-- ##### MACRO G_BREAKPOINT ##### -->
 <para>
-Inserts a breakpoint instruction into the code (on x86 machines only).
+
 </para>
 
 
index 475782f84d78bd545d12d79618566b121ce9d9b2..16d841a9b184efdad9d6dcf67e25ec823bf06e7d 100644 (file)
@@ -2,52 +2,28 @@
 Windows Compatability Functions
 
 <!-- ##### SECTION Short_Description ##### -->
-functions to support portability to the Windows environment.
 
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-These functions and macros are provided in the GLib library when compiled
-on the Windows platform.
-</para>
-<para>
-Many of the macros simply rename available windows functions
-so that they use the same name as the standard Unix functions.
-This means that code written for the Unix platform will work without change
-under Windows.
-</para>
-<para>
-A few additional constants, types, and functions are also provided,
-to provide a common base set of functions across both the Unix and Windows
-environments.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
 
-</para>
-
-<!-- ##### MACRO MAXPATHLEN ##### -->
+<!-- ##### SECTION Long_Description ##### -->
 <para>
 
 </para>
 
 
-
-<!-- ##### MACRO NAME_MAX ##### -->
+<!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
 
-
-<!-- ##### MACRO getcwd ##### -->
+<!-- ##### MACRO MAXPATHLEN ##### -->
 <para>
 
 </para>
 
 
 
-<!-- ##### MACRO getpid ##### -->
+<!-- ##### MACRO NAME_MAX ##### -->
 <para>
 
 </para>
@@ -60,48 +36,6 @@ environments.
 </para>
 
 
-<!-- ##### MACRO access ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO open ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO read ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO write ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO lseek ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO close ##### -->
-<para>
-
-</para>
-
-
-
 <!-- ##### MACRO pipe ##### -->
 <para>
 
@@ -110,61 +44,57 @@ environments.
 @phandles: 
 
 
-<!-- ##### MACRO popen ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### MACRO pclose ##### -->
+<!-- ##### MACRO ftruncate ##### -->
 <para>
 
 </para>
 
+@fd: 
+@size: 
 
 
-<!-- ##### MACRO fdopen ##### -->
+<!-- ##### MACRO opendir ##### -->
 <para>
 
 </para>
 
 
 
-<!-- ##### MACRO ftruncate ##### -->
+<!-- ##### MACRO readdir ##### -->
 <para>
 
 </para>
 
-@fd: 
-@size: 
 
 
-<!-- ##### MACRO opendir ##### -->
+<!-- ##### MACRO rewinddir ##### -->
 <para>
 
 </para>
 
 
 
-<!-- ##### MACRO readdir ##### -->
+<!-- ##### MACRO closedir ##### -->
 <para>
 
 </para>
 
 
 
-<!-- ##### MACRO rewinddir ##### -->
+<!-- ##### FUNCTION g_win32_error_message ##### -->
 <para>
 
 </para>
 
+@error: 
+@Returns: 
 
 
-<!-- ##### MACRO closedir ##### -->
+<!-- ##### FUNCTION g_win32_getlocale ##### -->
 <para>
 
 </para>
 
+@Returns: