summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/reference/glib/.cvsignore5
-rw-r--r--docs/reference/glib/Makefile.am33
-rw-r--r--docs/reference/glib/glib-decl.txt7420
-rw-r--r--docs/reference/glib/glib-docs.sgml16
-rw-r--r--docs/reference/glib/glib-sections.txt327
-rw-r--r--docs/reference/glib/tmpl/async_queues.sgml172
-rw-r--r--docs/reference/glib/tmpl/error_reporting.sgml107
-rw-r--r--docs/reference/glib/tmpl/numerical.sgml100
-rw-r--r--docs/reference/glib/tmpl/queue.sgml142
-rw-r--r--docs/reference/glib/tmpl/random_numbers.sgml142
-rw-r--r--docs/reference/glib/tmpl/thread_pools.sgml134
-rw-r--r--docs/reference/glib/tmpl/trash_stack.sgml61
-rw-r--r--docs/reference/glib/tmpl/types.sgml644
-rw-r--r--docs/reference/glib/tmpl/unicode.sgml451
-rw-r--r--docs/reference/gobject/.cvsignore5
-rw-r--r--docs/reference/gobject/Makefile.am95
-rw-r--r--docs/reference/gobject/gobject-docs.sgml28
-rw-r--r--docs/reference/gobject/gobject-sections.txt318
-rw-r--r--docs/reference/gobject/tmpl/enumerations_flags.sgml280
-rw-r--r--docs/reference/gobject/tmpl/generic_values.sgml139
-rw-r--r--docs/reference/gobject/tmpl/gobject-unused.sgml0
-rw-r--r--docs/reference/gobject/tmpl/objects.sgml364
-rw-r--r--docs/reference/gobject/tmpl/param_specs.sgml261
-rw-r--r--docs/reference/gobject/tmpl/standard_params.sgml555
-rw-r--r--docs/reference/gobject/tmpl/types.sgml753
-rw-r--r--docs/reference/gobject/tmpl/value_collection.sgml44
-rw-r--r--docs/reference/gobject/tmpl/value_types.sgml287
27 files changed, 4513 insertions, 8370 deletions
diff --git a/docs/reference/glib/.cvsignore b/docs/reference/glib/.cvsignore
new file mode 100644
index 000000000..4a6f0576a
--- /dev/null
+++ b/docs/reference/glib/.cvsignore
@@ -0,0 +1,5 @@
+glib-unused.txt
+glib-decl-list.txt
+glib-decl.txt
+html
+sgml \ No newline at end of file
diff --git a/docs/reference/glib/Makefile.am b/docs/reference/glib/Makefile.am
index 4fea547e1..a18fdef75 100644
--- a/docs/reference/glib/Makefile.am
+++ b/docs/reference/glib/Makefile.am
@@ -16,12 +16,14 @@ tmpl_sources = \
tmpl/arrays.sgml \
tmpl/arrays_byte.sgml \
tmpl/arrays_pointer.sgml \
+ tmpl/async_queues.sgml \
tmpl/byte_order.sgml \
tmpl/caches.sgml \
tmpl/completion.sgml \
tmpl/datalist.sgml \
tmpl/datasets.sgml \
tmpl/date.sgml \
+ tmpl/error_reporting.sgml \
tmpl/glib-unused.sgml \
tmpl/hash_tables.sgml \
tmpl/hooks.sgml \
@@ -37,41 +39,56 @@ tmpl_sources = \
tmpl/messages.sgml \
tmpl/misc_utils.sgml \
tmpl/modules.sgml \
+ tmpl/numerical.sgml \
tmpl/quarks.sgml \
+ tmpl/queue.sgml \
+ tmpl/random_numbers.sgml \
tmpl/relations.sgml \
tmpl/scanner.sgml \
tmpl/string_chunks.sgml \
tmpl/string_utils.sgml \
tmpl/strings.sgml \
+ tmpl/thread_pools.sgml \
tmpl/threads.sgml \
tmpl/timers.sgml \
+ tmpl/trash_stack.sgml \
tmpl/trees-binary.sgml \
tmpl/trees-nary.sgml \
tmpl/type_conversion.sgml \
tmpl/types.sgml \
+ tmpl/unicode.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
+if ENABLE_GTK_DOC
+all-local: html/index.html
+
+glib-decl.txt:
+ $(MAKE) scan
+
+$(tmpl_sources): glib-decl.txt glib-sections.txt glib-overrides.txt
+ $(MAKE) templates
-sgml/glib-doc.bottom: $(tmpl_sources)
+sgml/glib-doc.bottom: $(tmpl_sources) glib-decl.txt
$(MAKE) sgml
+html/index.html: sgml/glib-doc.bottom
+ $(MAKE) html
+endif
+
scan:
-(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" )
+ && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="gobject config.h gmoduleconf.h gunidecomp.h gunichartables.h glibconfig-sysdefs.h" )
-templates: scan
+templates:
cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
sgml:
@@ -81,6 +98,8 @@ sgml:
html:
test -d $(srcdir)/html || mkdir $(srcdir)/html
-cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+ @echo '-- Fixing Crossreferences'
+ gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR)
clean-local:
rm -f *~ *.bak *.signals *-unused.txt
@@ -100,8 +119,6 @@ install-data-local:
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:
diff --git a/docs/reference/glib/glib-decl.txt b/docs/reference/glib/glib-decl.txt
deleted file mode 100644
index f8dd681b8..000000000
--- a/docs/reference/glib/glib-decl.txt
+++ /dev/null
@@ -1,7420 +0,0 @@
-<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>G_DIR_SEPARATOR_S</NAME>
-#define G_DIR_SEPARATOR_S "\\"
-</MACRO>
-<MACRO>
-<NAME>G_SEARCHPATH_SEPARATOR</NAME>
-#define G_SEARCHPATH_SEPARATOR ';'
-</MACRO>
-<MACRO>
-<NAME>G_SEARCHPATH_SEPARATOR_S</NAME>
-#define G_SEARCHPATH_SEPARATOR_S ";"
-</MACRO>
-<MACRO>
-<NAME>G_DIR_SEPARATOR</NAME>
-#define G_DIR_SEPARATOR '/'
-</MACRO>
-<MACRO>
-<NAME>G_DIR_SEPARATOR_S</NAME>
-#define G_DIR_SEPARATOR_S "/"
-</MACRO>
-<MACRO>
-<NAME>G_SEARCHPATH_SEPARATOR</NAME>
-#define G_SEARCHPATH_SEPARATOR ':'
-</MACRO>
-<MACRO>
-<NAME>G_SEARCHPATH_SEPARATOR_S</NAME>
-#define G_SEARCHPATH_SEPARATOR_S ":"
-</MACRO>
-<MACRO>
-<NAME>NULL</NAME>
-# define NULL (0L)
-</MACRO>
-<MACRO>
-<NAME>NULL</NAME>
-# define NULL ((void*) 0)
-</MACRO>
-<MACRO>
-<NAME>FALSE</NAME>
-#define FALSE (0)
-</MACRO>
-<MACRO>
-<NAME>TRUE</NAME>
-#define TRUE (!FALSE)
-</MACRO>
-<MACRO>
-<NAME>MAX</NAME>
-#define MAX(a, b) (((a) > (b)) ? (a) : (b))
-</MACRO>
-<MACRO>
-<NAME>MIN</NAME>
-#define MIN(a, b) (((a) < (b)) ? (a) : (b))
-</MACRO>
-<MACRO>
-<NAME>ABS</NAME>
-#define ABS(a) (((a) < 0) ? -(a) : (a))
-</MACRO>
-<MACRO>
-<NAME>CLAMP</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_VA_COPY</NAME>
-# define G_VA_COPY(ap1, ap2) g_memmove ((ap1), (ap2), sizeof (va_list))
-</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) \
- ((glong) ((guint8*) &((struct_type*) 0)->member))
-</MACRO>
-<MACRO>
-<NAME>G_STRUCT_MEMBER_P</NAME>
-#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \
- ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
-</MACRO>
-<MACRO>
-<NAME>G_STRUCT_MEMBER</NAME>
-#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \
- (*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
-</MACRO>
-<MACRO>
-<NAME>G_CAN_INLINE</NAME>
-# define G_CAN_INLINE 1
-</MACRO>
-<MACRO>
-<NAME>inline</NAME>
-# define inline __inline__
-</MACRO>
-<MACRO>
-<NAME>inline</NAME>
-# define inline __inline__
-</MACRO>
-<MACRO>
-<NAME>inline</NAME>
-# define inline __inline
-</MACRO>
-<MACRO>
-<NAME>inline</NAME>
-# define inline /* don't inline, then */
-</MACRO>
-<MACRO>
-<NAME>G_INLINE_FUNC</NAME>
-# define G_INLINE_FUNC extern inline
-</MACRO>
-<MACRO>
-<NAME>G_INLINE_FUNC</NAME>
-# define G_INLINE_FUNC extern
-</MACRO>
-<MACRO>
-<NAME>G_INLINE_FUNC</NAME>
-# define G_INLINE_FUNC static inline
-</MACRO>
-<MACRO>
-<NAME>G_INLINE_FUNC</NAME>
-# define G_INLINE_FUNC extern
-</MACRO>
-<MACRO>
-<NAME>G_STMT_START</NAME>
-# define G_STMT_START (void)(
-</MACRO>
-<MACRO>
-<NAME>G_STMT_END</NAME>
-# define G_STMT_END )
-</MACRO>
-<MACRO>
-<NAME>G_STMT_START</NAME>
-# define G_STMT_START if (1)
-</MACRO>
-<MACRO>
-<NAME>G_STMT_END</NAME>
-# define G_STMT_END else (void)0
-</MACRO>
-<MACRO>
-<NAME>G_STMT_START</NAME>
-# define G_STMT_START do
-</MACRO>
-<MACRO>
-<NAME>G_STMT_END</NAME>
-# define G_STMT_END while (0)
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_PRINTF</NAME>
-#define G_GNUC_PRINTF( format_idx, arg_idx ) \
- __attribute__((format (printf, format_idx, arg_idx)))
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_SCANF</NAME>
-#define G_GNUC_SCANF( format_idx, arg_idx ) \
- __attribute__((format (scanf, format_idx, arg_idx)))
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_FORMAT</NAME>
-#define G_GNUC_FORMAT( arg_idx ) \
- __attribute__((format_arg (arg_idx)))
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_NORETURN</NAME>
-#define G_GNUC_NORETURN \
- __attribute__((noreturn))
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_CONST</NAME>
-#define G_GNUC_CONST \
- __attribute__((const))
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_UNUSED</NAME>
-#define G_GNUC_UNUSED \
- __attribute__((unused))
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_PRINTF</NAME>
-#define G_GNUC_PRINTF( format_idx, arg_idx )
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_SCANF</NAME>
-#define G_GNUC_SCANF( format_idx, arg_idx )
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_FORMAT</NAME>
-#define G_GNUC_FORMAT( arg_idx )
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_NORETURN</NAME>
-#define G_GNUC_NORETURN
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_CONST</NAME>
-#define G_GNUC_CONST
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_UNUSED</NAME>
-#define G_GNUC_UNUSED
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_FUNCTION</NAME>
-#define G_GNUC_FUNCTION __FUNCTION__
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_PRETTY_FUNCTION</NAME>
-#define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_FUNCTION</NAME>
-#define G_GNUC_FUNCTION ""
-</MACRO>
-<MACRO>
-<NAME>G_GNUC_PRETTY_FUNCTION</NAME>
-#define G_GNUC_PRETTY_FUNCTION ""
-</MACRO>
-<MACRO>
-<NAME>ATEXIT</NAME>
-# define ATEXIT(proc) g_ATEXIT(proc)
-</MACRO>
-<MACRO>
-<NAME>G_NATIVE_ATEXIT</NAME>
-# define G_NATIVE_ATEXIT
-</MACRO>
-<MACRO>
-<NAME>G_BREAKPOINT</NAME>
-#define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>G_BREAKPOINT</NAME>
-#define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>G_BREAKPOINT</NAME>
-#define G_BREAKPOINT()
-</MACRO>
-<MACRO>
-<NAME>g_new</NAME>
-# define g_new(type, count) (ALLOC (type, count))
-</MACRO>
-<MACRO>
-<NAME>g_new0</NAME>
-# define g_new0(type, count) (CALLOC (type, count))
-</MACRO>
-<MACRO>
-<NAME>g_renew</NAME>
-# define g_renew(type, mem, count) (REALLOC (mem, type, count))
-</MACRO>
-<MACRO>
-<NAME>g_new</NAME>
-# define g_new(type, count) \
- ((type *) g_malloc ((unsigned) sizeof (type) * (count)))
-</MACRO>
-<MACRO>
-<NAME>g_new0</NAME>
-# define g_new0(type, count) \
- ((type *) g_malloc0 ((unsigned) sizeof (type) * (count)))
-</MACRO>
-<MACRO>
-<NAME>g_renew</NAME>
-# define g_renew(type, mem, count) \
- ((type *) g_realloc (mem, (unsigned) sizeof (type) * (count)))
-</MACRO>
-<MACRO>
-<NAME>g_mem_chunk_create</NAME>
-#define g_mem_chunk_create(type, pre_alloc, alloc_type) ( \
- g_mem_chunk_new (#type " mem chunks (" #pre_alloc ")", \
- sizeof (type), \
- sizeof (type) * (pre_alloc), \
- (alloc_type)) \
-)
-</MACRO>
-<MACRO>
-<NAME>g_chunk_new</NAME>
-#define g_chunk_new(type, chunk) ( \
- (type *) g_mem_chunk_alloc (chunk) \
-)
-</MACRO>
-<MACRO>
-<NAME>g_chunk_new0</NAME>
-#define g_chunk_new0(type, chunk) ( \
- (type *) g_mem_chunk_alloc0 (chunk) \
-)
-</MACRO>
-<MACRO>
-<NAME>g_chunk_free</NAME>
-#define g_chunk_free(mem, mem_chunk) G_STMT_START { \
- g_mem_chunk_free ((mem_chunk), (mem)); \
-} G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_assert</NAME>
-#define g_assert(expr)
-</MACRO>
-<MACRO>
-<NAME>g_assert_not_reached</NAME>
-#define g_assert_not_reached()
-</MACRO>
-<MACRO>
-<NAME>g_assert</NAME>
-#define g_assert(expr) G_STMT_START{ \
- if (!(expr)) \
- g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_ERROR, \
- "file %s: line %d (%s): assertion failed: (%s)", \
- __FILE__, \
- __LINE__, \
- __PRETTY_FUNCTION__, \
- #expr); }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_assert_not_reached</NAME>
-#define g_assert_not_reached() G_STMT_START{ \
- g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_ERROR, \
- "file %s: line %d (%s): should not be reached", \
- __FILE__, \
- __LINE__, \
- __PRETTY_FUNCTION__); }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_assert</NAME>
-#define g_assert(expr) G_STMT_START{ \
- if (!(expr)) \
- g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_ERROR, \
- "file %s: line %d: assertion failed: (%s)", \
- __FILE__, \
- __LINE__, \
- #expr); }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_assert_not_reached</NAME>
-#define g_assert_not_reached() G_STMT_START{ \
- g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_ERROR, \
- "file %s: line %d: should not be reached", \
- __FILE__, \
- __LINE__); }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_return_if_fail</NAME>
-#define g_return_if_fail(expr)
-</MACRO>
-<MACRO>
-<NAME>g_return_val_if_fail</NAME>
-#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__, \
- __LINE__, \
- __PRETTY_FUNCTION__, \
- #expr); \
- return; \
- }; }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_return_val_if_fail</NAME>
-#define g_return_val_if_fail(expr,val) G_STMT_START{ \
- if (!(expr)) \
- { \
- g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_CRITICAL, \
- "file %s: line %d (%s): assertion `%s' failed", \
- __FILE__, \
- __LINE__, \
- __PRETTY_FUNCTION__, \
- #expr); \
- 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__, \
- __LINE__, \
- #expr); \
- return; \
- }; }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_return_val_if_fail</NAME>
-#define g_return_val_if_fail(expr, val) G_STMT_START{ \
- if (!(expr)) \
- { \
- g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_CRITICAL, \
- "file %s: line %d: assertion `%s' failed", \
- __FILE__, \
- __LINE__, \
- #expr); \
- 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;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gshort</NAME>
-typedef short gshort;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>glong</NAME>
-typedef long glong;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gint</NAME>
-typedef int gint;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gboolean</NAME>
-typedef gint gboolean;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gstring</NAME>
-typedef gchar* gstring;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>guchar</NAME>
-typedef unsigned char guchar;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gushort</NAME>
-typedef unsigned short gushort;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gulong</NAME>
-typedef unsigned long gulong;
-</TYPEDEF>
-<TYPEDEF>
-<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;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gdouble</NAME>
-typedef double gdouble;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gldouble</NAME>
-typedef long double gldouble;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gldouble</NAME>
-typedef double gldouble;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gpointer</NAME>
-typedef void* gpointer;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gconstpointer</NAME>
-typedef const void *gconstpointer;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>GQuark</NAME>
-typedef guint32 GQuark;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>GTime</NAME>
-typedef gint32 GTime;
-</TYPEDEF>
-<MACRO>
-<NAME>G_LITTLE_ENDIAN</NAME>
-#define G_LITTLE_ENDIAN 1234
-</MACRO>
-<MACRO>
-<NAME>G_BIG_ENDIAN</NAME>
-#define G_BIG_ENDIAN 4321
-</MACRO>
-<MACRO>
-<NAME>G_PDP_ENDIAN</NAME>
-#define G_PDP_ENDIAN 3412 /* unused, need specific PDP check */
-</MACRO>
-<MACRO>
-<NAME>GUINT16_SWAP_LE_BE_CONSTANT</NAME>
-#define GUINT16_SWAP_LE_BE_CONSTANT(val) ((guint16) ( \
- (((guint16) (val) & (guint16) 0x00ffU) << 8) | \
- (((guint16) (val) & (guint16) 0xff00U) >> 8)))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_SWAP_LE_BE_CONSTANT</NAME>
-#define GUINT32_SWAP_LE_BE_CONSTANT(val) ((guint32) ( \
- (((guint32) (val) & (guint32) 0x000000ffU) << 24) | \
- (((guint32) (val) & (guint32) 0x0000ff00U) << 8) | \
- (((guint32) (val) & (guint32) 0x00ff0000U) >> 8) | \
- (((guint32) (val) & (guint32) 0xff000000U) >> 24)))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_SWAP_LE_BE_X86</NAME>
-# define GUINT16_SWAP_LE_BE_X86(val) \
- (__extension__ \
- ({ register guint16 __v; \
- if (__builtin_constant_p (val)) \
- __v = GUINT16_SWAP_LE_BE_CONSTANT (val); \
- else \
- __asm__ __const__ ("rorw $8, %w0" \
- : "=r" (__v) \
- : "0" ((guint16) (val))); \
- __v; }))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_SWAP_LE_BE</NAME>
-# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_X86 (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_SWAP_LE_BE_X86</NAME>
-# define GUINT32_SWAP_LE_BE_X86(val) \
- (__extension__ \
- ({ register guint32 __v; \
- if (__builtin_constant_p (val)) \
- __v = GUINT32_SWAP_LE_BE_CONSTANT (val); \
- else \
- __asm__ __const__ ("rorw $8, %w0\n\t" \
- "rorl $16, %0\n\t" \
- "rorw $8, %w0" \
- : "=r" (__v) \
- : "0" ((guint32) (val))); \
- __v; }))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_SWAP_LE_BE_X86</NAME>
-# define GUINT32_SWAP_LE_BE_X86(val) \
- (__extension__ \
- ({ register guint32 __v; \
- if (__builtin_constant_p (val)) \
- __v = GUINT32_SWAP_LE_BE_CONSTANT (val); \
- else \
- __asm__ __const__ ("bswap %0" \
- : "=r" (__v) \
- : "0" ((guint32) (val))); \
- __v; }))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_SWAP_LE_BE</NAME>
-# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86 (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_SWAP_LE_BE</NAME>
-# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_SWAP_LE_BE</NAME>
-# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_SWAP_LE_BE_CONSTANT</NAME>
-# define GUINT64_SWAP_LE_BE_CONSTANT(val) ((guint64) ( \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0x00000000000000ffU)) << 56) | \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0x000000000000ff00U)) << 40) | \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0x0000000000ff0000U)) << 24) | \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0x00000000ff000000U)) << 8) | \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0x000000ff00000000U)) >> 8) | \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0x0000ff0000000000U)) >> 24) | \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0x00ff000000000000U)) >> 40) | \
- (((guint64) (val) & \
- (guint64) G_GINT64_CONSTANT(0xff00000000000000U)) >> 56)))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_SWAP_LE_BE_X86</NAME>
-# define GUINT64_SWAP_LE_BE_X86(val) \
- (__extension__ \
- ({ union { guint64 __ll; \
- guint32 __l[2]; } __r; \
- if (__builtin_constant_p (val)) \
- __r.__ll = GUINT64_SWAP_LE_BE_CONSTANT (val); \
- else \
- { \
- union { guint64 __ll; \
- guint32 __l[2]; } __w; \
- __w.__ll = ((guint64) val); \
- __r.__l[0] = GUINT32_SWAP_LE_BE (__w.__l[1]); \
- __r.__l[1] = GUINT32_SWAP_LE_BE (__w.__l[0]); \
- } \
- __r.__ll; }))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_SWAP_LE_BE</NAME>
-# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_X86 (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_SWAP_LE_BE</NAME>
-# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT(val))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_SWAP_LE_PDP</NAME>
-#define GUINT16_SWAP_LE_PDP(val) ((guint16) (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_SWAP_BE_PDP</NAME>
-#define GUINT16_SWAP_BE_PDP(val) (GUINT16_SWAP_LE_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_SWAP_LE_PDP</NAME>
-#define GUINT32_SWAP_LE_PDP(val) ((guint32) ( \
- (((guint32) (val) & (guint32) 0x0000ffffU) << 16) | \
- (((guint32) (val) & (guint32) 0xffff0000U) >> 16)))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_SWAP_BE_PDP</NAME>
-#define GUINT32_SWAP_BE_PDP(val) ((guint32) ( \
- (((guint32) (val) & (guint32) 0x00ff00ffU) << 8) | \
- (((guint32) (val) & (guint32) 0xff00ff00U) >> 8)))
-</MACRO>
-<MACRO>
-<NAME>GINT16_FROM_LE</NAME>
-#define GINT16_FROM_LE(val) (GINT16_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_FROM_LE</NAME>
-#define GUINT16_FROM_LE(val) (GUINT16_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT16_FROM_BE</NAME>
-#define GINT16_FROM_BE(val) (GINT16_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_FROM_BE</NAME>
-#define GUINT16_FROM_BE(val) (GUINT16_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT32_FROM_LE</NAME>
-#define GINT32_FROM_LE(val) (GINT32_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_FROM_LE</NAME>
-#define GUINT32_FROM_LE(val) (GUINT32_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT32_FROM_BE</NAME>
-#define GINT32_FROM_BE(val) (GINT32_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_FROM_BE</NAME>
-#define GUINT32_FROM_BE(val) (GUINT32_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT64_FROM_LE</NAME>
-#define GINT64_FROM_LE(val) (GINT64_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_FROM_LE</NAME>
-#define GUINT64_FROM_LE(val) (GUINT64_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT64_FROM_BE</NAME>
-#define GINT64_FROM_BE(val) (GINT64_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_FROM_BE</NAME>
-#define GUINT64_FROM_BE(val) (GUINT64_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GLONG_FROM_LE</NAME>
-#define GLONG_FROM_LE(val) (GLONG_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GULONG_FROM_LE</NAME>
-#define GULONG_FROM_LE(val) (GULONG_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GLONG_FROM_BE</NAME>
-#define GLONG_FROM_BE(val) (GLONG_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GULONG_FROM_BE</NAME>
-#define GULONG_FROM_BE(val) (GULONG_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT_FROM_LE</NAME>
-#define GINT_FROM_LE(val) (GINT_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT_FROM_LE</NAME>
-#define GUINT_FROM_LE(val) (GUINT_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT_FROM_BE</NAME>
-#define GINT_FROM_BE(val) (GINT_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT_FROM_BE</NAME>
-#define GUINT_FROM_BE(val) (GUINT_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>g_ntohl</NAME>
-#define g_ntohl(val) (GUINT32_FROM_BE (val))
-</MACRO>
-<MACRO>
-<NAME>g_ntohs</NAME>
-#define g_ntohs(val) (GUINT16_FROM_BE (val))
-</MACRO>
-<MACRO>
-<NAME>g_htonl</NAME>
-#define g_htonl(val) (GUINT32_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>g_htons</NAME>
-#define g_htons(val) (GUINT16_TO_BE (val))
-</MACRO>
-<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>GLIB_CHECK_VERSION</NAME>
-#define GLIB_CHECK_VERSION(major,minor,micro) \
- (GLIB_MAJOR_VERSION > (major) || \
- (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION > (minor)) || \
- (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION == (minor) && \
- GLIB_MICRO_VERSION >= (micro)))
-</MACRO>
-<STRUCT>
-<NAME>GAllocator</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GArray</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GByteArray</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GCache</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GCompletion</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GData</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GDebugKey</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GHashTable</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GHook</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GHookList</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GList</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GMemChunk</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GNode</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GPtrArray</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GQueue</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GRand</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GRelation</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GScanner</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GScannerConfig</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GSList</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GString</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GStringChunk</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GTimer</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GTrashStack</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GTree</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GTuples</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GIOChannel</NAME>
-</STRUCT>
-<ENUM>
-<NAME>GTraverseFlags</NAME>
-typedef enum
-{
- G_TRAVERSE_LEAFS = 1 << 0,
- G_TRAVERSE_NON_LEAFS = 1 << 1,
- G_TRAVERSE_ALL = G_TRAVERSE_LEAFS | G_TRAVERSE_NON_LEAFS,
- G_TRAVERSE_MASK = 0x03
-} GTraverseFlags;
-</ENUM>
-<ENUM>
-<NAME>GTraverseType</NAME>
-typedef enum
-{
- G_IN_ORDER,
- G_PRE_ORDER,
- G_POST_ORDER,
- G_LEVEL_ORDER
-} GTraverseType;
-</ENUM>
-<MACRO>
-<NAME>G_LOG_LEVEL_USER_SHIFT</NAME>
-#define G_LOG_LEVEL_USER_SHIFT (8)
-</MACRO>
-<ENUM>
-<NAME>GLogLevelFlags</NAME>
-typedef enum
-{
- /* log flags */
- G_LOG_FLAG_RECURSION = 1 << 0,
- G_LOG_FLAG_FATAL = 1 << 1,
-
- /* GLib log levels */
- G_LOG_LEVEL_ERROR = 1 << 2, /* always fatal */
- G_LOG_LEVEL_CRITICAL = 1 << 3,
- G_LOG_LEVEL_WARNING = 1 << 4,
- G_LOG_LEVEL_MESSAGE = 1 << 5,
- G_LOG_LEVEL_INFO = 1 << 6,
- G_LOG_LEVEL_DEBUG = 1 << 7,
-
- G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
-} GLogLevelFlags;
-</ENUM>
-<MACRO>
-<NAME>G_LOG_FATAL_MASK</NAME>
-#define G_LOG_FATAL_MASK (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
-</MACRO>
-<USER_FUNCTION>
-<NAME>GCacheNewFunc</NAME>
-<RETURNS>gpointer </RETURNS>
-gpointer key
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GCacheDupFunc</NAME>
-<RETURNS>gpointer </RETURNS>
-gpointer value
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GCacheDestroyFunc</NAME>
-<RETURNS>void </RETURNS>
-gpointer value
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GCompareFunc</NAME>
-<RETURNS>gint </RETURNS>
-gconstpointer a,
- gconstpointer b
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GCompletionFunc</NAME>
-<RETURNS>gchar *</RETURNS>
-gpointer
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GDestroyNotify</NAME>
-<RETURNS>void </RETURNS>
-gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GDataForeachFunc</NAME>
-<RETURNS>void </RETURNS>
-GQuark key_id,
- gpointer data,
- gpointer user_data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GFunc</NAME>
-<RETURNS>void </RETURNS>
-gpointer data,
- gpointer user_data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHashFunc</NAME>
-<RETURNS>guint </RETURNS>
-gconstpointer key
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GFreeFunc</NAME>
-<RETURNS>void </RETURNS>
-gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHFunc</NAME>
-<RETURNS>void </RETURNS>
-gpointer key,
- gpointer value,
- gpointer user_data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHRFunc</NAME>
-<RETURNS>gboolean </RETURNS>
-gpointer key,
- gpointer value,
- gpointer user_data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHookCompareFunc</NAME>
-<RETURNS>gint </RETURNS>
-GHook *new_hook,
- GHook *sibling
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHookFindFunc</NAME>
-<RETURNS>gboolean </RETURNS>
-GHook *hook,
- gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHookMarshaller</NAME>
-<RETURNS>void </RETURNS>
-GHook *hook,
- gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHookCheckMarshaller</NAME>
-<RETURNS>gboolean </RETURNS>
-GHook *hook,
- gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHookFunc</NAME>
-<RETURNS>void </RETURNS>
-gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHookCheckFunc</NAME>
-<RETURNS>gboolean </RETURNS>
-gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GHookFreeFunc</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,
- GHook *hook
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GLogFunc</NAME>
-<RETURNS>void </RETURNS>
-const gchar *log_domain,
- GLogLevelFlags log_level,
- const gchar *message,
- gpointer user_data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GNodeTraverseFunc</NAME>
-<RETURNS>gboolean </RETURNS>
-GNode *node,
- gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GNodeForeachFunc</NAME>
-<RETURNS>void </RETURNS>
-GNode *node,
- gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GScannerMsgFunc</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,
- gchar *message,
- gint error
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GTraverseFunc</NAME>
-<RETURNS>gint </RETURNS>
-gpointer key,
- gpointer value,
- gpointer data
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GVoidFunc</NAME>
-<RETURNS>void </RETURNS>
-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
-{
- gpointer data;
- GList *next;
- GList *prev;
-};
-</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
-{
- gpointer data;
- GSList *next;
-};
-</STRUCT>
-<STRUCT>
-<NAME>GString</NAME>
-struct GString
-{
- gchar *str;
- gint len;
-};
-</STRUCT>
-<STRUCT>
-<NAME>GTrashStack</NAME>
-struct GTrashStack
-{
- GTrashStack *next;
-};
-</STRUCT>
-<STRUCT>
-<NAME>GTuples</NAME>
-struct GTuples
-{
- guint len;
-};
-</STRUCT>
-<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
-{
- gfloat v_float;
- struct {
- guint mantissa : 23;
- guint biased_exponent : 8;
- guint sign : 1;
- } mpn;
-};
-</UNION>
-<UNION>
-<NAME>GDoubleIEEE754</NAME>
-union GDoubleIEEE754
-{
- gdouble v_double;
- struct {
- guint mantissa_low : 32;
- guint mantissa_high : 20;
- guint biased_exponent : 11;
- guint sign : 1;
- } mpn;
-};
-</UNION>
-<UNION>
-<NAME>GFloatIEEE754</NAME>
-union GFloatIEEE754
-{
- gfloat v_float;
- struct {
- guint sign : 1;
- guint biased_exponent : 8;
- guint mantissa : 23;
- } mpn;
-};
-</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>
-GAllocator *allocator
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_pop_allocator</NAME>
-<RETURNS>void </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_alloc</NAME>
-<RETURNS>GList *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_free</NAME>
-<RETURNS>void </RETURNS>
-GList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_free_1</NAME>
-<RETURNS>void </RETURNS>
-GList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_append</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_prepend</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_insert</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,gpointer data,gint position
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_insert_sorted</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,gpointer data,GCompareFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_concat</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list1,GList *list2
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_remove</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,gconstpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_remove_link</NAME>
-<RETURNS>GList *</RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_copy</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_nth</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,guint n
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_find</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,gconstpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_find_custom</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,gconstpointer data,GCompareFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_position</NAME>
-<RETURNS>gint </RETURNS>
-GList *list,GList *llink
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_index</NAME>
-<RETURNS>gint </RETURNS>
-GList *list,gconstpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_last</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_first</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_length</NAME>
-<RETURNS>guint </RETURNS>
-GList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_foreach</NAME>
-<RETURNS>void </RETURNS>
-GList *list,GFunc func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_sort</NAME>
-<RETURNS>GList *</RETURNS>
-GList *list,GCompareFunc compare_func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_list_nth_data</NAME>
-<RETURNS>gpointer </RETURNS>
-GList *list,guint n
-</FUNCTION>
-<MACRO>
-<NAME>g_list_previous</NAME>
-#define g_list_previous(list) ((list) ? (((GList *)(list))->prev) : NULL)
-</MACRO>
-<MACRO>
-<NAME>g_list_next</NAME>
-#define g_list_next(list) ((list) ? (((GList *)(list))->next) : NULL)
-</MACRO>
-<FUNCTION>
-<NAME>g_slist_push_allocator</NAME>
-<RETURNS>void </RETURNS>
-GAllocator *allocator
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_pop_allocator</NAME>
-<RETURNS>void </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_alloc</NAME>
-<RETURNS>GSList *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_free</NAME>
-<RETURNS>void </RETURNS>
-GSList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_free_1</NAME>
-<RETURNS>void </RETURNS>
-GSList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_append</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_prepend</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_insert</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,gpointer data,gint position
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_insert_sorted</NAME>
-<RETURNS>GSList *</RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_remove</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,gconstpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_remove_link</NAME>
-<RETURNS>GSList *</RETURNS>
-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>
-<RETURNS>GSList *</RETURNS>
-GSList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_copy</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_nth</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,guint n
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_find</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,gconstpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_find_custom</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,gconstpointer data,GCompareFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_position</NAME>
-<RETURNS>gint </RETURNS>
-GSList *list,GSList *llink
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_index</NAME>
-<RETURNS>gint </RETURNS>
-GSList *list,gconstpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_last</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_length</NAME>
-<RETURNS>guint </RETURNS>
-GSList *list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_foreach</NAME>
-<RETURNS>void </RETURNS>
-GSList *list,GFunc func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_sort</NAME>
-<RETURNS>GSList *</RETURNS>
-GSList *list,GCompareFunc compare_func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_slist_nth_data</NAME>
-<RETURNS>gpointer </RETURNS>
-GSList *list,guint n
-</FUNCTION>
-<MACRO>
-<NAME>g_slist_next</NAME>
-#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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_destroy</NAME>
-<RETURNS>void </RETURNS>
-GHashTable *hash_table
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_insert</NAME>
-<RETURNS>void </RETURNS>
-GHashTable *hash_table,gpointer key,gpointer value
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_remove</NAME>
-<RETURNS>void </RETURNS>
-GHashTable *hash_table,gconstpointer key
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_lookup</NAME>
-<RETURNS>gpointer </RETURNS>
-GHashTable *hash_table,gconstpointer key
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_lookup_extended</NAME>
-<RETURNS>gboolean </RETURNS>
-GHashTable *hash_table,gconstpointer lookup_key,gpointer *orig_key,gpointer *value
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_foreach</NAME>
-<RETURNS>void </RETURNS>
-GHashTable *hash_table,GHFunc func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_foreach_remove</NAME>
-<RETURNS>guint </RETURNS>
-GHashTable *hash_table,GHRFunc func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hash_table_size</NAME>
-<RETURNS>guint </RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_cache_destroy</NAME>
-<RETURNS>void </RETURNS>
-GCache *cache
-</FUNCTION>
-<FUNCTION>
-<NAME>g_cache_insert</NAME>
-<RETURNS>gpointer </RETURNS>
-GCache *cache,gpointer key
-</FUNCTION>
-<FUNCTION>
-<NAME>g_cache_remove</NAME>
-<RETURNS>void </RETURNS>
-GCache *cache,gconstpointer value
-</FUNCTION>
-<FUNCTION>
-<NAME>g_cache_key_foreach</NAME>
-<RETURNS>void </RETURNS>
-GCache *cache,GHFunc func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_cache_value_foreach</NAME>
-<RETURNS>void </RETURNS>
-GCache *cache,GHFunc func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_new</NAME>
-<RETURNS>GTree *</RETURNS>
-GCompareFunc key_compare_func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_destroy</NAME>
-<RETURNS>void </RETURNS>
-GTree *tree
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_insert</NAME>
-<RETURNS>void </RETURNS>
-GTree *tree,gpointer key,gpointer value
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_remove</NAME>
-<RETURNS>void </RETURNS>
-GTree *tree,gconstpointer key
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_lookup</NAME>
-<RETURNS>gpointer </RETURNS>
-GTree *tree,gconstpointer key
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_traverse</NAME>
-<RETURNS>void </RETURNS>
-GTree *tree,GTraverseFunc traverse_func,GTraverseType traverse_type,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_search</NAME>
-<RETURNS>gpointer </RETURNS>
-GTree *tree,GCompareFunc search_func,gconstpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_height</NAME>
-<RETURNS>gint </RETURNS>
-GTree *tree
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tree_nnodes</NAME>
-<RETURNS>gint </RETURNS>
-GTree *tree
-</FUNCTION>
-<STRUCT>
-<NAME>GNode</NAME>
-struct GNode
-{
- gpointer data;
- GNode *next;
- GNode *prev;
- GNode *parent;
- GNode *children;
-};
-</STRUCT>
-<MACRO>
-<NAME>G_NODE_IS_ROOT</NAME>
-#define G_NODE_IS_ROOT(node) (((GNode*) (node))->parent == NULL && \
- ((GNode*) (node))->prev == NULL && \
- ((GNode*) (node))->next == NULL)
-</MACRO>
-<MACRO>
-<NAME>G_NODE_IS_LEAF</NAME>
-#define G_NODE_IS_LEAF(node) (((GNode*) (node))->children == NULL)
-</MACRO>
-<FUNCTION>
-<NAME>g_node_push_allocator</NAME>
-<RETURNS>void </RETURNS>
-GAllocator *allocator
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_pop_allocator</NAME>
-<RETURNS>void </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_new</NAME>
-<RETURNS>GNode *</RETURNS>
-gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_destroy</NAME>
-<RETURNS>void </RETURNS>
-GNode *root
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_unlink</NAME>
-<RETURNS>void </RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_insert_before</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *parent,GNode *sibling,GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_prepend</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *parent,GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_n_nodes</NAME>
-<RETURNS>guint </RETURNS>
-GNode *root,GTraverseFlags flags
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_get_root</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_is_ancestor</NAME>
-<RETURNS>gboolean </RETURNS>
-GNode *node,GNode *descendant
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_depth</NAME>
-<RETURNS>guint </RETURNS>
-GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_find</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *root,GTraverseType order,GTraverseFlags flags,gpointer data
-</FUNCTION>
-<MACRO>
-<NAME>g_node_append</NAME>
-#define g_node_append(parent, node) \
- g_node_insert_before ((parent), NULL, (node))
-</MACRO>
-<MACRO>
-<NAME>g_node_insert_data</NAME>
-#define g_node_insert_data(parent, position, data) \
- g_node_insert ((parent), (position), g_node_new (data))
-</MACRO>
-<MACRO>
-<NAME>g_node_insert_data_before</NAME>
-#define g_node_insert_data_before(parent, sibling, data) \
- g_node_insert_before ((parent), (sibling), g_node_new (data))
-</MACRO>
-<MACRO>
-<NAME>g_node_prepend_data</NAME>
-#define g_node_prepend_data(parent, data) \
- g_node_prepend ((parent), g_node_new (data))
-</MACRO>
-<MACRO>
-<NAME>g_node_append_data</NAME>
-#define g_node_append_data(parent, data) \
- g_node_insert_before ((parent), NULL, g_node_new (data))
-</MACRO>
-<FUNCTION>
-<NAME>g_node_traverse</NAME>
-<RETURNS>void </RETURNS>
-GNode *root,GTraverseType order,GTraverseFlags flags,gint max_depth,GNodeTraverseFunc func,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_max_height</NAME>
-<RETURNS>guint </RETURNS>
-GNode *root
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_children_foreach</NAME>
-<RETURNS>void </RETURNS>
-GNode *node,GTraverseFlags flags,GNodeForeachFunc func,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_reverse_children</NAME>
-<RETURNS>void </RETURNS>
-GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_n_children</NAME>
-<RETURNS>guint </RETURNS>
-GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_nth_child</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *node,guint n
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_last_child</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_find_child</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *node,GTraverseFlags flags,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_child_position</NAME>
-<RETURNS>gint </RETURNS>
-GNode *node,GNode *child
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_child_index</NAME>
-<RETURNS>gint </RETURNS>
-GNode *node,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_first_sibling</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *node
-</FUNCTION>
-<FUNCTION>
-<NAME>g_node_last_sibling</NAME>
-<RETURNS>GNode *</RETURNS>
-GNode *node
-</FUNCTION>
-<MACRO>
-<NAME>g_node_prev_sibling</NAME>
-#define g_node_prev_sibling(node) ((node) ? \
- ((GNode*) (node))->prev : NULL)
-</MACRO>
-<MACRO>
-<NAME>g_node_next_sibling</NAME>
-#define g_node_next_sibling(node) ((node) ? \
- ((GNode*) (node))->next : NULL)
-</MACRO>
-<MACRO>
-<NAME>g_node_first_child</NAME>
-#define g_node_first_child(node) ((node) ? \
- ((GNode*) (node))->children : NULL)
-</MACRO>
-<MACRO>
-<NAME>G_HOOK_FLAG_USER_SHIFT</NAME>
-#define G_HOOK_FLAG_USER_SHIFT (4)
-</MACRO>
-<ENUM>
-<NAME>GHookFlagMask</NAME>
-typedef enum
-{
- G_HOOK_FLAG_ACTIVE = 1 << 0,
- G_HOOK_FLAG_IN_CALL = 1 << 1,
- G_HOOK_FLAG_MASK = 0x0f
-} GHookFlagMask;
-</ENUM>
-<MACRO>
-<NAME>G_HOOK_DEFERRED_DESTROY</NAME>
-#define G_HOOK_DEFERRED_DESTROY ((GHookFreeFunc) 0x01)
-</MACRO>
-<STRUCT>
-<NAME>GHookList</NAME>
-struct GHookList
-{
- guint seq_id;
- guint hook_size;
- guint is_setup : 1;
- GHook *hooks;
- GMemChunk *hook_memchunk;
- GHookFreeFunc hook_free; /* virtual function */
- GHookFreeFunc hook_destroy; /* virtual function */
-};
-</STRUCT>
-<STRUCT>
-<NAME>GHook</NAME>
-struct GHook
-{
- gpointer data;
- GHook *next;
- GHook *prev;
- guint ref_count;
- guint hook_id;
- guint flags;
- gpointer func;
- GDestroyNotify destroy;
-};
-</STRUCT>
-<MACRO>
-<NAME>G_HOOK_ACTIVE</NAME>
-#define G_HOOK_ACTIVE(hook) ((((GHook*) hook)->flags & \
- G_HOOK_FLAG_ACTIVE) != 0)
-</MACRO>
-<MACRO>
-<NAME>G_HOOK_IN_CALL</NAME>
-#define G_HOOK_IN_CALL(hook) ((((GHook*) hook)->flags & \
- G_HOOK_FLAG_IN_CALL) != 0)
-</MACRO>
-<MACRO>
-<NAME>G_HOOK_IS_VALID</NAME>
-#define G_HOOK_IS_VALID(hook) (((GHook*) hook)->hook_id != 0 && \
- G_HOOK_ACTIVE (hook))
-</MACRO>
-<MACRO>
-<NAME>G_HOOK_IS_UNLINKED</NAME>
-#define G_HOOK_IS_UNLINKED(hook) (((GHook*) hook)->next == NULL && \
- ((GHook*) hook)->prev == NULL && \
- ((GHook*) hook)->hook_id == 0 && \
- ((GHook*) hook)->ref_count == 0)
-</MACRO>
-<FUNCTION>
-<NAME>g_hook_list_init</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,guint hook_size
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_list_clear</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_alloc</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_free</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,GHook *hook
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_ref</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,GHook *hook
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_unref</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,GHook *hook
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_destroy</NAME>
-<RETURNS>gboolean </RETURNS>
-GHookList *hook_list,guint hook_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_destroy_link</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,GHook *hook
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_prepend</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,GHook *hook
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_insert_before</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,GHook *sibling,GHook *hook
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_insert_sorted</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,GHook *hook,GHookCompareFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_get</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list,guint hook_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_find</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list,gboolean need_valids,GHookFindFunc func,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_find_data</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list,gboolean need_valids,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_find_func</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list,gboolean need_valids,gpointer func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_find_func_data</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list,gboolean need_valids,gpointer func,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_first_valid</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list,gboolean may_be_in_call
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_next_valid</NAME>
-<RETURNS>GHook *</RETURNS>
-GHookList *hook_list,GHook *hook,gboolean may_be_in_call
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_compare_ids</NAME>
-<RETURNS>gint </RETURNS>
-GHook *new_hook,GHook *sibling
-</FUNCTION>
-<MACRO>
-<NAME>g_hook_append</NAME>
-#define g_hook_append( hook_list, hook ) \
- g_hook_insert_before ((hook_list), NULL, (hook))
-</MACRO>
-<FUNCTION>
-<NAME>g_hook_list_invoke</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,gboolean may_recurse
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_list_invoke_check</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,gboolean may_recurse
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_list_marshal</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,gboolean may_recurse,GHookMarshaller marshaller,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_hook_list_marshal_check</NAME>
-<RETURNS>void </RETURNS>
-GHookList *hook_list,gboolean may_recurse,GHookCheckMarshaller marshaller,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_on_error_query</NAME>
-<RETURNS>void </RETURNS>
-const gchar *prg_name
-</FUNCTION>
-<FUNCTION>
-<NAME>g_on_error_stack_trace</NAME>
-<RETURNS>void </RETURNS>
-const gchar *prg_name
-</FUNCTION>
-<VARIABLE>
-<NAME>g_log_domain_glib</NAME>
-extern const gchar *g_log_domain_glib;
-</VARIABLE>
-<FUNCTION>
-<NAME>g_log_set_handler</NAME>
-<RETURNS>guint </RETURNS>
-const gchar *log_domain,GLogLevelFlags log_levels,GLogFunc log_func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_log_remove_handler</NAME>
-<RETURNS>void </RETURNS>
-const gchar *log_domain,guint handler_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_log_default_handler</NAME>
-<RETURNS>void </RETURNS>
-const gchar *log_domain,GLogLevelFlags log_level,const gchar *message,gpointer unused_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_log</NAME>
-<RETURNS>void </RETURNS>
-const gchar *log_domain,GLogLevelFlags log_level,const gchar *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_logv</NAME>
-<RETURNS>void </RETURNS>
-const gchar *log_domain,GLogLevelFlags log_level,const gchar *format,va_list args
-</FUNCTION>
-<FUNCTION>
-<NAME>g_log_set_fatal_mask</NAME>
-<RETURNS>GLogLevelFlags </RETURNS>
-const gchar *log_domain,GLogLevelFlags fatal_mask
-</FUNCTION>
-<FUNCTION>
-<NAME>g_log_set_always_fatal</NAME>
-<RETURNS>GLogLevelFlags </RETURNS>
-GLogLevelFlags fatal_mask
-</FUNCTION>
-<MACRO>
-<NAME>G_LOG_DOMAIN</NAME>
-#define G_LOG_DOMAIN ((gchar*) 0)
-</MACRO>
-<MACRO>
-<NAME>g_error</NAME>
-#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...) 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...) g_log (G_LOG_DOMAIN, \
- G_LOG_LEVEL_WARNING, \
- format)
-</MACRO>
-<USER_FUNCTION>
-<NAME>GPrintFunc</NAME>
-<RETURNS>void </RETURNS>
-const gchar *string
-</USER_FUNCTION>
-<FUNCTION>
-<NAME>g_print</NAME>
-<RETURNS>void </RETURNS>
-const gchar *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_set_print_handler</NAME>
-<RETURNS>GPrintFunc </RETURNS>
-GPrintFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_printerr</NAME>
-<RETURNS>void </RETURNS>
-const gchar *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_set_printerr_handler</NAME>
-<RETURNS>GPrintFunc </RETURNS>
-GPrintFunc func
-</FUNCTION>
-<USER_FUNCTION>
-<NAME>GErrorFunc</NAME>
-<RETURNS>void </RETURNS>
-const gchar *str
-</USER_FUNCTION>
-<USER_FUNCTION>
-<NAME>GWarningFunc</NAME>
-<RETURNS>void </RETURNS>
-const gchar *str
-</USER_FUNCTION>
-<FUNCTION>
-<NAME>g_set_error_handler</NAME>
-<RETURNS>GErrorFunc </RETURNS>
-GErrorFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_set_warning_handler</NAME>
-<RETURNS>GWarningFunc </RETURNS>
-GWarningFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_set_message_handler</NAME>
-<RETURNS>GPrintFunc </RETURNS>
-GPrintFunc func
-</FUNCTION>
-<MACRO>
-<NAME>g_malloc</NAME>
-#define g_malloc(size) ((gpointer) MALLOC (size))
-</MACRO>
-<MACRO>
-<NAME>g_malloc0</NAME>
-#define g_malloc0(size) ((gpointer) CALLOC (char, size))
-</MACRO>
-<MACRO>
-<NAME>g_realloc</NAME>
-#define g_realloc(mem,size) ((gpointer) REALLOC (mem, char, size))
-</MACRO>
-<MACRO>
-<NAME>g_free</NAME>
-#define g_free(mem) FREE (mem)
-</MACRO>
-<FUNCTION>
-<NAME>g_malloc</NAME>
-<RETURNS>gpointer </RETURNS>
-gulong size
-</FUNCTION>
-<FUNCTION>
-<NAME>g_malloc0</NAME>
-<RETURNS>gpointer </RETURNS>
-gulong size
-</FUNCTION>
-<FUNCTION>
-<NAME>g_realloc</NAME>
-<RETURNS>gpointer </RETURNS>
-gpointer mem,gulong size
-</FUNCTION>
-<FUNCTION>
-<NAME>g_free</NAME>
-<RETURNS>void </RETURNS>
-gpointer mem
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_profile</NAME>
-<RETURNS>void </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_check</NAME>
-<RETURNS>void </RETURNS>
-gpointer mem
-</FUNCTION>
-<FUNCTION>
-<NAME>g_allocator_new</NAME>
-<RETURNS>GAllocator *</RETURNS>
-const gchar *name,guint n_preallocs
-</FUNCTION>
-<FUNCTION>
-<NAME>g_allocator_free</NAME>
-<RETURNS>void </RETURNS>
-GAllocator *allocator
-</FUNCTION>
-<MACRO>
-<NAME>G_ALLOCATOR_LIST</NAME>
-#define G_ALLOCATOR_LIST (1)
-</MACRO>
-<MACRO>
-<NAME>G_ALLOCATOR_SLIST</NAME>
-#define G_ALLOCATOR_SLIST (2)
-</MACRO>
-<MACRO>
-<NAME>G_ALLOCATOR_NODE</NAME>
-#define G_ALLOCATOR_NODE (3)
-</MACRO>
-<MACRO>
-<NAME>G_ALLOC_ONLY</NAME>
-#define G_ALLOC_ONLY 1
-</MACRO>
-<MACRO>
-<NAME>G_ALLOC_AND_FREE</NAME>
-#define G_ALLOC_AND_FREE 2
-</MACRO>
-<FUNCTION>
-<NAME>g_mem_chunk_new</NAME>
-<RETURNS>GMemChunk *</RETURNS>
-gchar *name,gint atom_size,gulong area_size,gint type
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_destroy</NAME>
-<RETURNS>void </RETURNS>
-GMemChunk *mem_chunk
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_alloc</NAME>
-<RETURNS>gpointer </RETURNS>
-GMemChunk *mem_chunk
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_alloc0</NAME>
-<RETURNS>gpointer </RETURNS>
-GMemChunk *mem_chunk
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_free</NAME>
-<RETURNS>void </RETURNS>
-GMemChunk *mem_chunk,gpointer mem
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_clean</NAME>
-<RETURNS>void </RETURNS>
-GMemChunk *mem_chunk
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_reset</NAME>
-<RETURNS>void </RETURNS>
-GMemChunk *mem_chunk
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_print</NAME>
-<RETURNS>void </RETURNS>
-GMemChunk *mem_chunk
-</FUNCTION>
-<FUNCTION>
-<NAME>g_mem_chunk_info</NAME>
-<RETURNS>void </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_blow_chunks</NAME>
-<RETURNS>void </RETURNS>
-void
-</FUNCTION>
-<MACRO>
-<NAME>G_MICROSEC</NAME>
-#define G_MICROSEC 1000000
-</MACRO>
-<FUNCTION>
-<NAME>g_timer_new</NAME>
-<RETURNS>GTimer *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_timer_destroy</NAME>
-<RETURNS>void </RETURNS>
-GTimer *timer
-</FUNCTION>
-<FUNCTION>
-<NAME>g_timer_start</NAME>
-<RETURNS>void </RETURNS>
-GTimer *timer
-</FUNCTION>
-<FUNCTION>
-<NAME>g_timer_stop</NAME>
-<RETURNS>void </RETURNS>
-GTimer *timer
-</FUNCTION>
-<FUNCTION>
-<NAME>g_timer_reset</NAME>
-<RETURNS>void </RETURNS>
-GTimer *timer
-</FUNCTION>
-<FUNCTION>
-<NAME>g_timer_elapsed</NAME>
-<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 "_-|> <."
-</MACRO>
-<FUNCTION>
-<NAME>g_strdelimit</NAME>
-<RETURNS>gchar *</RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strerror</NAME>
-<RETURNS>gchar *</RETURNS>
-gint errnum
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strsignal</NAME>
-<RETURNS>gchar *</RETURNS>
-gint signum
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strcasecmp</NAME>
-<RETURNS>gint </RETURNS>
-const gchar *s1,const gchar *s2
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strncasecmp</NAME>
-<RETURNS>gint </RETURNS>
-const gchar *s1,const gchar *s2,guint n
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strdown</NAME>
-<RETURNS>gchar *</RETURNS>
-gchar *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strup</NAME>
-<RETURNS>gchar *</RETURNS>
-gchar *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strreverse</NAME>
-<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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strchomp</NAME>
-<RETURNS>gchar *</RETURNS>
-gchar *string
-</FUNCTION>
-<MACRO>
-<NAME>g_strstrip</NAME>
-#define g_strstrip( string ) g_strchomp (g_strchug (string))
-</MACRO>
-<FUNCTION>
-<NAME>g_strdup</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar *str
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strdup_printf</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strdup_vprintf</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar *format,va_list args
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strndup</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar *str,guint n
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strnfill</NAME>
-<RETURNS>gchar *</RETURNS>
-guint length,gchar fill_char
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strconcat</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar *string1,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strjoin</NAME>
-<RETURNS>gchar *</RETURNS>
-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>
-const gchar *source,const gchar *exceptions
-</FUNCTION>
-<FUNCTION>
-<NAME>g_memdup</NAME>
-<RETURNS>gpointer </RETURNS>
-gconstpointer mem,guint byte_size
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strsplit</NAME>
-<RETURNS>gchar **</RETURNS>
-const gchar *string,const gchar *delimiter,gint max_tokens
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strjoinv</NAME>
-<RETURNS>gchar *</RETURNS>
-const gchar *separator,gchar **str_array
-</FUNCTION>
-<FUNCTION>
-<NAME>g_strfreev</NAME>
-<RETURNS>void </RETURNS>
-gchar **str_array
-</FUNCTION>
-<FUNCTION>
-<NAME>g_printf_string_upper_bound</NAME>
-<RETURNS>guint </RETURNS>
-const gchar* format,va_list args
-</FUNCTION>
-<FUNCTION>
-<NAME>g_get_user_name</NAME>
-<RETURNS>gchar *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_get_real_name</NAME>
-<RETURNS>gchar *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_get_home_dir</NAME>
-<RETURNS>gchar *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_get_tmp_dir</NAME>
-<RETURNS>gchar *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_get_prgname</NAME>
-<RETURNS>gchar *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_set_prgname</NAME>
-<RETURNS>void </RETURNS>
-const gchar *prgname
-</FUNCTION>
-<FUNCTION>
-<NAME>g_parse_debug_string</NAME>
-<RETURNS>guint </RETURNS>
-const gchar *string,GDebugKey *keys,guint nkeys
-</FUNCTION>
-<FUNCTION>
-<NAME>g_snprintf</NAME>
-<RETURNS>gint </RETURNS>
-gchar *string,gulong n,gchar const *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_vsnprintf</NAME>
-<RETURNS>gint </RETURNS>
-gchar *string,gulong n,gchar const *format,va_list args
-</FUNCTION>
-<FUNCTION>
-<NAME>g_path_is_absolute</NAME>
-<RETURNS>gboolean </RETURNS>
-const gchar *file_name
-</FUNCTION>
-<FUNCTION>
-<NAME>g_path_skip_root</NAME>
-<RETURNS>gchar *</RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_get_current_dir</NAME>
-<RETURNS>gchar *</RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_atexit</NAME>
-<RETURNS>void </RETURNS>
-GVoidFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_bit_nth_lsf</NAME>
-<RETURNS>gint </RETURNS>
-guint32 mask,gint nth_bit
-</FUNCTION>
-<FUNCTION>
-<NAME>g_bit_nth_msf</NAME>
-<RETURNS>gint </RETURNS>
-guint32 mask,gint nth_bit
-</FUNCTION>
-<FUNCTION>
-<NAME>g_bit_storage</NAME>
-<RETURNS>guint </RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_chunk_free</NAME>
-<RETURNS>void </RETURNS>
-GStringChunk *chunk
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_chunk_insert</NAME>
-<RETURNS>gchar *</RETURNS>
-GStringChunk *chunk,const gchar *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_chunk_insert_const</NAME>
-<RETURNS>gchar *</RETURNS>
-GStringChunk *chunk,const gchar *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_new</NAME>
-<RETURNS>GString *</RETURNS>
-const gchar *init
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_sized_new</NAME>
-<RETURNS>GString *</RETURNS>
-guint dfl_size
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_free</NAME>
-<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 *string,const gchar *rval
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_truncate</NAME>
-<RETURNS>GString *</RETURNS>
-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
-</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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_prepend</NAME>
-<RETURNS>GString *</RETURNS>
-GString *string,const gchar *val
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_prepend_c</NAME>
-<RETURNS>GString *</RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_insert_c</NAME>
-<RETURNS>GString *</RETURNS>
-GString *string,gint pos,gchar c
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_erase</NAME>
-<RETURNS>GString *</RETURNS>
-GString *string,gint pos,gint len
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_down</NAME>
-<RETURNS>GString *</RETURNS>
-GString *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_up</NAME>
-<RETURNS>GString *</RETURNS>
-GString *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_sprintf</NAME>
-<RETURNS>void </RETURNS>
-GString *string,const gchar *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_string_sprintfa</NAME>
-<RETURNS>void </RETURNS>
-GString *string,const gchar *format,...
-</FUNCTION>
-<MACRO>
-<NAME>g_array_append_val</NAME>
-#define g_array_append_val(a,v) g_array_append_vals (a, &v, 1)
-</MACRO>
-<MACRO>
-<NAME>g_array_prepend_val</NAME>
-#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &v, 1)
-</MACRO>
-<MACRO>
-<NAME>g_array_insert_val</NAME>
-#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &v, 1)
-</MACRO>
-<MACRO>
-<NAME>g_array_index</NAME>
-#define g_array_index(a,t,i) (((t*) (a)->data) [(i)])
-</MACRO>
-<FUNCTION>
-<NAME>g_array_new</NAME>
-<RETURNS>GArray *</RETURNS>
-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>gchar *</RETURNS>
-GArray *array,gboolean free_segment
-</FUNCTION>
-<FUNCTION>
-<NAME>g_array_append_vals</NAME>
-<RETURNS>GArray *</RETURNS>
-GArray *array,gconstpointer data,guint len
-</FUNCTION>
-<FUNCTION>
-<NAME>g_array_prepend_vals</NAME>
-<RETURNS>GArray *</RETURNS>
-GArray *array,gconstpointer data,guint len
-</FUNCTION>
-<FUNCTION>
-<NAME>g_array_insert_vals</NAME>
-<RETURNS>GArray *</RETURNS>
-GArray *array,guint index,gconstpointer data,guint len
-</FUNCTION>
-<FUNCTION>
-<NAME>g_array_set_size</NAME>
-<RETURNS>GArray *</RETURNS>
-GArray *array,guint length
-</FUNCTION>
-<FUNCTION>
-<NAME>g_array_remove_index</NAME>
-<RETURNS>GArray *</RETURNS>
-GArray *array,guint index
-</FUNCTION>
-<FUNCTION>
-<NAME>g_array_remove_index_fast</NAME>
-<RETURNS>GArray *</RETURNS>
-GArray *array,guint index
-</FUNCTION>
-<MACRO>
-<NAME>g_ptr_array_index</NAME>
-#define g_ptr_array_index(array,index) (array->pdata)[index]
-</MACRO>
-<FUNCTION>
-<NAME>g_ptr_array_new</NAME>
-<RETURNS>GPtrArray *</RETURNS>
-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>gpointer *</RETURNS>
-GPtrArray *array,gboolean free_seg
-</FUNCTION>
-<FUNCTION>
-<NAME>g_ptr_array_set_size</NAME>
-<RETURNS>void </RETURNS>
-GPtrArray *array,gint length
-</FUNCTION>
-<FUNCTION>
-<NAME>g_ptr_array_remove_index</NAME>
-<RETURNS>gpointer </RETURNS>
-GPtrArray *array,guint index
-</FUNCTION>
-<FUNCTION>
-<NAME>g_ptr_array_remove_index_fast</NAME>
-<RETURNS>gpointer </RETURNS>
-GPtrArray *array,guint index
-</FUNCTION>
-<FUNCTION>
-<NAME>g_ptr_array_remove</NAME>
-<RETURNS>gboolean </RETURNS>
-GPtrArray *array,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_ptr_array_remove_fast</NAME>
-<RETURNS>gboolean </RETURNS>
-GPtrArray *array,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_ptr_array_add</NAME>
-<RETURNS>void </RETURNS>
-GPtrArray *array,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_byte_array_new</NAME>
-<RETURNS>GByteArray *</RETURNS>
-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>guint8 *</RETURNS>
-GByteArray *array,gboolean free_segment
-</FUNCTION>
-<FUNCTION>
-<NAME>g_byte_array_append</NAME>
-<RETURNS>GByteArray *</RETURNS>
-GByteArray *array,const guint8 *data,guint len
-</FUNCTION>
-<FUNCTION>
-<NAME>g_byte_array_prepend</NAME>
-<RETURNS>GByteArray *</RETURNS>
-GByteArray *array,const guint8 *data,guint len
-</FUNCTION>
-<FUNCTION>
-<NAME>g_byte_array_set_size</NAME>
-<RETURNS>GByteArray *</RETURNS>
-GByteArray *array,guint length
-</FUNCTION>
-<FUNCTION>
-<NAME>g_byte_array_remove_index</NAME>
-<RETURNS>GByteArray *</RETURNS>
-GByteArray *array,guint index
-</FUNCTION>
-<FUNCTION>
-<NAME>g_byte_array_remove_index_fast</NAME>
-<RETURNS>GByteArray *</RETURNS>
-GByteArray *array,guint index
-</FUNCTION>
-<FUNCTION>
-<NAME>g_str_equal</NAME>
-<RETURNS>gboolean </RETURNS>
-gconstpointer v,gconstpointer v2
-</FUNCTION>
-<FUNCTION>
-<NAME>g_str_hash</NAME>
-<RETURNS>guint </RETURNS>
-gconstpointer v
-</FUNCTION>
-<FUNCTION>
-<NAME>g_int_equal</NAME>
-<RETURNS>gint </RETURNS>
-gconstpointer v,gconstpointer v2
-</FUNCTION>
-<FUNCTION>
-<NAME>g_int_hash</NAME>
-<RETURNS>guint </RETURNS>
-gconstpointer v
-</FUNCTION>
-<FUNCTION>
-<NAME>g_direct_hash</NAME>
-<RETURNS>guint </RETURNS>
-gconstpointer v
-</FUNCTION>
-<FUNCTION>
-<NAME>g_direct_equal</NAME>
-<RETURNS>gint </RETURNS>
-gconstpointer v,gconstpointer v2
-</FUNCTION>
-<FUNCTION>
-<NAME>g_quark_try_string</NAME>
-<RETURNS>GQuark </RETURNS>
-const gchar *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_quark_from_static_string</NAME>
-<RETURNS>GQuark </RETURNS>
-const gchar *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_quark_from_string</NAME>
-<RETURNS>GQuark </RETURNS>
-const gchar *string
-</FUNCTION>
-<FUNCTION>
-<NAME>g_quark_to_string</NAME>
-<RETURNS>gchar *</RETURNS>
-GQuark quark
-</FUNCTION>
-<FUNCTION>
-<NAME>g_datalist_init</NAME>
-<RETURNS>void </RETURNS>
-GData **datalist
-</FUNCTION>
-<FUNCTION>
-<NAME>g_datalist_clear</NAME>
-<RETURNS>void </RETURNS>
-GData **datalist
-</FUNCTION>
-<FUNCTION>
-<NAME>g_datalist_id_get_data</NAME>
-<RETURNS>gpointer </RETURNS>
-GData **datalist,GQuark key_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_datalist_id_set_data_full</NAME>
-<RETURNS>void </RETURNS>
-GData **datalist,GQuark key_id,gpointer data,GDestroyNotify destroy_func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_datalist_id_remove_no_notify</NAME>
-<RETURNS>gpointer </RETURNS>
-GData **datalist,GQuark key_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_datalist_foreach</NAME>
-<RETURNS>void </RETURNS>
-GData **datalist,GDataForeachFunc func,gpointer user_data
-</FUNCTION>
-<MACRO>
-<NAME>g_datalist_id_set_data</NAME>
-#define g_datalist_id_set_data(dl, q, d) \
- g_datalist_id_set_data_full ((dl), (q), (d), NULL)
-</MACRO>
-<MACRO>
-<NAME>g_datalist_id_remove_data</NAME>
-#define g_datalist_id_remove_data(dl, q) \
- g_datalist_id_set_data ((dl), (q), NULL)
-</MACRO>
-<MACRO>
-<NAME>g_datalist_get_data</NAME>
-#define g_datalist_get_data(dl, k) \
- (g_datalist_id_get_data ((dl), g_quark_try_string (k)))
-</MACRO>
-<MACRO>
-<NAME>g_datalist_set_data_full</NAME>
-#define g_datalist_set_data_full(dl, k, d, f) \
- g_datalist_id_set_data_full ((dl), g_quark_from_string (k), (d), (f))
-</MACRO>
-<MACRO>
-<NAME>g_datalist_remove_no_notify</NAME>
-#define g_datalist_remove_no_notify(dl, k) \
- g_datalist_id_remove_no_notify ((dl), g_quark_try_string (k))
-</MACRO>
-<MACRO>
-<NAME>g_datalist_set_data</NAME>
-#define g_datalist_set_data(dl, k, d) \
- g_datalist_set_data_full ((dl), (k), (d), NULL)
-</MACRO>
-<MACRO>
-<NAME>g_datalist_remove_data</NAME>
-#define g_datalist_remove_data(dl, k) \
- g_datalist_id_set_data ((dl), g_quark_try_string (k), NULL)
-</MACRO>
-<FUNCTION>
-<NAME>g_dataset_destroy</NAME>
-<RETURNS>void </RETURNS>
-gconstpointer dataset_location
-</FUNCTION>
-<FUNCTION>
-<NAME>g_dataset_id_get_data</NAME>
-<RETURNS>gpointer </RETURNS>
-gconstpointer dataset_location,GQuark key_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_dataset_id_set_data_full</NAME>
-<RETURNS>void </RETURNS>
-gconstpointer dataset_location,GQuark key_id,gpointer data,GDestroyNotify destroy_func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_dataset_id_remove_no_notify</NAME>
-<RETURNS>gpointer </RETURNS>
-gconstpointer dataset_location,GQuark key_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_dataset_foreach</NAME>
-<RETURNS>void </RETURNS>
-gconstpointer dataset_location,GDataForeachFunc func,gpointer user_data
-</FUNCTION>
-<MACRO>
-<NAME>g_dataset_id_set_data</NAME>
-#define g_dataset_id_set_data(l, k, d) \
- g_dataset_id_set_data_full ((l), (k), (d), NULL)
-</MACRO>
-<MACRO>
-<NAME>g_dataset_id_remove_data</NAME>
-#define g_dataset_id_remove_data(l, k) \
- g_dataset_id_set_data ((l), (k), NULL)
-</MACRO>
-<MACRO>
-<NAME>g_dataset_get_data</NAME>
-#define g_dataset_get_data(l, k) \
- (g_dataset_id_get_data ((l), g_quark_try_string (k)))
-</MACRO>
-<MACRO>
-<NAME>g_dataset_set_data_full</NAME>
-#define g_dataset_set_data_full(l, k, d, f) \
- g_dataset_id_set_data_full ((l), g_quark_from_string (k), (d), (f))
-</MACRO>
-<MACRO>
-<NAME>g_dataset_remove_no_notify</NAME>
-#define g_dataset_remove_no_notify(l, k) \
- g_dataset_id_remove_no_notify ((l), g_quark_try_string (k))
-</MACRO>
-<MACRO>
-<NAME>g_dataset_set_data</NAME>
-#define g_dataset_set_data(l, k, d) \
- g_dataset_set_data_full ((l), (k), (d), NULL)
-</MACRO>
-<MACRO>
-<NAME>g_dataset_remove_data</NAME>
-#define g_dataset_remove_data(l, k) \
- g_dataset_id_set_data ((l), g_quark_try_string (k), NULL)
-</MACRO>
-<MACRO>
-<NAME>G_CSET_A_2_Z</NAME>
-#define G_CSET_A_2_Z "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-</MACRO>
-<MACRO>
-<NAME>G_CSET_a_2_z</NAME>
-#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"\
- "\321\322\323\324\325\326"\
- "\330\331\332\333\334\335\336"
-</MACRO>
-<MACRO>
-<NAME>G_CSET_LATINS</NAME>
-#define G_CSET_LATINS "\337\340\341\342\343\344\345\346"\
- "\347\350\351\352\353\354\355\356\357\360"\
- "\361\362\363\364\365\366"\
- "\370\371\372\373\374\375\376\377"
-</MACRO>
-<ENUM>
-<NAME>GErrorType</NAME>
-typedef enum
-{
- G_ERR_UNKNOWN,
- G_ERR_UNEXP_EOF,
- G_ERR_UNEXP_EOF_IN_STRING,
- G_ERR_UNEXP_EOF_IN_COMMENT,
- G_ERR_NON_DIGIT_IN_CONST,
- G_ERR_DIGIT_RADIX,
- G_ERR_FLOAT_RADIX,
- G_ERR_FLOAT_MALFORMED
-} GErrorType;
-</ENUM>
-<ENUM>
-<NAME>GTokenType</NAME>
-typedef enum
-{
- G_TOKEN_EOF = 0,
-
- G_TOKEN_LEFT_PAREN = '(',
- G_TOKEN_RIGHT_PAREN = ')',
- G_TOKEN_LEFT_CURLY = '{',
- G_TOKEN_RIGHT_CURLY = '}',
- G_TOKEN_LEFT_BRACE = '[',
- G_TOKEN_RIGHT_BRACE = ']',
- G_TOKEN_EQUAL_SIGN = '=',
- G_TOKEN_COMMA = ',',
-
- G_TOKEN_NONE = 256,
-
- G_TOKEN_ERROR,
-
- G_TOKEN_CHAR,
- G_TOKEN_BINARY,
- G_TOKEN_OCTAL,
- G_TOKEN_INT,
- G_TOKEN_HEX,
- G_TOKEN_FLOAT,
- G_TOKEN_STRING,
-
- G_TOKEN_SYMBOL,
- G_TOKEN_IDENTIFIER,
- G_TOKEN_IDENTIFIER_NULL,
-
- G_TOKEN_COMMENT_SINGLE,
- G_TOKEN_COMMENT_MULTI,
- G_TOKEN_LAST
-} GTokenType;
-</ENUM>
-<UNION>
-<NAME>GTokenValue</NAME>
-union GTokenValue
-{
- gpointer v_symbol;
- gchar *v_identifier;
- gulong v_binary;
- gulong v_octal;
- gulong v_int;
- gdouble v_float;
- gulong v_hex;
- gchar *v_string;
- gchar *v_comment;
- guchar v_char;
- guint v_error;
-};
-</UNION>
-<STRUCT>
-<NAME>GScannerConfig</NAME>
-struct GScannerConfig
-{
- /* Character sets
- */
- gchar *cset_skip_characters; /* default: " \t\n" */
- gchar *cset_identifier_first;
- gchar *cset_identifier_nth;
- gchar *cpair_comment_single; /* default: "#\n" */
-
- /* Should symbol lookup work case sensitive?
- */
- guint case_sensitive : 1;
-
- /* Boolean values to be adjusted "on the fly"
- * to configure scanning behaviour.
- */
- guint skip_comment_multi : 1; /* C like comment */
- guint skip_comment_single : 1; /* single line comment */
- guint scan_comment_multi : 1; /* scan multi line comments? */
- guint scan_identifier : 1;
- guint scan_identifier_1char : 1;
- guint scan_identifier_NULL : 1;
- guint scan_symbols : 1;
- guint scan_binary : 1;
- guint scan_octal : 1;
- guint scan_float : 1;
- guint scan_hex : 1; /* `0x0ff0' */
- guint scan_hex_dollar : 1; /* `$0ff0' */
- guint scan_string_sq : 1; /* string: 'anything' */
- guint scan_string_dq : 1; /* string: "\\-escapes!\n" */
- guint numbers_2_int : 1; /* bin, octal, hex => int */
- guint int_2_float : 1; /* int => G_TOKEN_FLOAT? */
- guint identifier_2_string : 1;
- guint char_2_token : 1; /* return G_TOKEN_CHAR? */
- guint symbol_2_token : 1;
- guint scope_0_fallback : 1; /* try scope 0 on lookups? */
-};
-</STRUCT>
-<STRUCT>
-<NAME>GScanner</NAME>
-struct GScanner
-{
- /* unused fields */
- gpointer user_data;
- guint max_parse_errors;
-
- /* g_scanner_error() increments this field */
- guint parse_errors;
-
- /* name of input stream, featured by the default message handler */
- const gchar *input_name;
-
- /* data pointer for derived structures */
- gpointer derived_data;
-
- /* link into the scanner configuration */
- GScannerConfig *config;
-
- /* fields filled in after g_scanner_get_next_token() */
- GTokenType token;
- GTokenValue value;
- guint line;
- guint position;
-
- /* fields filled in after g_scanner_peek_next_token() */
- GTokenType next_token;
- GTokenValue next_value;
- guint next_line;
- guint next_position;
-
- /* to be considered private */
- GHashTable *symbol_table;
- gint input_fd;
- const gchar *text;
- const gchar *text_end;
- gchar *buffer;
- guint scope_id;
-
- /* handler function for _warn and _error */
- GScannerMsgFunc msg_handler;
-};
-</STRUCT>
-<FUNCTION>
-<NAME>g_scanner_new</NAME>
-<RETURNS>GScanner *</RETURNS>
-GScannerConfig *config_templ
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_destroy</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_input_file</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,gint input_fd
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_sync_file_offset</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_input_text</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,const gchar *text,guint text_len
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_get_next_token</NAME>
-<RETURNS>GTokenType </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_peek_next_token</NAME>
-<RETURNS>GTokenType </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_cur_token</NAME>
-<RETURNS>GTokenType </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_cur_value</NAME>
-<RETURNS>GTokenValue </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_cur_line</NAME>
-<RETURNS>guint </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_cur_position</NAME>
-<RETURNS>guint </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_eof</NAME>
-<RETURNS>gboolean </RETURNS>
-GScanner *scanner
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_set_scope</NAME>
-<RETURNS>guint </RETURNS>
-GScanner *scanner,guint scope_id
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_scope_add_symbol</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,guint scope_id,const gchar *symbol,gpointer value
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_scope_remove_symbol</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,guint scope_id,const gchar *symbol
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_scope_lookup_symbol</NAME>
-<RETURNS>gpointer </RETURNS>
-GScanner *scanner,guint scope_id,const gchar *symbol
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_scope_foreach_symbol</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,guint scope_id,GHFunc func,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_lookup_symbol</NAME>
-<RETURNS>gpointer </RETURNS>
-GScanner *scanner,const gchar *symbol
-</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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_error</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,const gchar *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_warn</NAME>
-<RETURNS>void </RETURNS>
-GScanner *scanner,const gchar *format,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_scanner_stat_mode</NAME>
-<RETURNS>gint </RETURNS>
-const gchar *filename
-</FUNCTION>
-<MACRO>
-<NAME>g_scanner_add_symbol</NAME>
-#define g_scanner_add_symbol( scanner, symbol, value ) G_STMT_START { \
- g_scanner_scope_add_symbol ((scanner), 0, (symbol), (value)); \
-} G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_scanner_remove_symbol</NAME>
-#define g_scanner_remove_symbol( scanner, symbol ) G_STMT_START { \
- g_scanner_scope_remove_symbol ((scanner), 0, (symbol)); \
-} G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>g_scanner_foreach_symbol</NAME>
-#define g_scanner_foreach_symbol( scanner, func, data ) G_STMT_START { \
- 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
-{
- GList* items;
- GCompletionFunc func;
-
- gchar* prefix;
- GList* cache;
-};
-</STRUCT>
-<FUNCTION>
-<NAME>g_completion_new</NAME>
-<RETURNS>GCompletion *</RETURNS>
-GCompletionFunc func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_completion_add_items</NAME>
-<RETURNS>void </RETURNS>
-GCompletion* cmp,GList* items
-</FUNCTION>
-<FUNCTION>
-<NAME>g_completion_remove_items</NAME>
-<RETURNS>void </RETURNS>
-GCompletion* cmp,GList* items
-</FUNCTION>
-<FUNCTION>
-<NAME>g_completion_clear_items</NAME>
-<RETURNS>void </RETURNS>
-GCompletion* cmp
-</FUNCTION>
-<FUNCTION>
-<NAME>g_completion_complete</NAME>
-<RETURNS>GList *</RETURNS>
-GCompletion* cmp,gchar* prefix,gchar** new_prefix
-</FUNCTION>
-<FUNCTION>
-<NAME>g_completion_free</NAME>
-<RETURNS>void </RETURNS>
-GCompletion* cmp
-</FUNCTION>
-<TYPEDEF>
-<NAME>GDateYear</NAME>
-typedef guint16 GDateYear;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>GDateDay</NAME>
-typedef guint8 GDateDay; /* day of the month */
-</TYPEDEF>
-<STRUCT>
-<NAME>GDate</NAME>
-</STRUCT>
-<ENUM>
-<NAME>GDateDMY</NAME>
-typedef enum
-{
- G_DATE_DAY = 0,
- G_DATE_MONTH = 1,
- G_DATE_YEAR = 2
-} GDateDMY;
-</ENUM>
-<ENUM>
-<NAME>GDateWeekday</NAME>
-typedef enum
-{
- G_DATE_BAD_WEEKDAY = 0,
- G_DATE_MONDAY = 1,
- G_DATE_TUESDAY = 2,
- G_DATE_WEDNESDAY = 3,
- G_DATE_THURSDAY = 4,
- G_DATE_FRIDAY = 5,
- G_DATE_SATURDAY = 6,
- G_DATE_SUNDAY = 7
-} GDateWeekday;
-</ENUM>
-<ENUM>
-<NAME>GDateMonth</NAME>
-typedef enum
-{
- G_DATE_BAD_MONTH = 0,
- G_DATE_JANUARY = 1,
- G_DATE_FEBRUARY = 2,
- G_DATE_MARCH = 3,
- G_DATE_APRIL = 4,
- G_DATE_MAY = 5,
- G_DATE_JUNE = 6,
- G_DATE_JULY = 7,
- G_DATE_AUGUST = 8,
- G_DATE_SEPTEMBER = 9,
- G_DATE_OCTOBER = 10,
- G_DATE_NOVEMBER = 11,
- G_DATE_DECEMBER = 12
-} GDateMonth;
-</ENUM>
-<MACRO>
-<NAME>G_DATE_BAD_JULIAN</NAME>
-#define G_DATE_BAD_JULIAN 0U
-</MACRO>
-<MACRO>
-<NAME>G_DATE_BAD_DAY</NAME>
-#define G_DATE_BAD_DAY 0U
-</MACRO>
-<MACRO>
-<NAME>G_DATE_BAD_YEAR</NAME>
-#define G_DATE_BAD_YEAR 0U
-</MACRO>
-<STRUCT>
-<NAME>GDate</NAME>
-struct GDate
-{
- guint julian_days : 32; /* julian days representation - we use a
- * bitfield hoping that 64 bit platforms
- * will pack this whole struct in one big
- * int
- */
-
- guint julian : 1; /* julian is valid */
- guint dmy : 1; /* dmy is valid */
-
- /* DMY representation */
- guint day : 6;
- guint month : 4;
- guint year : 16;
-};
-</STRUCT>
-<FUNCTION>
-<NAME>g_date_new</NAME>
-<RETURNS>GDate *</RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_new_dmy</NAME>
-<RETURNS>GDate *</RETURNS>
-GDateDay day,GDateMonth month,GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_new_julian</NAME>
-<RETURNS>GDate *</RETURNS>
-guint32 julian_day
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_free</NAME>
-<RETURNS>void </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_valid</NAME>
-<RETURNS>gboolean </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_valid_day</NAME>
-<RETURNS>gboolean </RETURNS>
-GDateDay day
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_valid_month</NAME>
-<RETURNS>gboolean </RETURNS>
-GDateMonth month
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_valid_year</NAME>
-<RETURNS>gboolean </RETURNS>
-GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_valid_weekday</NAME>
-<RETURNS>gboolean </RETURNS>
-GDateWeekday weekday
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_valid_julian</NAME>
-<RETURNS>gboolean </RETURNS>
-guint32 julian_date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_valid_dmy</NAME>
-<RETURNS>gboolean </RETURNS>
-GDateDay day,GDateMonth month,GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_weekday</NAME>
-<RETURNS>GDateWeekday </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_month</NAME>
-<RETURNS>GDateMonth </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_year</NAME>
-<RETURNS>GDateYear </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_day</NAME>
-<RETURNS>GDateDay </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_julian</NAME>
-<RETURNS>guint32 </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_day_of_year</NAME>
-<RETURNS>guint </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_monday_week_of_year</NAME>
-<RETURNS>guint </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_sunday_week_of_year</NAME>
-<RETURNS>guint </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_clear</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint n_dates
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_set_parse</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,const gchar *str
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_set_time</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,GTime time
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_set_month</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,GDateMonth month
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_set_day</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,GDateDay day
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_set_year</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_set_dmy</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,GDateDay day,GDateMonth month,GDateYear y
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_set_julian</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint32 julian_date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_is_first_of_month</NAME>
-<RETURNS>gboolean </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_is_last_of_month</NAME>
-<RETURNS>gboolean </RETURNS>
-GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_add_days</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint n_days
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_subtract_days</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint n_days
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_add_months</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint n_months
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_subtract_months</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint n_months
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_add_years</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint n_years
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_subtract_years</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,guint n_years
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_is_leap_year</NAME>
-<RETURNS>gboolean </RETURNS>
-GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_days_in_month</NAME>
-<RETURNS>guint8 </RETURNS>
-GDateMonth month,GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_monday_weeks_in_year</NAME>
-<RETURNS>guint8 </RETURNS>
-GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_sunday_weeks_in_year</NAME>
-<RETURNS>guint8 </RETURNS>
-GDateYear year
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_compare</NAME>
-<RETURNS>gint </RETURNS>
-GDate *lhs,GDate *rhs
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_to_struct_tm</NAME>
-<RETURNS>void </RETURNS>
-GDate *date,struct tm *tm
-</FUNCTION>
-<FUNCTION>
-<NAME>g_date_strftime</NAME>
-<RETURNS>gsize </RETURNS>
-gchar *s,gsize slen,const gchar *format,GDate *date
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_new</NAME>
-<RETURNS>GRelation *</RETURNS>
-gint fields
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_destroy</NAME>
-<RETURNS>void </RETURNS>
-GRelation *relation
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_index</NAME>
-<RETURNS>void </RETURNS>
-GRelation *relation,gint field,GHashFunc hash_func,GCompareFunc key_compare_func
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_insert</NAME>
-<RETURNS>void </RETURNS>
-GRelation *relation,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_delete</NAME>
-<RETURNS>gint </RETURNS>
-GRelation *relation,gconstpointer key,gint field
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_select</NAME>
-<RETURNS>GTuples *</RETURNS>
-GRelation *relation,gconstpointer key,gint field
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_count</NAME>
-<RETURNS>gint </RETURNS>
-GRelation *relation,gconstpointer key,gint field
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_exists</NAME>
-<RETURNS>gboolean </RETURNS>
-GRelation *relation,...
-</FUNCTION>
-<FUNCTION>
-<NAME>g_relation_print</NAME>
-<RETURNS>void </RETURNS>
-GRelation *relation
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tuples_destroy</NAME>
-<RETURNS>void </RETURNS>
-GTuples *tuples
-</FUNCTION>
-<FUNCTION>
-<NAME>g_tuples_index</NAME>
-<RETURNS>gpointer </RETURNS>
-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
-</FUNCTION>
-<STRUCT>
-<NAME>GIOFuncs</NAME>
-</STRUCT>
-<ENUM>
-<NAME>GIOError</NAME>
-typedef enum
-{
- G_IO_ERROR_NONE,
- G_IO_ERROR_AGAIN,
- G_IO_ERROR_INVAL,
- G_IO_ERROR_UNKNOWN
-} GIOError;
-</ENUM>
-<ENUM>
-<NAME>GSeekType</NAME>
-typedef enum
-{
- G_SEEK_CUR,
- G_SEEK_SET,
- G_SEEK_END
-} GSeekType;
-</ENUM>
-<ENUM>
-<NAME>GIOCondition</NAME>
-typedef enum
-{
- G_IO_IN GLIB_SYSDEF_POLLIN,
- G_IO_OUT GLIB_SYSDEF_POLLOUT,
- G_IO_PRI GLIB_SYSDEF_POLLPRI,
- G_IO_ERR GLIB_SYSDEF_POLLERR,
- G_IO_HUP GLIB_SYSDEF_POLLHUP,
- G_IO_NVAL GLIB_SYSDEF_POLLNVAL
-} GIOCondition;
-</ENUM>
-<STRUCT>
-<NAME>GIOChannel</NAME>
-struct GIOChannel
-{
- guint channel_flags;
- guint ref_count;
- GIOFuncs *funcs;
-};
-</STRUCT>
-<USER_FUNCTION>
-<NAME>GIOFunc</NAME>
-<RETURNS>gboolean </RETURNS>
-GIOChannel *source,
- GIOCondition condition,
- gpointer data
-</USER_FUNCTION>
-<STRUCT>
-<NAME>GIOFuncs</NAME>
-struct GIOFuncs
-{
- GIOError (*io_read) (GIOChannel *channel,
- gchar *buf,
- guint count,
- guint *bytes_read);
- GIOError (*io_write) (GIOChannel *channel,
- gchar *buf,
- guint count,
- guint *bytes_written);
- GIOError (*io_seek) (GIOChannel *channel,
- gint offset,
- GSeekType type);
- void (*io_close) (GIOChannel *channel);
- guint (*io_add_watch) (GIOChannel *channel,
- gint priority,
- GIOCondition condition,
- GIOFunc func,
- gpointer user_data,
- GDestroyNotify notify);
- void (*io_free) (GIOChannel *channel);
-};
-</STRUCT>
-<FUNCTION>
-<NAME>g_io_channel_init</NAME>
-<RETURNS>void </RETURNS>
-GIOChannel *channel
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_ref</NAME>
-<RETURNS>void </RETURNS>
-GIOChannel *channel
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_unref</NAME>
-<RETURNS>void </RETURNS>
-GIOChannel *channel
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_read</NAME>
-<RETURNS>GIOError </RETURNS>
-GIOChannel *channel,gchar *buf,guint count,guint *bytes_read
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_write</NAME>
-<RETURNS>GIOError </RETURNS>
-GIOChannel *channel,gchar *buf,guint count,guint *bytes_written
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_seek</NAME>
-<RETURNS>GIOError </RETURNS>
-GIOChannel *channel,gint offset,GSeekType type
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_close</NAME>
-<RETURNS>void </RETURNS>
-GIOChannel *channel
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_add_watch_full</NAME>
-<RETURNS>guint </RETURNS>
-GIOChannel *channel,gint priority,GIOCondition condition,GIOFunc func,gpointer user_data,GDestroyNotify notify
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_add_watch</NAME>
-<RETURNS>guint </RETURNS>
-GIOChannel *channel,GIOCondition condition,GIOFunc func,gpointer user_data
-</FUNCTION>
-<STRUCT>
-<NAME>GTimeVal</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GSourceFuncs</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GMainLoop</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GTimeVal</NAME>
-struct GTimeVal
-{
- glong tv_sec;
- glong tv_usec;
-};
-</STRUCT>
-<STRUCT>
-<NAME>GSourceFuncs</NAME>
-struct GSourceFuncs
-{
- gboolean (*prepare) (gpointer source_data,
- GTimeVal *current_time,
- gint *timeout,
- gpointer user_data);
- gboolean (*check) (gpointer source_data,
- GTimeVal *current_time,
- gpointer user_data);
- gboolean (*dispatch) (gpointer source_data,
- GTimeVal *dispatch_time,
- gpointer user_data);
- GDestroyNotify destroy;
-};
-</STRUCT>
-<MACRO>
-<NAME>G_PRIORITY_HIGH</NAME>
-#define G_PRIORITY_HIGH -100
-</MACRO>
-<MACRO>
-<NAME>G_PRIORITY_DEFAULT</NAME>
-#define G_PRIORITY_DEFAULT 0
-</MACRO>
-<MACRO>
-<NAME>G_PRIORITY_HIGH_IDLE</NAME>
-#define G_PRIORITY_HIGH_IDLE 100
-</MACRO>
-<MACRO>
-<NAME>G_PRIORITY_DEFAULT_IDLE</NAME>
-#define G_PRIORITY_DEFAULT_IDLE 200
-</MACRO>
-<MACRO>
-<NAME>G_PRIORITY_LOW</NAME>
-#define G_PRIORITY_LOW 300
-</MACRO>
-<USER_FUNCTION>
-<NAME>GSourceFunc</NAME>
-<RETURNS>gboolean </RETURNS>
-gpointer data
-</USER_FUNCTION>
-<FUNCTION>
-<NAME>g_source_add</NAME>
-<RETURNS>guint </RETURNS>
-gint priority,gboolean can_recurse,GSourceFuncs *funcs,gpointer source_data,gpointer user_data,GDestroyNotify notify
-</FUNCTION>
-<FUNCTION>
-<NAME>g_source_remove</NAME>
-<RETURNS>gboolean </RETURNS>
-guint tag
-</FUNCTION>
-<FUNCTION>
-<NAME>g_source_remove_by_user_data</NAME>
-<RETURNS>gboolean </RETURNS>
-gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_source_remove_by_source_data</NAME>
-<RETURNS>gboolean </RETURNS>
-gpointer source_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_source_remove_by_funcs_user_data</NAME>
-<RETURNS>gboolean </RETURNS>
-GSourceFuncs *funcs,gpointer user_data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_get_current_time</NAME>
-<RETURNS>void </RETURNS>
-GTimeVal *result
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_new</NAME>
-<RETURNS>GMainLoop *</RETURNS>
-gboolean is_running
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_run</NAME>
-<RETURNS>void </RETURNS>
-GMainLoop *loop
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_quit</NAME>
-<RETURNS>void </RETURNS>
-GMainLoop *loop
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_destroy</NAME>
-<RETURNS>void </RETURNS>
-GMainLoop *loop
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_is_running</NAME>
-<RETURNS>gboolean </RETURNS>
-GMainLoop *loop
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_iteration</NAME>
-<RETURNS>gboolean </RETURNS>
-gboolean may_block
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_pending</NAME>
-<RETURNS>gboolean </RETURNS>
-void
-</FUNCTION>
-<FUNCTION>
-<NAME>g_timeout_add_full</NAME>
-<RETURNS>guint </RETURNS>
-gint priority,guint interval,GSourceFunc function,gpointer data,GDestroyNotify notify
-</FUNCTION>
-<FUNCTION>
-<NAME>g_timeout_add</NAME>
-<RETURNS>guint </RETURNS>
-guint interval,GSourceFunc function,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_idle_add</NAME>
-<RETURNS>guint </RETURNS>
-GSourceFunc function,gpointer data
-</FUNCTION>
-<FUNCTION>
-<NAME>g_idle_add_full</NAME>
-<RETURNS>guint </RETURNS>
-gint priority,GSourceFunc function,gpointer data,GDestroyNotify destroy
-</FUNCTION>
-<FUNCTION>
-<NAME>g_idle_remove_by_data</NAME>
-<RETURNS>gboolean </RETURNS>
-gpointer data
-</FUNCTION>
-<STRUCT>
-<NAME>GPollFD</NAME>
-</STRUCT>
-<USER_FUNCTION>
-<NAME>GPollFunc</NAME>
-<RETURNS>gint </RETURNS>
-GPollFD *ufds,
- guint nfsd,
- gint timeout
-</USER_FUNCTION>
-<STRUCT>
-<NAME>GPollFD</NAME>
-struct GPollFD
-{
- gint fd;
- gushort events;
- gushort revents;
-};
-</STRUCT>
-<FUNCTION>
-<NAME>g_main_add_poll</NAME>
-<RETURNS>void </RETURNS>
-GPollFD *fd,gint priority
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_remove_poll</NAME>
-<RETURNS>void </RETURNS>
-GPollFD *fd
-</FUNCTION>
-<FUNCTION>
-<NAME>g_main_set_poll_func</NAME>
-<RETURNS>void </RETURNS>
-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
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_unix_get_fd</NAME>
-<RETURNS>gint </RETURNS>
-GIOChannel *channel
-</FUNCTION>
-<MACRO>
-<NAME>G_WIN32_MSG_HANDLE</NAME>
-#define G_WIN32_MSG_HANDLE 19981206
-</MACRO>
-<FUNCTION>
-<NAME>g_io_channel_win32_make_pollfd</NAME>
-<RETURNS>void </RETURNS>
-GIOChannel *channel,GIOCondition condition,GPollFD *fd
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_win32_poll</NAME>
-<RETURNS>gint </RETURNS>
-GPollFD *fds,gint n_fds,gint timeout
-</FUNCTION>
-<FUNCTION>
-<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_messages</NAME>
-<RETURNS>GIOChannel *</RETURNS>
-guint hwnd
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_win32_new_fd</NAME>
-<RETURNS>GIOChannel *</RETURNS>
-int fd
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_win32_get_fd</NAME>
-<RETURNS>gint </RETURNS>
-GIOChannel *channel
-</FUNCTION>
-<FUNCTION>
-<NAME>g_io_channel_win32_new_stream_socket</NAME>
-<RETURNS>GIOChannel *</RETURNS>
-int socket
-</FUNCTION>
-<MACRO>
-<NAME>MAXPATHLEN</NAME>
-# define MAXPATHLEN 1024
-</MACRO>
-<TYPEDEF>
-<NAME>pid_t</NAME>
-typedef int pid_t;
-</TYPEDEF>
-<MACRO>
-<NAME>pipe</NAME>
-#define pipe(phandles) _pipe (phandles, 4096, _O_BINARY)
-</MACRO>
-<MACRO>
-<NAME>ftruncate</NAME>
-# define ftruncate(fd, size) g_win32_ftruncate (fd, size)
-</MACRO>
-<MACRO>
-<NAME>opendir</NAME>
-# define opendir g_win32_opendir
-</MACRO>
-<MACRO>
-<NAME>readdir</NAME>
-# define readdir g_win32_readdir
-</MACRO>
-<MACRO>
-<NAME>rewinddir</NAME>
-# define rewinddir g_win32_rewinddir
-</MACRO>
-<MACRO>
-<NAME>closedir</NAME>
-# define closedir g_win32_closedir
-</MACRO>
-<MACRO>
-<NAME>NAME_MAX</NAME>
-# define NAME_MAX 255
-</MACRO>
-<FUNCTION>
-<NAME>g_win32_ftruncate</NAME>
-<RETURNS>int </RETURNS>
-gint f,guint size
-</FUNCTION>
-<FUNCTION>
-<NAME>g_win32_opendir</NAME>
-<RETURNS>DIR *</RETURNS>
-const gchar *dirname
-</FUNCTION>
-<FUNCTION>
-<NAME>g_win32_rewinddir</NAME>
-<RETURNS>void </RETURNS>
-DIR *dir
-</FUNCTION>
-<FUNCTION>
-<NAME>g_win32_closedir</NAME>
-<RETURNS>gint </RETURNS>
-DIR *dir
-</FUNCTION>
-<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);
- 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>
-<NAME>g_thread_init</NAME>
-<RETURNS>void </RETURNS>
-GThreadFunctions *vtable
-</FUNCTION>
-<FUNCTION>
-<NAME>g_static_mutex_get_mutex_impl</NAME>
-<RETURNS>GMutex *</RETURNS>
-GMutex **mutex
-</FUNCTION>
-<MACRO>
-<NAME>G_THREAD_UF</NAME>
-#define G_THREAD_UF(name, arglist) \
- (*g_thread_functions_for_glib_use . name) arglist
-</MACRO>
-<MACRO>
-<NAME>G_THREAD_CF</NAME>
-#define G_THREAD_CF(name, fail, arg) \
- (g_thread_supported () ? G_THREAD_UF (name, arg) : (fail))
-</MACRO>
-<MACRO>
-<NAME>g_thread_supported</NAME>
-#define g_thread_supported() (g_threads_got_initialized)
-</MACRO>
-<MACRO>
-<NAME>g_mutex_new</NAME>
-#define g_mutex_new() G_THREAD_UF (mutex_new, ())
-</MACRO>
-<MACRO>
-<NAME>g_mutex_lock</NAME>
-#define g_mutex_lock(mutex) G_THREAD_CF (mutex_lock, (void)0, (mutex))
-</MACRO>
-<MACRO>
-<NAME>g_mutex_trylock</NAME>
-#define g_mutex_trylock(mutex) G_THREAD_CF (mutex_trylock, TRUE, (mutex))
-</MACRO>
-<MACRO>
-<NAME>g_mutex_unlock</NAME>
-#define g_mutex_unlock(mutex) G_THREAD_CF (mutex_unlock, (void)0, (mutex))
-</MACRO>
-<MACRO>
-<NAME>g_mutex_free</NAME>
-#define g_mutex_free(mutex) G_THREAD_CF (mutex_free, (void)0, (mutex))
-</MACRO>
-<MACRO>
-<NAME>g_cond_new</NAME>
-#define g_cond_new() G_THREAD_UF (cond_new, ())
-</MACRO>
-<MACRO>
-<NAME>g_cond_signal</NAME>
-#define g_cond_signal(cond) G_THREAD_CF (cond_signal, (void)0, (cond))
-</MACRO>
-<MACRO>
-<NAME>g_cond_broadcast</NAME>
-#define g_cond_broadcast(cond) G_THREAD_CF (cond_broadcast, (void)0, (cond))
-</MACRO>
-<MACRO>
-<NAME>g_cond_wait</NAME>
-#define g_cond_wait(cond, mutex) G_THREAD_CF (cond_wait, (void)0, (cond, \
- mutex))
-</MACRO>
-<MACRO>
-<NAME>g_cond_free</NAME>
-#define g_cond_free(cond) G_THREAD_CF (cond_free, (void)0, (cond))
-</MACRO>
-<MACRO>
-<NAME>g_cond_timed_wait</NAME>
-#define g_cond_timed_wait(cond, mutex, abs_time) G_THREAD_CF (cond_timed_wait, \
- TRUE, \
- (cond, mutex, \
- abs_time))
-</MACRO>
-<MACRO>
-<NAME>g_private_new</NAME>
-#define g_private_new(destructor) G_THREAD_UF (private_new, (destructor))
-</MACRO>
-<MACRO>
-<NAME>g_private_get</NAME>
-#define g_private_get(private_key) G_THREAD_CF (private_get, \
- ((gpointer)private_key), \
- (private_key))
-</MACRO>
-<MACRO>
-<NAME>g_private_set</NAME>
-#define g_private_set(private_key, value) G_THREAD_CF (private_set, \
- (void) (private_key = \
- (GPrivate*) (value)), \
- (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))
-</MACRO>
-<MACRO>
-<NAME>g_static_mutex_trylock</NAME>
-#define g_static_mutex_trylock(mutex) \
- g_mutex_trylock (g_static_mutex_get_mutex (mutex))
-</MACRO>
-<MACRO>
-<NAME>g_static_mutex_unlock</NAME>
-#define g_static_mutex_unlock(mutex) \
- g_mutex_unlock (g_static_mutex_get_mutex (mutex))
-</MACRO>
-<STRUCT>
-<NAME>GStaticPrivate</NAME>
-struct GStaticPrivate
-{
- guint index;
-};
-</STRUCT>
-<MACRO>
-<NAME>G_STATIC_PRIVATE_INIT</NAME>
-#define G_STATIC_PRIVATE_INIT { 0 }
-</MACRO>
-<FUNCTION>
-<NAME>g_static_private_get</NAME>
-<RETURNS>gpointer </RETURNS>
-GStaticPrivate *private_key
-</FUNCTION>
-<FUNCTION>
-<NAME>g_static_private_set</NAME>
-<RETURNS>void </RETURNS>
-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
-</MACRO>
-<MACRO>
-<NAME>G_LOCK_DEFINE_STATIC</NAME>
-# define G_LOCK_DEFINE_STATIC(name) static G_LOCK_DEFINE (name)
-</MACRO>
-<MACRO>
-<NAME>G_LOCK_DEFINE</NAME>
-# define G_LOCK_DEFINE(name) \
- GStaticMutex G_LOCK_NAME (name) = G_STATIC_MUTEX_INIT
-</MACRO>
-<MACRO>
-<NAME>G_LOCK_EXTERN</NAME>
-# define G_LOCK_EXTERN(name) extern GStaticMutex G_LOCK_NAME (name)
-</MACRO>
-<MACRO>
-<NAME>G_LOCK</NAME>
-# define G_LOCK(name) G_STMT_START{ \
- g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
- "file %s: line %d (%s): locking: %s ", \
- __FILE__, __LINE__, G_GNUC_PRETTY_FUNCTION, \
- #name); \
- g_static_mutex_lock (&G_LOCK_NAME (name)); \
- }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>G_UNLOCK</NAME>
-# define G_UNLOCK(name) G_STMT_START{ \
- g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
- "file %s: line %d (%s): unlocking: %s ", \
- __FILE__, __LINE__, G_GNUC_PRETTY_FUNCTION, \
- #name); \
- g_static_mutex_unlock (&G_LOCK_NAME (name)); \
- }G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>G_TRYLOCK</NAME>
-# 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_static_mutex_trylock (&G_LOCK_NAME (name)))
-</MACRO>
-<MACRO>
-<NAME>G_LOCK</NAME>
-# define G_LOCK(name) g_static_mutex_lock (&G_LOCK_NAME (name))
-</MACRO>
-<MACRO>
-<NAME>G_UNLOCK</NAME>
-# define G_UNLOCK(name) g_static_mutex_unlock (&G_LOCK_NAME (name))
-</MACRO>
-<MACRO>
-<NAME>G_TRYLOCK</NAME>
-# define G_TRYLOCK(name) g_static_mutex_trylock (&G_LOCK_NAME (name))
-</MACRO>
-<MACRO>
-<NAME>G_LOCK_DEFINE_STATIC</NAME>
-# define G_LOCK_DEFINE_STATIC(name) extern void glib_dummy_decl (void)
-</MACRO>
-<MACRO>
-<NAME>G_LOCK_DEFINE</NAME>
-# define G_LOCK_DEFINE(name) extern void glib_dummy_decl (void)
-</MACRO>
-<MACRO>
-<NAME>G_LOCK_EXTERN</NAME>
-# define G_LOCK_EXTERN(name) extern void glib_dummy_decl (void)
-</MACRO>
-<MACRO>
-<NAME>G_LOCK</NAME>
-# define G_LOCK(name)
-</MACRO>
-<MACRO>
-<NAME>G_UNLOCK</NAME>
-# define G_UNLOCK(name)
-</MACRO>
-<MACRO>
-<NAME>G_TRYLOCK</NAME>
-# define G_TRYLOCK(name) (TRUE)
-</MACRO>
-<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>GThreadPool</NAME>
-struct GThreadPool
-{
- GFunc thread_func;
- gulong stack_size;
- gboolean bound;
- GThreadPriority priority;
- gboolean exclusive;
- gpointer user_data;
-};
-</STRUCT>
-<FUNCTION>
-<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_thread_pool_push</NAME>
-<RETURNS>void </RETURNS>
-GThreadPool *pool,gpointer data,GError **error
-</FUNCTION>
-<FUNCTION>
-<NAME>g_thread_pool_set_max_threads</NAME>
-<RETURNS>void </RETURNS>
-GThreadPool *pool,gint max_threads,GError **error
-</FUNCTION>
-<FUNCTION>
-<NAME>g_thread_pool_get_max_threads</NAME>
-<RETURNS>gint </RETURNS>
-GThreadPool *pool
-</FUNCTION>
-<FUNCTION>
-<NAME>g_thread_pool_get_num_threads</NAME>
-<RETURNS>guint </RETURNS>
-GThreadPool *pool
-</FUNCTION>
-<FUNCTION>
-<NAME>g_thread_pool_unprocessed</NAME>
-<RETURNS>guint </RETURNS>
-GThreadPool *pool
-</FUNCTION>
-<FUNCTION>
-<NAME>g_thread_pool_free</NAME>
-<RETURNS>void </RETURNS>
-GThreadPool *pool,gboolean immediate,gboolean wait
-</FUNCTION>
-<FUNCTION>
-<NAME>g_thread_pool_set_max_unused_threads</NAME>
-<RETURNS>void </RETURNS>
-gint max_threads
-</FUNCTION>
-<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>
-<NAME>G_MAXDOUBLE</NAME>
-#define G_MAXDOUBLE DBL_MAX
-</MACRO>
-<MACRO>
-<NAME>G_MINSHORT</NAME>
-#define G_MINSHORT SHRT_MIN
-</MACRO>
-<MACRO>
-<NAME>G_MAXSHORT</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>
-<MACRO>
-<NAME>G_MAXINT</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>
-<MACRO>
-<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;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>guint8</NAME>
-typedef unsigned char guint8;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>gint16</NAME>
-typedef signed short gint16;
-</TYPEDEF>
-<TYPEDEF>
-<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;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>guint32</NAME>
-typedef unsigned int guint32;
-</TYPEDEF>
-<MACRO>
-<NAME>G_GINT32_FORMAT</NAME>
-#define G_GINT32_FORMAT "i"
-</MACRO>
-<MACRO>
-<NAME>G_GUINT32_FORMAT</NAME>
-#define G_GUINT32_FORMAT "u"
-</MACRO>
-<MACRO>
-<NAME>G_HAVE_GINT64</NAME>
-#define G_HAVE_GINT64 1
-</MACRO>
-<TYPEDEF>
-<NAME>gint64</NAME>
-G_GNUC_EXTENSION typedef signed long long gint64;
-</TYPEDEF>
-<TYPEDEF>
-<NAME>guint64</NAME>
-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))
-</MACRO>
-<MACRO>
-<NAME>GPOINTER_TO_UINT</NAME>
-#define GPOINTER_TO_UINT(p) ((guint) (p))
-</MACRO>
-<MACRO>
-<NAME>GINT_TO_POINTER</NAME>
-#define GINT_TO_POINTER(i) ((gpointer) (i))
-</MACRO>
-<MACRO>
-<NAME>GUINT_TO_POINTER</NAME>
-#define GUINT_TO_POINTER(u) ((gpointer) (u))
-</MACRO>
-<MACRO>
-<NAME>g_ATEXIT</NAME>
-# define g_ATEXIT(proc) (!atexit (proc))
-</MACRO>
-<MACRO>
-<NAME>g_ATEXIT</NAME>
-# define g_ATEXIT(proc) (atexit (proc))
-</MACRO>
-<MACRO>
-<NAME>g_memmove</NAME>
-#define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
-</MACRO>
-<MACRO>
-<NAME>GLIB_MAJOR_VERSION</NAME>
-#define GLIB_MAJOR_VERSION 1
-</MACRO>
-<MACRO>
-<NAME>GLIB_MINOR_VERSION</NAME>
-#define GLIB_MINOR_VERSION 3
-</MACRO>
-<MACRO>
-<NAME>GLIB_MICRO_VERSION</NAME>
-#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>
-#define G_HAVE_INLINE 1
-</MACRO>
-<MACRO>
-<NAME>G_HAVE_INLINE</NAME>
-#define G_HAVE_INLINE 1
-</MACRO>
-<MACRO>
-<NAME>G_HAVE___INLINE</NAME>
-#define G_HAVE___INLINE 1
-</MACRO>
-<MACRO>
-<NAME>G_HAVE___INLINE__</NAME>
-#define G_HAVE___INLINE__ 1
-</MACRO>
-<MACRO>
-<NAME>G_THREADS_ENABLED</NAME>
-#define G_THREADS_ENABLED
-</MACRO>
-<MACRO>
-<NAME>G_THREADS_IMPL_POSIX</NAME>
-#define G_THREADS_IMPL_POSIX
-</MACRO>
-<STRUCT>
-<NAME>GStaticMutex</NAME>
-</STRUCT>
-<STRUCT>
-<NAME>GStaticMutex</NAME>
-struct GStaticMutex
-{
- struct _GMutex *runtime_mutex;
- union {
- char pad[24];
- double dummy_double;
- void *dummy_pointer;
- long dummy_long;
- } aligned_pad_u;
-};
-</STRUCT>
-<MACRO>
-<NAME>G_STATIC_MUTEX_INIT</NAME>
-#define G_STATIC_MUTEX_INIT { NULL, { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} } }
-</MACRO>
-<MACRO>
-<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))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_TO_LE</NAME>
-#define GUINT16_TO_LE(val) ((guint16) (val))
-</MACRO>
-<MACRO>
-<NAME>GINT16_TO_BE</NAME>
-#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT16_TO_BE</NAME>
-#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT32_TO_LE</NAME>
-#define GINT32_TO_LE(val) ((gint32) (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_TO_LE</NAME>
-#define GUINT32_TO_LE(val) ((guint32) (val))
-</MACRO>
-<MACRO>
-<NAME>GINT32_TO_BE</NAME>
-#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT32_TO_BE</NAME>
-#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT64_TO_LE</NAME>
-#define GINT64_TO_LE(val) ((gint64) (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_TO_LE</NAME>
-#define GUINT64_TO_LE(val) ((guint64) (val))
-</MACRO>
-<MACRO>
-<NAME>GINT64_TO_BE</NAME>
-#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT64_TO_BE</NAME>
-#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GLONG_TO_LE</NAME>
-#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GULONG_TO_LE</NAME>
-#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GLONG_TO_BE</NAME>
-#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GULONG_TO_BE</NAME>
-#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT_TO_LE</NAME>
-#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT_TO_LE</NAME>
-#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
-</MACRO>
-<MACRO>
-<NAME>GINT_TO_BE</NAME>
-#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>GUINT_TO_BE</NAME>
-#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
-</MACRO>
-<MACRO>
-<NAME>G_BYTE_ORDER</NAME>
-#define G_BYTE_ORDER G_LITTLE_ENDIAN
-</MACRO>
-<MACRO>
-<NAME>GLIB_SYSDEF_POLLIN</NAME>
-#define GLIB_SYSDEF_POLLIN =1
-</MACRO>
-<MACRO>
-<NAME>GLIB_SYSDEF_POLLOUT</NAME>
-#define GLIB_SYSDEF_POLLOUT =4
-</MACRO>
-<MACRO>
-<NAME>GLIB_SYSDEF_POLLPRI</NAME>
-#define GLIB_SYSDEF_POLLPRI =2
-</MACRO>
-<MACRO>
-<NAME>GLIB_SYSDEF_POLLERR</NAME>
-#define GLIB_SYSDEF_POLLERR =8
-</MACRO>
-<MACRO>
-<NAME>GLIB_SYSDEF_POLLHUP</NAME>
-#define GLIB_SYSDEF_POLLHUP =16
-</MACRO>
-<MACRO>
-<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_IS_ENUM_CLASS</NAME>
-#define G_IS_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM))
-</MACRO>
-<MACRO>
-<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>
diff --git a/docs/reference/glib/glib-docs.sgml b/docs/reference/glib/glib-docs.sgml
index cb0fc36d1..cec7a88ba 100644
--- a/docs/reference/glib/glib-docs.sgml
+++ b/docs/reference/glib/glib-docs.sgml
@@ -4,16 +4,22 @@
<!entity glib-Standard-Macros SYSTEM "sgml/macros.sgml">
<!entity glib-Type-Conversion-Macros SYSTEM "sgml/type_conversion.sgml">
<!entity glib-Byte-Order-Macros SYSTEM "sgml/byte_order.sgml">
+<!entity glib-Numerical-Definitions SYSTEM "sgml/numerical.sgml">
<!entity glib-Miscellaneous-Macros SYSTEM "sgml/macros_misc.sgml">
<!entity glib-Memory-Allocation SYSTEM "sgml/memory.sgml">
+<!entity glib-Error-Reporting SYSTEM "sgml/error_reporting.sgml">
<!entity glib-Warnings-and-Assertions SYSTEM "sgml/warnings.sgml">
<!entity glib-Message-Logging SYSTEM "sgml/messages.sgml">
<!entity glib-Timers SYSTEM "sgml/timers.sgml">
<!entity glib-String-Utility-Functions SYSTEM "sgml/string_utils.sgml">
+<!entity glib-Unicode-Manipulation SYSTEM "sgml/unicode.sgml">
+<!entity glib-Random-Numbers SYSTEM "sgml/random_numbers.sgml">
<!entity glib-Miscellaneous-Utility-Functions SYSTEM "sgml/misc_utils.sgml">
<!entity glib-Date-and-Time-Functions SYSTEM "sgml/date.sgml">
<!entity glib-The-Main-Event-Loop SYSTEM "sgml/main.sgml">
<!entity glib-Threads SYSTEM "sgml/threads.sgml">
+<!entity glib-Thread-Pools SYSTEM "sgml/thread_pools.sgml">
+<!entity glib-Async-Queues SYSTEM "sgml/async_queues.sgml">
<!entity glib-IO-Channels SYSTEM "sgml/iochannels.sgml">
<!entity glib-Hook-Functions SYSTEM "sgml/hooks.sgml">
<!entity glib-Lexical-Scanner SYSTEM "sgml/scanner.sgml">
@@ -23,6 +29,8 @@
<!entity glib-Memory-Chunks SYSTEM "sgml/memory_chunks.sgml">
<!entity glib-Doubly-Linked-Lists SYSTEM "sgml/linked_lists_double.sgml">
<!entity glib-Singly-Linked-Lists SYSTEM "sgml/linked_lists_single.sgml">
+<!entity glib-Double-ended-Queues SYSTEM "sgml/queue.sgml">
+<!entity glib-Trash-Stacks SYSTEM "sgml/trash_stack.sgml">
<!entity glib-Hash-Tables SYSTEM "sgml/hash_tables.sgml">
<!entity glib-Strings SYSTEM "sgml/strings.sgml">
<!entity glib-String-Chunks SYSTEM "sgml/string_chunks.sgml">
@@ -50,6 +58,7 @@
&glib-Standard-Macros;
&glib-Type-Conversion-Macros;
&glib-Byte-Order-Macros;
+ &glib-Numerical-Definitions;
&glib-Miscellaneous-Macros;
</chapter>
@@ -57,9 +66,12 @@
<title>GLib Core Application Support</title>
&glib-The-Main-Event-Loop;
&glib-Threads;
+ &glib-Thread-Pools;
+ &glib-Async-Queues;
&glib-Dynamic-Loading-of-Modules;
&glib-Memory-Allocation;
&glib-IO-Channels;
+ &glib-Error-Reporting;
&glib-Warnings-and-Assertions;
&glib-Message-Logging;
</chapter>
@@ -67,7 +79,9 @@
<chapter id="glib-utilities">
<title>GLib Utilities</title>
&glib-String-Utility-Functions;
+ &glib-Unicode-Manipulation;
&glib-Date-and-Time-Functions;
+ &glib-Random-Numbers;
&glib-Hook-Functions;
&glib-Miscellaneous-Utility-Functions;
&glib-Lexical-Scanner;
@@ -81,6 +95,8 @@
&glib-Memory-Chunks;
&glib-Doubly-Linked-Lists;
&glib-Singly-Linked-Lists;
+ &glib-Double-ended-Queues;
+ &glib-Trash-Stacks;
&glib-Hash-Tables;
&glib-Strings;
&glib-String-Chunks;
diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt
index d810745c4..960b921ac 100644
--- a/docs/reference/glib/glib-sections.txt
+++ b/docs/reference/glib/glib-sections.txt
@@ -39,10 +39,8 @@ gdouble
gsize
gssize
-<SUBSECTION>
-gstring
-
<SUBSECTION Private>
+gstring
gldouble
</SECTION>
@@ -1136,7 +1134,7 @@ g_slist_pop_allocator
</SECTION>
<SECTION>
-<TITLE>Doubly-ended Queues</TITLE>
+<TITLE>Double-ended Queues</TITLE>
<FILE>queue</FILE>
GQueue
@@ -1504,9 +1502,6 @@ g_random_double_range
<SECTION>
<TITLE>Unicode Manipulation</TITLE>
<FILE>unicode</FILE>
-
-<SECTION>
-<FILE>gunicode</FILE>
gunichar
gunichar2
@@ -1560,321 +1555,3 @@ 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>
-
diff --git a/docs/reference/glib/tmpl/async_queues.sgml b/docs/reference/glib/tmpl/async_queues.sgml
new file mode 100644
index 000000000..97a0f41ac
--- /dev/null
+++ b/docs/reference/glib/tmpl/async_queues.sgml
@@ -0,0 +1,172 @@
+<!-- ##### SECTION Title ##### -->
+Asynchronous Queues
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GAsyncQueue ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION g_async_queue_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_lock ##### -->
+<para>
+
+</para>
+
+@queue:
+
+
+<!-- ##### FUNCTION g_async_queue_unlock ##### -->
+<para>
+
+</para>
+
+@queue:
+
+
+<!-- ##### FUNCTION g_async_queue_ref ##### -->
+<para>
+
+</para>
+
+@queue:
+
+
+<!-- ##### FUNCTION g_async_queue_ref_unlocked ##### -->
+<para>
+
+</para>
+
+@queue:
+
+
+<!-- ##### FUNCTION g_async_queue_unref ##### -->
+<para>
+
+</para>
+
+@queue:
+
+
+<!-- ##### FUNCTION g_async_queue_unref_and_unlock ##### -->
+<para>
+
+</para>
+
+@queue:
+
+
+<!-- ##### FUNCTION g_async_queue_push ##### -->
+<para>
+
+</para>
+
+@queue:
+@data:
+
+
+<!-- ##### FUNCTION g_async_queue_push_unlocked ##### -->
+<para>
+
+</para>
+
+@queue:
+@data:
+
+
+<!-- ##### FUNCTION g_async_queue_pop ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_pop_unlocked ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_try_pop ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_try_pop_unlocked ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_timed_pop ##### -->
+<para>
+
+</para>
+
+@queue:
+@end_time:
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_timed_pop_unlocked ##### -->
+<para>
+
+</para>
+
+@queue:
+@end_time:
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_length ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_async_queue_length_unlocked ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
diff --git a/docs/reference/glib/tmpl/error_reporting.sgml b/docs/reference/glib/tmpl/error_reporting.sgml
new file mode 100644
index 000000000..7bcc55904
--- /dev/null
+++ b/docs/reference/glib/tmpl/error_reporting.sgml
@@ -0,0 +1,107 @@
+<!-- ##### SECTION Title ##### -->
+Error Reporting
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GError ##### -->
+<para>
+
+</para>
+
+@domain:
+@code:
+@message:
+
+<!-- ##### FUNCTION g_error_new ##### -->
+<para>
+
+</para>
+
+@domain:
+@code:
+@format:
+@Varargs:
+@Returns:
+
+
+<!-- ##### FUNCTION g_error_new_literal ##### -->
+<para>
+
+</para>
+
+@domain:
+@code:
+@message:
+@Returns:
+
+
+<!-- ##### FUNCTION g_error_free ##### -->
+<para>
+
+</para>
+
+@error:
+
+
+<!-- ##### FUNCTION g_error_copy ##### -->
+<para>
+
+</para>
+
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION g_error_matches ##### -->
+<para>
+
+</para>
+
+@error:
+@domain:
+@code:
+@Returns:
+
+
+<!-- ##### FUNCTION g_set_error ##### -->
+<para>
+
+</para>
+
+@err:
+@domain:
+@code:
+@format:
+@Varargs:
+
+
+<!-- ##### FUNCTION g_propagate_error ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+
+
+<!-- ##### FUNCTION g_clear_error ##### -->
+<para>
+
+</para>
+
+@err:
+
+
diff --git a/docs/reference/glib/tmpl/numerical.sgml b/docs/reference/glib/tmpl/numerical.sgml
new file mode 100644
index 000000000..4600f572d
--- /dev/null
+++ b/docs/reference/glib/tmpl/numerical.sgml
@@ -0,0 +1,100 @@
+<!-- ##### SECTION Title ##### -->
+Numerical Definitions
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_IEEE754_FLOAT_BIAS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_IEEE754_DOUBLE_BIAS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### UNION GFloatIEEE754 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### UNION GDoubleIEEE754 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_E ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_LN2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_LN10 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_PI ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_PI_2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_PI_4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_SQRT2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO G_LOG_2_BASE_10 ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/reference/glib/tmpl/queue.sgml b/docs/reference/glib/tmpl/queue.sgml
new file mode 100644
index 000000000..72d95f2ce
--- /dev/null
+++ b/docs/reference/glib/tmpl/queue.sgml
@@ -0,0 +1,142 @@
+<!-- ##### SECTION Title ##### -->
+Double-ended Queues
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GQueue ##### -->
+<para>
+
+</para>
+
+@head:
+@tail:
+@length:
+
+<!-- ##### FUNCTION g_queue_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_queue_free ##### -->
+<para>
+
+</para>
+
+@queue:
+
+
+<!-- ##### FUNCTION g_queue_push_head ##### -->
+<para>
+
+</para>
+
+@queue:
+@data:
+
+
+<!-- ##### FUNCTION g_queue_push_tail ##### -->
+<para>
+
+</para>
+
+@queue:
+@data:
+
+
+<!-- ##### FUNCTION g_queue_pop_head ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_queue_pop_tail ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_queue_is_empty ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_queue_peek_head ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_queue_peek_tail ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_queue_push_head_link ##### -->
+<para>
+
+</para>
+
+@queue:
+@link:
+
+
+<!-- ##### FUNCTION g_queue_push_tail_link ##### -->
+<para>
+
+</para>
+
+@queue:
+@link:
+
+
+<!-- ##### FUNCTION g_queue_pop_head_link ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
+<!-- ##### FUNCTION g_queue_pop_tail_link ##### -->
+<para>
+
+</para>
+
+@queue:
+@Returns:
+
+
diff --git a/docs/reference/glib/tmpl/random_numbers.sgml b/docs/reference/glib/tmpl/random_numbers.sgml
new file mode 100644
index 000000000..233538fb1
--- /dev/null
+++ b/docs/reference/glib/tmpl/random_numbers.sgml
@@ -0,0 +1,142 @@
+<!-- ##### SECTION Title ##### -->
+Random Numbers
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GRand ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION g_rand_new_with_seed ##### -->
+<para>
+
+</para>
+
+@seed:
+@Returns:
+
+
+<!-- ##### FUNCTION g_rand_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_rand_free ##### -->
+<para>
+
+</para>
+
+@rand:
+
+
+<!-- ##### FUNCTION g_rand_set_seed ##### -->
+<para>
+
+</para>
+
+@rand:
+@seed:
+
+
+<!-- ##### FUNCTION g_rand_int ##### -->
+<para>
+
+</para>
+
+@rand:
+@Returns:
+
+
+<!-- ##### FUNCTION g_rand_int_range ##### -->
+<para>
+
+</para>
+
+@rand:
+@min:
+@max:
+@Returns:
+
+
+<!-- ##### FUNCTION g_rand_double ##### -->
+<para>
+
+</para>
+
+@rand:
+@Returns:
+
+
+<!-- ##### FUNCTION g_rand_double_range ##### -->
+<para>
+
+</para>
+
+@rand:
+@min:
+@max:
+@Returns:
+
+
+<!-- ##### FUNCTION g_random_set_seed ##### -->
+<para>
+
+</para>
+
+@seed:
+
+
+<!-- ##### FUNCTION g_random_int ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_random_int_range ##### -->
+<para>
+
+</para>
+
+@min:
+@max:
+@Returns:
+
+
+<!-- ##### FUNCTION g_random_double ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_random_double_range ##### -->
+<para>
+
+</para>
+
+@min:
+@max:
+@Returns:
+
+
diff --git a/docs/reference/glib/tmpl/thread_pools.sgml b/docs/reference/glib/tmpl/thread_pools.sgml
new file mode 100644
index 000000000..fb1454b66
--- /dev/null
+++ b/docs/reference/glib/tmpl/thread_pools.sgml
@@ -0,0 +1,134 @@
+<!-- ##### SECTION Title ##### -->
+Thread Pools
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GThreadPool ##### -->
+<para>
+
+</para>
+
+@thread_func:
+@stack_size:
+@bound:
+@priority:
+@exclusive:
+@user_data:
+
+<!-- ##### FUNCTION g_thread_pool_new ##### -->
+<para>
+
+</para>
+
+@thread_func:
+@max_threads:
+@stack_size:
+@bound:
+@priority:
+@exclusive:
+@user_data:
+@error:
+@Returns:
+
+
+<!-- ##### FUNCTION g_thread_pool_push ##### -->
+<para>
+
+</para>
+
+@pool:
+@data:
+@error:
+
+
+<!-- ##### FUNCTION g_thread_pool_set_max_threads ##### -->
+<para>
+
+</para>
+
+@pool:
+@max_threads:
+@error:
+
+
+<!-- ##### FUNCTION g_thread_pool_get_max_threads ##### -->
+<para>
+
+</para>
+
+@pool:
+@Returns:
+
+
+<!-- ##### FUNCTION g_thread_pool_get_num_threads ##### -->
+<para>
+
+</para>
+
+@pool:
+@Returns:
+
+
+<!-- ##### FUNCTION g_thread_pool_unprocessed ##### -->
+<para>
+
+</para>
+
+@pool:
+@Returns:
+
+
+<!-- ##### FUNCTION g_thread_pool_free ##### -->
+<para>
+
+</para>
+
+@pool:
+@immediate:
+@wait:
+
+
+<!-- ##### FUNCTION g_thread_pool_set_max_unused_threads ##### -->
+<para>
+
+</para>
+
+@max_threads:
+
+
+<!-- ##### FUNCTION g_thread_pool_get_max_unused_threads ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_thread_pool_get_num_unused_threads ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_thread_pool_stop_unused_threads ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/reference/glib/tmpl/trash_stack.sgml b/docs/reference/glib/tmpl/trash_stack.sgml
new file mode 100644
index 000000000..875d21963
--- /dev/null
+++ b/docs/reference/glib/tmpl/trash_stack.sgml
@@ -0,0 +1,61 @@
+<!-- ##### SECTION Title ##### -->
+Trash Stacks
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GTrashStack ##### -->
+<para>
+
+</para>
+
+@next:
+
+<!-- ##### FUNCTION g_trash_stack_push ##### -->
+<para>
+
+</para>
+
+@stack_p:
+@data_p:
+
+
+<!-- ##### FUNCTION g_trash_stack_pop ##### -->
+<para>
+
+</para>
+
+@stack_p:
+@Returns:
+
+
+<!-- ##### FUNCTION g_trash_stack_peek ##### -->
+<para>
+
+</para>
+
+@stack_p:
+@Returns:
+
+
+<!-- ##### FUNCTION g_trash_stack_height ##### -->
+<para>
+
+</para>
+
+@stack_p:
+@Returns:
+
+
diff --git a/docs/reference/glib/tmpl/types.sgml b/docs/reference/glib/tmpl/types.sgml
index fa276e06b..e64242ec7 100644
--- a/docs/reference/glib/tmpl/types.sgml
+++ b/docs/reference/glib/tmpl/types.sgml
@@ -1,5 +1,5 @@
<!-- ##### SECTION Title ##### -->
-GType
+Basic Types
<!-- ##### SECTION Short_Description ##### -->
@@ -16,746 +16,156 @@ GType
</para>
-<!-- ##### TYPEDEF GType ##### -->
+<!-- ##### TYPEDEF gboolean ##### -->
<para>
</para>
-<!-- ##### MACRO G_TYPE_FUNDAMENTAL ##### -->
+<!-- ##### TYPEDEF gpointer ##### -->
<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 ##### -->
+<!-- ##### TYPEDEF gconstpointer ##### -->
<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>
-
-@instance:
-@g_class:
-
-
-<!-- ##### USER_FUNCTION GInterfaceInitFunc ##### -->
-<para>
-
-</para>
-
-@g_iface:
-@iface_data:
-
-
-<!-- ##### USER_FUNCTION GInterfaceFinalizeFunc ##### -->
+<!-- ##### TYPEDEF gchar ##### -->
<para>
</para>
-@g_iface:
-@iface_data:
-
-<!-- ##### USER_FUNCTION GTypePluginRef ##### -->
+<!-- ##### TYPEDEF guchar ##### -->
<para>
</para>
-@plugin:
-
-<!-- ##### USER_FUNCTION GTypePluginUnRef ##### -->
+<!-- ##### TYPEDEF gint ##### -->
<para>
</para>
-@plugin:
-
-<!-- ##### USER_FUNCTION GTypePluginFillTypeInfo ##### -->
+<!-- ##### TYPEDEF guint ##### -->
<para>
</para>
-@plugin:
-@g_type:
-@info:
-@value_table:
-
-<!-- ##### USER_FUNCTION GTypePluginFillInterfaceInfo ##### -->
+<!-- ##### TYPEDEF gshort ##### -->
<para>
</para>
-@plugin:
-@interface_type:
-@instance_type:
-@info:
-
-<!-- ##### USER_FUNCTION GTypeClassCacheFunc ##### -->
+<!-- ##### TYPEDEF gushort ##### -->
<para>
</para>
-@cache_data:
-@g_class:
-@Returns:
-
-<!-- ##### ENUM GTypeFlags ##### -->
+<!-- ##### TYPEDEF glong ##### -->
<para>
</para>
-@G_TYPE_FLAG_CLASSED:
-@G_TYPE_FLAG_INSTANTIATABLE:
-@G_TYPE_FLAG_DERIVABLE:
-@G_TYPE_FLAG_DEEP_DERIVABLE:
-<!-- ##### FUNCTION g_type_register_static ##### -->
+<!-- ##### TYPEDEF gulong ##### -->
<para>
</para>
-@parent_type:
-@type_name:
-@info:
-@Returns:
-
-<!-- ##### FUNCTION g_type_register_dynamic ##### -->
+<!-- ##### TYPEDEF gint8 ##### -->
<para>
</para>
-@parent_type:
-@type_name:
-@plugin:
-@Returns:
-
-<!-- ##### FUNCTION g_type_register_fundamental ##### -->
+<!-- ##### TYPEDEF guint8 ##### -->
<para>
</para>
-@type_id:
-@type_name:
-@info:
-@finfo:
-@Returns:
-
-<!-- ##### FUNCTION g_type_add_interface_static ##### -->
+<!-- ##### TYPEDEF gint16 ##### -->
<para>
</para>
-@instance_type:
-@interface_type:
-@info:
-
-<!-- ##### FUNCTION g_type_add_interface_dynamic ##### -->
+<!-- ##### TYPEDEF guint16 ##### -->
<para>
</para>
-@instance_type:
-@interface_type:
-@plugin:
-
-<!-- ##### FUNCTION g_type_class_is_a ##### -->
+<!-- ##### TYPEDEF gint32 ##### -->
<para>
</para>
-@g_class:
-@is_a_type:
-@Returns:
-
-<!-- ##### FUNCTION g_type_check_class_cast ##### -->
+<!-- ##### TYPEDEF guint32 ##### -->
<para>
</para>
-@g_class:
-@is_a_type:
-@Returns:
-
-<!-- ##### FUNCTION g_type_check_instance_cast ##### -->
+<!-- ##### MACRO G_HAVE_GINT64 ##### -->
<para>
</para>
-@instance:
-@iface_type:
-@Returns:
-<!-- ##### FUNCTION g_type_instance_conforms_to ##### -->
+<!-- ##### TYPEDEF gint64 ##### -->
<para>
</para>
-@instance:
-@iface_type:
-@Returns:
-
-<!-- ##### FUNCTION g_type_check_flags ##### -->
+<!-- ##### TYPEDEF guint64 ##### -->
<para>
</para>
-@type:
-@flags:
-@Returns:
-
-<!-- ##### FUNCTION g_type_create_instance ##### -->
+<!-- ##### MACRO G_GINT64_CONSTANT ##### -->
<para>
</para>
-@type:
-@Returns:
+@val:
-<!-- ##### FUNCTION g_type_free_instance ##### -->
+<!-- ##### TYPEDEF gfloat ##### -->
<para>
</para>
-@instance:
-
-<!-- ##### FUNCTION g_type_value_table_peek ##### -->
+<!-- ##### TYPEDEF gdouble ##### -->
<para>
</para>
-@type:
-@Returns:
-
-<!-- ##### FUNCTION g_type_add_class_cache_func ##### -->
+<!-- ##### TYPEDEF gsize ##### -->
<para>
</para>
-@cache_data:
-@cache_func:
-
-<!-- ##### FUNCTION g_type_remove_class_cache_func ##### -->
-<para>
-
-</para>
-
-@cache_data:
-@cache_func:
-
-
-<!-- ##### FUNCTION g_type_class_unref_uncached ##### -->
-<para>
-
-</para>
-
-@g_class:
-
-
-<!-- ##### FUNCTION g_type_get_plugin ##### -->
-<para>
-
-</para>
-
-@type:
-@Returns:
-
-
-<!-- ##### FUNCTION g_type_fundamental_last ##### -->
+<!-- ##### TYPEDEF gssize ##### -->
<para>
</para>
-@Returns:
-
diff --git a/docs/reference/glib/tmpl/unicode.sgml b/docs/reference/glib/tmpl/unicode.sgml
new file mode 100644
index 000000000..db8cc03ee
--- /dev/null
+++ b/docs/reference/glib/tmpl/unicode.sgml
@@ -0,0 +1,451 @@
+<!-- ##### SECTION Title ##### -->
+Unicode Manipulation
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### TYPEDEF gunichar ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### TYPEDEF gunichar2 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION g_get_charset ##### -->
+<para>
+
+</para>
+
+@charset:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isalnum ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isalpha ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_iscntrl ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isdigit ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isgraph ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_islower ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isprint ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_ispunct ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isspace ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isupper ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isxdigit ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_istitle ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_isdefined ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_iswide ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_toupper ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_tolower ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_totitle ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_digit_value ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_xdigit_value ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### ENUM GUnicodeType ##### -->
+<para>
+
+</para>
+
+@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:
+
+<!-- ##### FUNCTION g_unichar_type ##### -->
+<para>
+
+</para>
+
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unicode_canonical_ordering ##### -->
+<para>
+
+</para>
+
+@string:
+@len:
+
+
+<!-- ##### FUNCTION g_unicode_canonical_decomposition ##### -->
+<para>
+
+</para>
+
+@ch:
+@result_len:
+@Returns:
+
+
+<!-- ##### MACRO g_utf8_next_char ##### -->
+<para>
+
+</para>
+
+@p:
+
+
+<!-- ##### FUNCTION g_utf8_get_char ##### -->
+<para>
+
+</para>
+
+@p:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_offset_to_pointer ##### -->
+<para>
+
+</para>
+
+@str:
+@offset:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_pointer_to_offset ##### -->
+<para>
+
+</para>
+
+@str:
+@pos:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_prev_char ##### -->
+<para>
+
+</para>
+
+@p:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_find_next_char ##### -->
+<para>
+
+</para>
+
+@p:
+@end:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_find_prev_char ##### -->
+<para>
+
+</para>
+
+@str:
+@p:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_strlen ##### -->
+<para>
+
+</para>
+
+@p:
+@max:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_strncpy ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@n:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_strchr ##### -->
+<para>
+
+</para>
+
+@p:
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_strrchr ##### -->
+<para>
+
+</para>
+
+@p:
+@c:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_to_utf16 ##### -->
+<para>
+
+</para>
+
+@str:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf8_to_ucs4 ##### -->
+<para>
+
+</para>
+
+@str:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf16_to_ucs4 ##### -->
+<para>
+
+</para>
+
+@str:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_utf16_to_utf8 ##### -->
+<para>
+
+</para>
+
+@str:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ucs4_to_utf16 ##### -->
+<para>
+
+</para>
+
+@str:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_ucs4_to_utf8 ##### -->
+<para>
+
+</para>
+
+@str:
+@len:
+@Returns:
+
+
+<!-- ##### FUNCTION g_unichar_to_utf8 ##### -->
+<para>
+
+</para>
+
+@c:
+@outbuf:
+@Returns:
+
+
diff --git a/docs/reference/gobject/.cvsignore b/docs/reference/gobject/.cvsignore
new file mode 100644
index 000000000..8702e770e
--- /dev/null
+++ b/docs/reference/gobject/.cvsignore
@@ -0,0 +1,5 @@
+gobject-decl.txt
+gobject-unused.txt
+gobject-decl-list.txt
+html
+sgml \ No newline at end of file
diff --git a/docs/reference/gobject/Makefile.am b/docs/reference/gobject/Makefile.am
new file mode 100644
index 000000000..451cdad66
--- /dev/null
+++ b/docs/reference/gobject/Makefile.am
@@ -0,0 +1,95 @@
+## Process this file with automake to produce Makefile.in
+
+# The name of the module.
+DOC_MODULE=gobject
+
+# The top-level SGML file.
+DOC_MAIN_SGML_FILE=gobject-docs.sgml
+
+# The directory containing the source code (if it contains documentation).
+DOC_SOURCE_DIR=$(top_srcdir)/gobject
+
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
+
+tmpl_sources = \
+ tmpl/enumerations_flags.sgml \
+ tmpl/generic_values.sgml \
+ tmpl/gobject-unused.sgml \
+ tmpl/objects.sgml \
+ tmpl/param_specs.sgml \
+ tmpl/standard_params.sgml \
+ tmpl/types.sgml \
+ tmpl/value_collection.sgml \
+ tmpl/value_types.sgml
+
+gobject_docdir = $(HTML_DIR)
+gobject_doc_DATA = \
+ gobject-sections.txt
+
+
+EXTRA_DIST = \
+ $(gobject_doc_DATA)
+
+if ENABLE_GTK_DOC
+all-local: html/index.html
+
+gobject-decl.txt:
+ $(MAKE) scan
+
+$(tmpl_sources): gobject-decl.txt gobject-sections.txt
+ $(MAKE) templates
+
+sgml/gobject-doc.bottom: $(tmpl_sources) gobject-decl.txt
+ $(MAKE) sgml
+
+html/index.html: sgml/gobject-doc.bottom
+ $(MAKE) html
+endif
+
+scan:
+ -(cd $(srcdir) \
+ && gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) )
+
+templates:
+ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+
+sgml:
+ cd $(srcdir) \
+ && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+html:
+ test -d $(srcdir)/html || mkdir $(srcdir)/html
+ -cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+ @echo '-- Fixing Crossreferences'
+ gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) --extra-dir=$(srcdir)/../glib/html
+
+clean-local:
+ rm -f *~ *.bak *.signals *-unused.txt
+
+maintainer-clean-local: clean
+ cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+
+install-data-local:
+ $(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); \
+ fi)
+
+dist-hook:
+ mkdir $(distdir)/html
+ mkdir $(distdir)/sgml
+ mkdir $(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/gobject/gobject-docs.sgml b/docs/reference/gobject/gobject-docs.sgml
new file mode 100644
index 000000000..bd337060b
--- /dev/null
+++ b/docs/reference/gobject/gobject-docs.sgml
@@ -0,0 +1,28 @@
+<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
+<!entity gobject-enumerations-flags SYSTEM "sgml/enumerations_flags.sgml">
+<!entity gobject-generic-values SYSTEM "sgml/generic_values.sgml">
+<!entity gobject-objects SYSTEM "sgml/objects.sgml">
+<!entity gobject-param-specs SYSTEM "sgml/param_specs.sgml">
+<!entity gobject-standard-params SYSTEM "sgml/standard_params.sgml">
+<!entity gobject-types SYSTEM "sgml/types.sgml">
+<!entity gobject-value-collection SYSTEM "sgml/value_collection.sgml">
+<!entity gobject-value-types SYSTEM "sgml/value_types.sgml">
+]>
+<book id="index">
+ <bookinfo>
+ <title>GObject Reference Manual</title>
+ </bookinfo>
+
+ <reference>
+ <title>API Reference</title>
+
+ &gobject-types;
+ &gobject-objects;
+ &gobject-enumerations-flags;
+ &gobject-generic-values;
+ &gobject-value-types;
+ &gobject-value-collection;
+ &gobject-param-specs;
+ &gobject-standard-params;
+
+</book> \ No newline at end of file
diff --git a/docs/reference/gobject/gobject-sections.txt b/docs/reference/gobject/gobject-sections.txt
new file mode 100644
index 000000000..e874ae2e1
--- /dev/null
+++ b/docs/reference/gobject/gobject-sections.txt
@@ -0,0 +1,318 @@
+<INCLUDE>gobject.h</INCLUDE>
+
+<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_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>
+
diff --git a/docs/reference/gobject/tmpl/enumerations_flags.sgml b/docs/reference/gobject/tmpl/enumerations_flags.sgml
new file mode 100644
index 000000000..0c03fc619
--- /dev/null
+++ b/docs/reference/gobject/tmpl/enumerations_flags.sgml
@@ -0,0 +1,280 @@
+<!-- ##### SECTION Title ##### -->
+Enumeration and Flag Types
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GEnumClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GFlagsClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_ENUM_CLASS_TYPE ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_ENUM_CLASS_TYPE_NAME ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_TYPE_IS_ENUM ##### -->
+<para>
+
+</para>
+
+@type:
+
+
+<!-- ##### MACRO G_ENUM_CLASS ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_IS_ENUM_CLASS ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_TYPE_IS_FLAGS ##### -->
+<para>
+
+</para>
+
+@type:
+
+
+<!-- ##### MACRO G_FLAGS_CLASS ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_IS_FLAGS_CLASS ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_FLAGS_CLASS_TYPE ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_FLAGS_CLASS_TYPE_NAME ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_IS_VALUE_ENUM ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_FLAGS ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### STRUCT GEnumValue ##### -->
+<para>
+
+</para>
+
+@value:
+@value_name:
+@value_nick:
+
+<!-- ##### STRUCT GFlagsValue ##### -->
+<para>
+
+</para>
+
+@value:
+@value_name:
+@value_nick:
+
+<!-- ##### FUNCTION g_enum_get_value ##### -->
+<para>
+
+</para>
+
+@enum_class:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_enum_get_value_by_name ##### -->
+<para>
+
+</para>
+
+@enum_class:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_enum_get_value_by_nick ##### -->
+<para>
+
+</para>
+
+@enum_class:
+@nick:
+@Returns:
+
+
+<!-- ##### FUNCTION g_flags_get_first_value ##### -->
+<para>
+
+</para>
+
+@flags_class:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_flags_get_value_by_name ##### -->
+<para>
+
+</para>
+
+@flags_class:
+@name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_flags_get_value_by_nick ##### -->
+<para>
+
+</para>
+
+@flags_class:
+@nick:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_enum ##### -->
+<para>
+
+</para>
+
+@value:
+@v_enum:
+
+
+<!-- ##### FUNCTION g_value_get_enum ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_flags ##### -->
+<para>
+
+</para>
+
+@value:
+@v_flags:
+
+
+<!-- ##### FUNCTION g_value_get_flags ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_enum_register_static ##### -->
+<para>
+
+</para>
+
+@name:
+@const_static_values:
+@Returns:
+
+
+<!-- ##### FUNCTION g_flags_register_static ##### -->
+<para>
+
+</para>
+
+@name:
+@const_static_values:
+@Returns:
+
+
+<!-- ##### FUNCTION g_enum_complete_type_info ##### -->
+<para>
+
+</para>
+
+@g_enum_type:
+@info:
+@const_values:
+
+
+<!-- ##### FUNCTION g_flags_complete_type_info ##### -->
+<para>
+
+</para>
+
+@g_flags_type:
+@info:
+@const_values:
+
+
diff --git a/docs/reference/gobject/tmpl/generic_values.sgml b/docs/reference/gobject/tmpl/generic_values.sgml
new file mode 100644
index 000000000..18f2a2f03
--- /dev/null
+++ b/docs/reference/gobject/tmpl/generic_values.sgml
@@ -0,0 +1,139 @@
+<!-- ##### SECTION Title ##### -->
+Generic values
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_VALUE_TYPE ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_VALUE_TYPE_NAME ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_TYPE_IS_VALUE ##### -->
+<para>
+
+</para>
+
+@type:
+
+
+<!-- ##### MACRO G_IS_VALUE ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### USER_FUNCTION GValueExchange ##### -->
+<para>
+
+</para>
+
+@value1:
+@value2:
+
+
+<!-- ##### STRUCT GValue ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION g_value_init ##### -->
+<para>
+
+</para>
+
+@value:
+@g_type:
+
+
+<!-- ##### FUNCTION g_value_copy ##### -->
+<para>
+
+</para>
+
+@src_value:
+@dest_value:
+
+
+<!-- ##### FUNCTION g_value_convert ##### -->
+<para>
+
+</para>
+
+@src_value:
+@dest_value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_reset ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### FUNCTION g_value_unset ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### FUNCTION g_values_exchange ##### -->
+<para>
+
+</para>
+
+@value1:
+@value2:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_types_exchangable ##### -->
+<para>
+
+</para>
+
+@value_type1:
+@value_type2:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_register_exchange_func ##### -->
+<para>
+
+</para>
+
+@value_type1:
+@value_type2:
+@func:
+
+
diff --git a/docs/reference/gobject/tmpl/gobject-unused.sgml b/docs/reference/gobject/tmpl/gobject-unused.sgml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/docs/reference/gobject/tmpl/gobject-unused.sgml
diff --git a/docs/reference/gobject/tmpl/objects.sgml b/docs/reference/gobject/tmpl/objects.sgml
new file mode 100644
index 000000000..ee2a7d21a
--- /dev/null
+++ b/docs/reference/gobject/tmpl/objects.sgml
@@ -0,0 +1,364 @@
+<!-- ##### SECTION Title ##### -->
+The Base Object Type
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GObject ##### -->
+<para>
+
+</para>
+
+@g_type_instance:
+
+<!-- ##### STRUCT GObjectClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_OBJECT ##### -->
+<para>
+
+</para>
+
+@object:
+
+
+<!-- ##### MACRO G_OBJECT_GET_CLASS ##### -->
+<para>
+
+</para>
+
+@object:
+
+
+<!-- ##### MACRO G_OBJECT_TYPE ##### -->
+<para>
+
+</para>
+
+@object:
+
+
+<!-- ##### MACRO G_OBJECT_TYPE_NAME ##### -->
+<para>
+
+</para>
+
+@object:
+
+
+<!-- ##### MACRO G_OBJECT_CLASS_TYPE ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_OBJECT_CLASS_NAME ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_IS_VALUE_OBJECT ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_TYPE_IS_OBJECT ##### -->
+<para>
+
+</para>
+
+@type:
+
+
+<!-- ##### MACRO G_IS_OBJECT ##### -->
+<para>
+
+</para>
+
+@object:
+
+
+<!-- ##### MACRO G_OBJECT_CLASS ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_IS_OBJECT_CLASS ##### -->
+<para>
+
+</para>
+
+@class:
+
+
+<!-- ##### MACRO G_NOTIFY_PRIORITY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION GObjectGetParamFunc ##### -->
+<para>
+
+</para>
+
+@object:
+@param_id:
+@value:
+@pspec:
+@trailer:
+
+
+<!-- ##### USER_FUNCTION GObjectSetParamFunc ##### -->
+<para>
+
+</para>
+
+@object:
+@param_id:
+@value:
+@pspec:
+@trailer:
+
+
+<!-- ##### USER_FUNCTION GObjectFinalizeFunc ##### -->
+<para>
+
+</para>
+
+@object:
+
+
+<!-- ##### FUNCTION g_object_class_install_param ##### -->
+<para>
+
+</para>
+
+@oclass:
+@param_id:
+@pspec:
+
+
+<!-- ##### FUNCTION g_object_class_find_param_spec ##### -->
+<para>
+
+</para>
+
+@oclass:
+@param_name:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_new ##### -->
+<para>
+
+</para>
+
+@object_type:
+@first_param_name:
+@Varargs:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_new_valist ##### -->
+<para>
+
+</para>
+
+@object_type:
+@first_param_name:
+@var_args:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_set ##### -->
+<para>
+
+</para>
+
+@object:
+@first_param_name:
+@Varargs:
+
+
+<!-- ##### FUNCTION g_object_get ##### -->
+<para>
+
+</para>
+
+@object:
+@first_param_name:
+@Varargs:
+
+
+<!-- ##### FUNCTION g_object_set_valist ##### -->
+<para>
+
+</para>
+
+@object:
+@first_param_name:
+@var_args:
+
+
+<!-- ##### FUNCTION g_object_get_valist ##### -->
+<para>
+
+</para>
+
+@object:
+@first_param_name:
+@var_args:
+
+
+<!-- ##### FUNCTION g_object_set_param ##### -->
+<para>
+
+</para>
+
+@object:
+@param_name:
+@value:
+
+
+<!-- ##### FUNCTION g_object_get_param ##### -->
+<para>
+
+</para>
+
+@object:
+@param_name:
+@value:
+
+
+<!-- ##### FUNCTION g_object_queue_param_changed ##### -->
+<para>
+
+</para>
+
+@object:
+@param_name:
+
+
+<!-- ##### FUNCTION g_object_ref ##### -->
+<para>
+
+</para>
+
+@object:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_unref ##### -->
+<para>
+
+</para>
+
+@object:
+
+
+<!-- ##### FUNCTION g_object_get_qdata ##### -->
+<para>
+
+</para>
+
+@object:
+@quark:
+@Returns:
+
+
+<!-- ##### FUNCTION g_object_set_qdata ##### -->
+<para>
+
+</para>
+
+@object:
+@quark:
+@data:
+
+
+<!-- ##### FUNCTION g_object_set_qdata_full ##### -->
+<para>
+
+</para>
+
+@object:
+@quark:
+@data:
+@destroy:
+
+
+<!-- ##### FUNCTION g_object_steal_qdata ##### -->
+<para>
+
+</para>
+
+@object:
+@quark:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_object ##### -->
+<para>
+
+</para>
+
+@value:
+@v_object:
+
+
+<!-- ##### FUNCTION g_value_get_object ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_dup_object ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### MACRO G_WARN_INVALID_PARAM_ID ##### -->
+<para>
+
+</para>
+
+@object:
+@param_id:
+@pspec:
+
+
diff --git a/docs/reference/gobject/tmpl/param_specs.sgml b/docs/reference/gobject/tmpl/param_specs.sgml
new file mode 100644
index 000000000..7ce7b0922
--- /dev/null
+++ b/docs/reference/gobject/tmpl/param_specs.sgml
@@ -0,0 +1,261 @@
+<!-- ##### SECTION Title ##### -->
+Object Parameter Specifications
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GParamSpec ##### -->
+<para>
+
+</para>
+
+@g_instance:
+@name:
+@nick:
+@blurb:
+@flags:
+
+<!-- ##### STRUCT GParamSpecClass ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_PARAM_SPEC_TYPE ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_TYPE_NAME ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_GET_CLASS ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_VALUE ##### -->
+<para>
+
+</para>
+
+@pspec:
+@value:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_VALUE_TYPE ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_TYPE_IS_PARAM ##### -->
+<para>
+
+</para>
+
+@type:
+
+
+<!-- ##### ENUM GParamFlags ##### -->
+<para>
+
+</para>
+
+@G_PARAM_READABLE:
+@G_PARAM_WRITABLE:
+@G_PARAM_MASK:
+@G_PARAM_USER_MASK:
+
+<!-- ##### FUNCTION g_param_spec_ref ##### -->
+<para>
+
+</para>
+
+@pspec:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_unref ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### FUNCTION g_param_spec_get_qdata ##### -->
+<para>
+
+</para>
+
+@pspec:
+@quark:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_set_qdata ##### -->
+<para>
+
+</para>
+
+@pspec:
+@quark:
+@data:
+
+
+<!-- ##### FUNCTION g_param_spec_set_qdata_full ##### -->
+<para>
+
+</para>
+
+@pspec:
+@quark:
+@data:
+@destroy:
+
+
+<!-- ##### FUNCTION g_param_spec_steal_qdata ##### -->
+<para>
+
+</para>
+
+@pspec:
+@quark:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_value_set_default ##### -->
+<para>
+
+</para>
+
+@pspec:
+@value:
+
+
+<!-- ##### FUNCTION g_param_value_defaults ##### -->
+<para>
+
+</para>
+
+@pspec:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_value_validate ##### -->
+<para>
+
+</para>
+
+@pspec:
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_values_cmp ##### -->
+<para>
+
+</para>
+
+@pspec:
+@value1:
+@value2:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_internal ##### -->
+<para>
+
+</para>
+
+@param_type:
+@name:
+@nick:
+@blurb:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_hash_table_new ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_hash_table_insert ##### -->
+<para>
+
+</para>
+
+@hash_table:
+@pspec:
+@owner_type:
+
+
+<!-- ##### FUNCTION g_param_spec_hash_table_remove ##### -->
+<para>
+
+</para>
+
+@hash_table:
+@pspec:
+
+
+<!-- ##### FUNCTION g_param_spec_hash_table_lookup ##### -->
+<para>
+
+</para>
+
+@hash_table:
+@param_name:
+@owner_type:
+@try_ancestors:
+@trailer:
+@Returns:
+
+
diff --git a/docs/reference/gobject/tmpl/standard_params.sgml b/docs/reference/gobject/tmpl/standard_params.sgml
new file mode 100644
index 000000000..5d297355f
--- /dev/null
+++ b/docs/reference/gobject/tmpl/standard_params.sgml
@@ -0,0 +1,555 @@
+<!-- ##### SECTION Title ##### -->
+Standard Parameter Types
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_CHAR ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_CHAR ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_UCHAR ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_UCHAR ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_BOOLEAN ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_BOOLEAN ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_INT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_INT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_UINT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_UINT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_LONG ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_LONG ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_ULONG ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_ULONG ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_ENUM ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_ENUM ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_FLAGS ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_FLAGS ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_FLOAT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_FLOAT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_DOUBLE ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_DOUBLE ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_STRING ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_STRING ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_IS_PARAM_SPEC_OBJECT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### MACRO G_PARAM_SPEC_OBJECT ##### -->
+<para>
+
+</para>
+
+@pspec:
+
+
+<!-- ##### STRUCT GParamSpecChar ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecUChar ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecBoolean ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecInt ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecUInt ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecLong ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecULong ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecEnum ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@enum_class:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecFlags ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@flags_class:
+@default_value:
+
+<!-- ##### STRUCT GParamSpecFloat ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+@epsilon:
+
+<!-- ##### STRUCT GParamSpecDouble ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@minimum:
+@maximum:
+@default_value:
+@epsilon:
+
+<!-- ##### STRUCT GParamSpecString ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@default_value:
+@cset_first:
+@cset_nth:
+@substitutor:
+@null_fold_if_empty:
+@ensure_non_null:
+
+<!-- ##### STRUCT GParamSpecObject ##### -->
+<para>
+
+</para>
+
+@parent_instance:
+@object_type:
+
+<!-- ##### FUNCTION g_param_spec_char ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_uchar ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_boolean ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_int ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_uint ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_long ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_ulong ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_enum ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@enum_type:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_flags ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@flags_type:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_float ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_double ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@minimum:
+@maximum:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_string ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_string_c ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@default_value:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_param_spec_object ##### -->
+<para>
+
+</para>
+
+@name:
+@nick:
+@blurb:
+@object_type:
+@flags:
+@Returns:
+
+
diff --git a/docs/reference/gobject/tmpl/types.sgml b/docs/reference/gobject/tmpl/types.sgml
new file mode 100644
index 000000000..dce9f4da5
--- /dev/null
+++ b/docs/reference/gobject/tmpl/types.sgml
@@ -0,0 +1,753 @@
+<!-- ##### SECTION Title ##### -->
+GType
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### TYPEDEF GType ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### 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_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>
+
+@instance:
+@g_class:
+
+
+<!-- ##### USER_FUNCTION GInterfaceInitFunc ##### -->
+<para>
+
+</para>
+
+@g_iface:
+@iface_data:
+
+
+<!-- ##### USER_FUNCTION GInterfaceFinalizeFunc ##### -->
+<para>
+
+</para>
+
+@g_iface:
+@iface_data:
+
+
+<!-- ##### USER_FUNCTION GTypePluginRef ##### -->
+<para>
+
+</para>
+
+@plugin:
+
+
+<!-- ##### USER_FUNCTION GTypePluginUnRef ##### -->
+<para>
+
+</para>
+
+@plugin:
+
+
+<!-- ##### USER_FUNCTION GTypePluginFillTypeInfo ##### -->
+<para>
+
+</para>
+
+@plugin:
+@g_type:
+@info:
+@value_table:
+
+
+<!-- ##### USER_FUNCTION GTypePluginFillInterfaceInfo ##### -->
+<para>
+
+</para>
+
+@plugin:
+@interface_type:
+@instance_type:
+@info:
+
+
+<!-- ##### USER_FUNCTION GTypeClassCacheFunc ##### -->
+<para>
+
+</para>
+
+@cache_data:
+@g_class:
+@Returns:
+
+
+<!-- ##### ENUM GTypeFlags ##### -->
+<para>
+
+</para>
+
+@G_TYPE_FLAG_CLASSED:
+@G_TYPE_FLAG_INSTANTIATABLE:
+@G_TYPE_FLAG_DERIVABLE:
+@G_TYPE_FLAG_DEEP_DERIVABLE:
+
+<!-- ##### FUNCTION g_type_register_static ##### -->
+<para>
+
+</para>
+
+@parent_type:
+@type_name:
+@info:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_register_dynamic ##### -->
+<para>
+
+</para>
+
+@parent_type:
+@type_name:
+@plugin:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_register_fundamental ##### -->
+<para>
+
+</para>
+
+@type_id:
+@type_name:
+@info:
+@finfo:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_add_interface_static ##### -->
+<para>
+
+</para>
+
+@instance_type:
+@interface_type:
+@info:
+
+
+<!-- ##### FUNCTION g_type_add_interface_dynamic ##### -->
+<para>
+
+</para>
+
+@instance_type:
+@interface_type:
+@plugin:
+
+
+<!-- ##### FUNCTION g_type_class_is_a ##### -->
+<para>
+
+</para>
+
+@g_class:
+@is_a_type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_check_class_cast ##### -->
+<para>
+
+</para>
+
+@g_class:
+@is_a_type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_check_instance_cast ##### -->
+<para>
+
+</para>
+
+@instance:
+@iface_type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_instance_conforms_to ##### -->
+<para>
+
+</para>
+
+@instance:
+@iface_type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_check_flags ##### -->
+<para>
+
+</para>
+
+@type:
+@flags:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_create_instance ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_free_instance ##### -->
+<para>
+
+</para>
+
+@instance:
+
+
+<!-- ##### FUNCTION g_type_value_table_peek ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_add_class_cache_func ##### -->
+<para>
+
+</para>
+
+@cache_data:
+@cache_func:
+
+
+<!-- ##### FUNCTION g_type_remove_class_cache_func ##### -->
+<para>
+
+</para>
+
+@cache_data:
+@cache_func:
+
+
+<!-- ##### FUNCTION g_type_class_unref_uncached ##### -->
+<para>
+
+</para>
+
+@g_class:
+
+
+<!-- ##### FUNCTION g_type_get_plugin ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION g_type_fundamental_last ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
diff --git a/docs/reference/gobject/tmpl/value_collection.sgml b/docs/reference/gobject/tmpl/value_collection.sgml
new file mode 100644
index 000000000..2066012ba
--- /dev/null
+++ b/docs/reference/gobject/tmpl/value_collection.sgml
@@ -0,0 +1,44 @@
+<!-- ##### SECTION Title ##### -->
+Varargs Value Collection
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### UNION GTypeCValue ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_VALUE_COLLECT ##### -->
+<para>
+
+</para>
+
+@value:
+@var_args:
+@__error:
+
+
+<!-- ##### MACRO G_VALUE_LCOPY ##### -->
+<para>
+
+</para>
+
+@value:
+@var_args:
+@__error:
+
+
diff --git a/docs/reference/gobject/tmpl/value_types.sgml b/docs/reference/gobject/tmpl/value_types.sgml
new file mode 100644
index 000000000..86bca6c1f
--- /dev/null
+++ b/docs/reference/gobject/tmpl/value_types.sgml
@@ -0,0 +1,287 @@
+<!-- ##### SECTION Title ##### -->
+Standard value types
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO G_IS_VALUE_CHAR ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_UCHAR ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_BOOLEAN ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_INT ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_UINT ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_LONG ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_ULONG ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_FLOAT ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_DOUBLE ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### MACRO G_IS_VALUE_STRING ##### -->
+<para>
+
+</para>
+
+@value:
+
+
+<!-- ##### FUNCTION g_value_set_char ##### -->
+<para>
+
+</para>
+
+@value:
+@v_char:
+
+
+<!-- ##### FUNCTION g_value_get_char ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_uchar ##### -->
+<para>
+
+</para>
+
+@value:
+@v_uchar:
+
+
+<!-- ##### FUNCTION g_value_get_uchar ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_boolean ##### -->
+<para>
+
+</para>
+
+@value:
+@v_boolean:
+
+
+<!-- ##### FUNCTION g_value_get_boolean ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_int ##### -->
+<para>
+
+</para>
+
+@value:
+@v_int:
+
+
+<!-- ##### FUNCTION g_value_get_int ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_uint ##### -->
+<para>
+
+</para>
+
+@value:
+@v_uint:
+
+
+<!-- ##### FUNCTION g_value_get_uint ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_long ##### -->
+<para>
+
+</para>
+
+@value:
+@v_long:
+
+
+<!-- ##### FUNCTION g_value_get_long ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_ulong ##### -->
+<para>
+
+</para>
+
+@value:
+@v_ulong:
+
+
+<!-- ##### FUNCTION g_value_get_ulong ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_float ##### -->
+<para>
+
+</para>
+
+@value:
+@v_float:
+
+
+<!-- ##### FUNCTION g_value_get_float ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_double ##### -->
+<para>
+
+</para>
+
+@value:
+@v_double:
+
+
+<!-- ##### FUNCTION g_value_get_double ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_set_string ##### -->
+<para>
+
+</para>
+
+@value:
+@v_string:
+
+
+<!-- ##### FUNCTION g_value_get_string ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+
+<!-- ##### FUNCTION g_value_dup_string ##### -->
+<para>
+
+</para>
+
+@value:
+@Returns:
+
+