12.3. Data Definitions for libglib-2.0

This section defines global identifiers and their values that are associated with interfaces contained in libglib-2.0. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.

This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.

This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.

12.3.1. glib-2.0/glib.h


#define GLIB_HAVE_ALLOCA_H
#define GLIB_HAVE_SYS_POLL_H
#define G_GINT32_MODIFIER	""
#define G_GNUC_FUNCTION	""
#define G_GNUC_PRETTY_FUNCTION	""
#define G_OPTION_REMAINING	""
#define G_OS_UNIX
#define G_THREADS_ENABLED
#define G_THREADS_IMPL_POSIX
#define G_WIN32_DLLMAIN_FOR_DLL_NAME(static,dll_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"
#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"
#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)) )
#define G_NODE_IS_ROOT(node)	 \
	(((GNode*) (node))->parent == NULL && ((GNode*) (node))->prev == NULL \
	&& ((GNode*) (node))->next == NULL)
#define g_once(once,func,arg)	 \
	(((once)->status == G_ONCE_STATUS_READY) ? (once)->retval : \
	g_once_impl ((once), (func), (arg)))
#define CLAMP(x,low,high)	 \
	(((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
#define G_STRUCT_OFFSET(struct_type,member)	 \
	((glong) ((guint8*) &((struct_type*) 0)->member))
#define G_STRUCT_MEMBER_P(struct_p,struct_offset)	 \
	((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
#define GUINT16_SWAP_LE_BE_CONSTANT(val)	 \
	((guint16) ( (guint16) ((guint16) (val) >> 8) | (guint16) ((guint16) \
	(val) << 8)))
#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)))
#define GUINT32_SWAP_LE_PDP(val)	 \
	((guint32) ( (((guint32) (val) & (guint32) 0x0000ffffU) << 16) | \
	(((guint32) (val) & (guint32) 0xffff0000U) >> 16)))
#define GUINT32_SWAP_BE_PDP(val)	 \
	((guint32) ( (((guint32) (val) & (guint32) 0x00ff00ffU) << 8) | \
	(((guint32) (val) & (guint32) 0xff00ff00U) >> 8)))
#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)))
#define g_ascii_isalnum(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_ALNUM) != 0)
#define g_ascii_isalpha(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_ALPHA) != 0)
#define g_ascii_iscntrl(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_CNTRL) != 0)
#define g_ascii_isdigit(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_DIGIT) != 0)
#define g_ascii_isgraph(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_GRAPH) != 0)
#define g_ascii_islower(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_LOWER) != 0)
#define g_ascii_isprint(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0)
#define g_ascii_ispunct(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_PUNCT) != 0)
#define g_ascii_isspace(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_SPACE) != 0)
#define g_ascii_isupper(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_UPPER) != 0)
#define g_ascii_isxdigit(c)	 \
	((g_ascii_table[(guchar) (c)] & G_ASCII_XDIGIT) != 0)
#define G_HOOK_ACTIVE(hook)	 \
	((G_HOOK_FLAGS (hook) & G_HOOK_FLAG_ACTIVE) != 0)
#define G_HOOK_IN_CALL(hook)	 \
	((G_HOOK_FLAGS (hook) & G_HOOK_FLAG_IN_CALL) != 0)
#define g_node_first_child(node)	 \
	((node) ? ((GNode*) (node))->children : NULL)
#define g_node_next_sibling(node)	 \
	((node) ? ((GNode*) (node))->next : NULL)
#define g_node_prev_sibling(node)	 \
	((node) ? ((GNode*) (node))->prev : NULL)
#define g_new(struct_type,n_structs)	 \
	((struct_type *) g_malloc (((gsize) sizeof (struct_type)) * ((gsize) \
	(n_structs))))
#define g_new0(struct_type,n_structs)	 \
	((struct_type *) g_malloc0 (((gsize) sizeof (struct_type)) * ((gsize) \
	(n_structs))))
#define g_renew(struct_type,mem,n_structs)	 \
	((struct_type *) g_realloc ((mem), ((gsize) sizeof (struct_type)) * \
	((gsize) (n_structs))))
#define g_newa(struct_type,n_structs)	 \
	((struct_type*) g_alloca (sizeof (struct_type) * (gsize) \
	(n_structs)))
#define G_STRUCT_MEMBER(member_type,struct_p,struct_offset)	 \
	(*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
#define G_THREAD_UF(op,arglist)	 \
	(*g_thread_functions_for_glib_use . op) arglist
#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)))
#define g_atomic_int_dec_and_test(atomic)	 \
	(g_atomic_int_exchange_and_add ((atomic), -1) == 1)
#define g_static_mutex_get_mutex_impl_shortcut(mutex)	 \
	(g_atomic_pointer_get ((gpointer*)mutex) ? *(mutex) : \
	g_static_mutex_get_mutex_impl (mutex))
#define g_datalist_get_data(dl,k)	 \
	(g_datalist_id_get_data ((dl), g_quark_try_string (k)))
#define g_dataset_get_data(l,k)	 \
	(g_dataset_id_get_data ((l), g_quark_try_string (k)))
#define G_HOOK_IS_VALID(hook)	 \
	(G_HOOK (hook)->hook_id != 0 && (G_HOOK_FLAGS (hook) & \
	G_HOOK_FLAG_ACTIVE))
#define G_HOOK_IS_UNLINKED(hook)	 \
	(G_HOOK (hook)->next == NULL && G_HOOK (hook)->prev == NULL && G_HOOK \
	(hook)->hook_id == 0 && G_HOOK (hook)->ref_count == 0)
#define g_thread_create(func,data,joinable,error)	 \
	(g_thread_create_full (func, data, 0, joinable, FALSE, \
	G_THREAD_PRIORITY_NORMAL, error))
#define G_THREAD_ECF(op,fail,mutex,type)	 \
	(g_thread_supported () ? ((type(*)(GMutex*, gulong, gchar*)) \
	(*g_thread_functions_for_glib_use . op)) (mutex, G_MUTEX_DEBUG_MAGIC, \
	G_STRLOC) : (fail))
#define G_THREAD_CF(op,fail,arg)	 \
	(g_thread_supported () ? G_THREAD_UF (op, arg) : (fail))
#define g_static_mutex_get_mutex(mutex)	 \
	(g_thread_use_default_impl ? ((GMutex*) &((mutex)->static_mutex)) : \
	g_static_mutex_get_mutex_impl_shortcut (&((mutex)->runtime_mutex)))
#define G_LOCK_DEFINE(name)	 \
	GStaticMutex G_LOCK_NAME (name) = G_STATIC_MUTEX_INIT
#define g_datalist_remove_no_notify(dl,k)	 \
	g_datalist_id_remove_no_notify ((dl), g_quark_try_string (k))
#define g_datalist_id_remove_data(dl,q)	 \
	g_datalist_id_set_data ((dl), (q), NULL)
#define g_datalist_remove_data(dl,k)	 \
	g_datalist_id_set_data ((dl), g_quark_try_string (k), NULL)
#define g_datalist_id_set_data(dl,q,d)	 \
	g_datalist_id_set_data_full ((dl), (q), (d), NULL)
#define g_datalist_set_data_full(dl,k,d,f)	 \
	g_datalist_id_set_data_full ((dl), g_quark_from_string (k), (d), (f))
#define g_datalist_set_data(dl,k,d)	 \
	g_datalist_set_data_full ((dl), (k), (d), NULL)
#define g_dataset_remove_no_notify(l,k)	 \
	g_dataset_id_remove_no_notify ((l), g_quark_try_string (k))
#define g_dataset_id_remove_data(l,k)	 \
	g_dataset_id_set_data ((l), (k), NULL)
#define g_dataset_remove_data(l,k)	 \
	g_dataset_id_set_data ((l), g_quark_try_string (k), NULL)
#define g_dataset_id_set_data(l,k,d)	 \
	g_dataset_id_set_data_full ((l), (k), (d), NULL)
#define g_dataset_set_data_full(l,k,d,f)	 \
	g_dataset_id_set_data_full ((l), g_quark_from_string (k), (d), (f))
#define g_dataset_set_data(l,k,d)	 \
	g_dataset_set_data_full ((l), (k), (d), NULL)
#define g_hook_append(hook_list,hook)	 \
	g_hook_insert_before ((hook_list), NULL, (hook))
#define g_critical(...)	 \
	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, __VA_ARGS__)
#define g_message(...)	 \
	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, __VA_ARGS__)
#define g_warning(...)	 \
	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, __VA_ARGS__)
#define g_static_mutex_lock(mutex)	 \
	g_mutex_lock (g_static_mutex_get_mutex (mutex))
#define g_static_mutex_trylock(mutex)	 \
	g_mutex_trylock (g_static_mutex_get_mutex (mutex))
#define g_static_mutex_unlock(mutex)	 \
	g_mutex_unlock (g_static_mutex_get_mutex (mutex))
#define g_node_insert_data(parent,position,data)	 \
	g_node_insert ((parent), (position), g_node_new (data))
#define g_node_insert_data_before(parent,sibling,data)	 \
	g_node_insert_before ((parent), (sibling), g_node_new (data))
#define g_node_append(parent,node)	 \
	g_node_insert_before ((parent), NULL, (node))
#define g_node_append_data(parent,data)	 \
	g_node_insert_before ((parent), NULL, g_node_new (data))
#define g_node_prepend_data(parent,data)	 \
	g_node_prepend ((parent), g_node_new (data))
#define g_chunk_free(mem,mem_chunk)	 \
	G_STMT_START { g_mem_chunk_free ((mem_chunk), (mem)); } G_STMT_END
#define g_memmove(d,s,n)	 \
	G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END
#define g_assert_not_reached()	 \
	G_STMT_START{ g_assert_warning (G_LOG_DOMAIN, __FILE__, __LINE__, \
	__PRETTY_FUNCTION__, NULL); }G_STMT_END
#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
#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
#define g_assert(expr)	 \
	G_STMT_START{ if G_LIKELY(expr) { } else g_assert_warning \
	(G_LOG_DOMAIN, __FILE__, __LINE__, __PRETTY_FUNCTION__, #expr); \
	}G_STMT_END
#define g_return_val_if_fail(expr,val)	 \
	G_STMT_START{ if G_LIKELY(expr) { } else { g_return_if_fail_warning \
	(G_LOG_DOMAIN, __PRETTY_FUNCTION__, #expr); return (val); }; \
	}G_STMT_END
#define g_return_if_fail(expr)	 \
	G_STMT_START{ if G_LIKELY(expr) { } else { g_return_if_fail_warning \
	(G_LOG_DOMAIN, __PRETTY_FUNCTION__, #expr); return; }; }G_STMT_END
#define G_BREAKPOINT()	 \
	G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END
#define g_cond_broadcast(cond)	 \
	G_THREAD_CF (cond_broadcast, (void)0, (cond))
#define g_cond_timed_wait(cond,mutex,abs_time)	 \
	G_THREAD_CF (cond_timed_wait, TRUE, (cond, mutex, abs_time))
#define g_cond_wait(cond,mutex)	 \
	G_THREAD_CF (cond_wait, (void)0, (cond, mutex))
#define g_private_get(private_key)	 \
	G_THREAD_CF (private_get, ((gpointer)private_key), (private_key))
#define g_private_set(private_key,value)	 \
	G_THREAD_CF (private_set, (void) (private_key = (GPrivate*) (value)), \
	(private_key, value))
#define G_GNUC_PRINTF(format_idx,arg_idx)	 \
	__attribute__((__format__ (__printf__, format_idx, arg_idx)))
#define G_GNUC_SCANF(format_idx,arg_idx)	 \
	__attribute__((__format__ (__scanf__, format_idx, arg_idx)))
#define G_STATIC_RW_LOCK_INIT	 \
	{ G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, 0, 0 }
#define G_STRINGIFY_ARG(contents)	#contents
#define G_DIR_SEPARATOR	'/'
#define g_chunk_new(type,chunk)	( (type *) g_mem_chunk_alloc (chunk) )
#define g_chunk_new0(type,chunk)	( (type *) g_mem_chunk_alloc0 (chunk) )
#define MIN(a,b)	(((a) < (b)) ? (a) : (b))
#define ABS(a)	(((a) < 0) ? -(a) : (a))
#define MAX(a,b)	(((a) > (b)) ? (a) : (b))
#define G_NODE_IS_LEAF(node)	(((GNode*) (node))->children == NULL)
#define g_array_index(a,t,i)	(((t*) (a)->data) [(i)])
#define g_ptr_array_index(array,index_)	((array)->pdata)[index_]
#define G_IS_DIR_SEPARATOR(c)	((c) == G_DIR_SEPARATOR)
#define G_STRFUNC	((const char*) (__PRETTY_FUNCTION__))
#define G_LOG_DOMAIN	((gchar*) 0)
#define G_HOOK(hook)	((GHook*) (hook))
#define GINT_TO_BE(val)	((gint) GINT32_TO_BE (val))
#define GINT_TO_LE(val)	((gint) GINT32_TO_LE (val))
#define GINT16_TO_LE(val)	((gint16) (val))
#define G_MAXINT16	((gint16) 0x7fff)
#define G_MININT16	((gint16) 0x8000)
#define GINT16_TO_BE(val)	((gint16) GUINT16_SWAP_LE_BE (val))
#define GINT32_TO_LE(val)	((gint32) (val))
#define G_MAXINT32	((gint32) 0x7fffffff)
#define G_MININT32	((gint32) 0x80000000)
#define GINT32_TO_BE(val)	((gint32) GUINT32_SWAP_LE_BE (val))
#define GINT64_TO_LE(val)	((gint64) (val))
#define GINT64_TO_BE(val)	((gint64) GUINT64_SWAP_LE_BE (val))
#define G_MAXINT8	((gint8) 0x7f)
#define G_MININT8	((gint8) 0x80)
#define GSIZE_TO_POINTER(s)	((gpointer) (gsize) (s))
#define GPOINTER_TO_SIZE(p)	((gsize) (p))
#define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
#define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
#define GUINT16_SWAP_LE_PDP(val)	((guint16) (val))
#define GUINT16_TO_LE(val)	((guint16) (val))
#define G_MAXUINT16	((guint16) 0xffff)
#define GUINT32_TO_LE(val)	((guint32) (val))
#define G_MAXUINT32	((guint32) 0xffffffff)
#define GUINT64_TO_LE(val)	((guint64) (val))
#define G_MAXUINT8	((guint8) 0xff)
#define g_random_boolean()	((g_random_int () & (1 << 15)) != 0)
#define g_rand_boolean(rand_)	((g_rand_int (rand_) & (1 << 15)) != 0)
#define g_list_next(list)	((list) ? (((GList *)(list))->next) : NULL)
#define g_list_previous(list)	((list) ? (((GList *)(list))->prev) : NULL)
#define g_slist_next(slist)	((slist) ? (((GSList *)(slist))->next) : NULL)
#define g_atomic_int_get(atomic)	(*(atomic))
#define g_atomic_pointer_get(atomic)	(*(atomic))
#define G_LOG_2_BASE_10	(0.30102999566398119521)
#define G_ALLOCATOR_LIST	(1)
#define G_IEEE754_DOUBLE_BIAS	(1023)
#define G_IEEE754_FLOAT_BIAS	(127)
#define G_ALLOCATOR_SLIST	(2)
#define G_ASCII_DTOSTR_BUF_SIZE	(29 + 10)
#define G_ALLOCATOR_NODE	(3)
#define G_HOOK_FLAG_USER_SHIFT	(4)
#define G_LOG_LEVEL_USER_SHIFT	(8)
#define g_ATEXIT(proc)	(atexit (proc))
#define g_utf8_next_char(p)	(char *)((p) + g_utf8_skip[*(guchar *)(p)])
#define G_LIKELY(expr)	(expr)
#define G_UNLIKELY(expr)	(expr)
#define GINT16_FROM_BE(val)	(GINT16_TO_BE (val))
#define GINT16_FROM_LE(val)	(GINT16_TO_LE (val))
#define GINT32_FROM_BE(val)	(GINT32_TO_BE (val))
#define GINT32_FROM_LE(val)	(GINT32_TO_LE (val))
#define GINT64_FROM_BE(val)	(GINT64_TO_BE (val))
#define GINT64_FROM_LE(val)	(GINT64_TO_LE (val))
#define GINT_FROM_BE(val)	(GINT_TO_BE (val))
#define GINT_FROM_LE(val)	(GINT_TO_LE (val))
#define GLONG_FROM_BE(val)	(GLONG_TO_BE (val))
#define GLONG_FROM_LE(val)	(GLONG_TO_LE (val))
#define g_ntohs(val)	(GUINT16_FROM_BE (val))
#define GUINT16_SWAP_BE_PDP(val)	(GUINT16_SWAP_LE_BE (val))
#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
#define GUINT16_SWAP_LE_BE(val)	(GUINT16_SWAP_LE_BE_CONSTANT (val))
#define GUINT16_FROM_BE(val)	(GUINT16_TO_BE (val))
#define g_htons(val)	(GUINT16_TO_BE (val))
#define GUINT16_FROM_LE(val)	(GUINT16_TO_LE (val))
#define g_ntohl(val)	(GUINT32_FROM_BE (val))
#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
#define GUINT32_SWAP_LE_BE(val)	(GUINT32_SWAP_LE_BE_CONSTANT (val))
#define GUINT32_FROM_BE(val)	(GUINT32_TO_BE (val))
#define g_htonl(val)	(GUINT32_TO_BE (val))
#define GUINT32_FROM_LE(val)	(GUINT32_TO_LE (val))
#define GUINT64_TO_BE(val)	(GUINT64_SWAP_LE_BE (val))
#define GUINT64_SWAP_LE_BE(val)	(GUINT64_SWAP_LE_BE_CONSTANT (val))
#define GUINT64_FROM_BE(val)	(GUINT64_TO_BE (val))
#define GUINT64_FROM_LE(val)	(GUINT64_TO_LE (val))
#define GUINT_FROM_BE(val)	(GUINT_TO_BE (val))
#define GUINT_FROM_LE(val)	(GUINT_TO_LE (val))
#define GULONG_FROM_BE(val)	(GULONG_TO_BE (val))
#define GULONG_FROM_LE(val)	(GULONG_TO_LE (val))
#define g_atomic_int_inc(atomic)	(g_atomic_int_add ((atomic), 1))
#define G_HOOK_FLAGS(hook)	(G_HOOK (hook)->flags)
#define G_LOG_FATAL_MASK	(G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
#define G_OPTION_ERROR	(g_option_error_quark ())
#define g_thread_supported()	(g_threads_got_initialized)
#define G_N_ELEMENTS(arr)	(sizeof (arr) / sizeof ((arr)[0]))
#define G_STMT_START	(void) __extension__ (
#define G_STMT_END	)
#define G_PRIORITY_HIGH	-100
#define G_DIR_SEPARATOR_S	"/"
#define G_HAVE_GROWING_STACK	0
#define G_PRIORITY_DEFAULT	0
#define G_LN2	0.69314718055994530941723212145817656807550013436026
#define G_PI_4	0.78539816339744830961566084581987572104929234984378
#define G_CSET_DIGITS	"0123456789"
#define G_DATE_BAD_DAY	0U
#define G_DATE_BAD_JULIAN	0U
#define G_DATE_BAD_YEAR	0U
#define G_MUTEX_DEBUG_MAGIC	0xf8e18ad7
#define G_ALLOC_ONLY	1
#define G_CAN_INLINE	1
#define G_HAVE_GINT64	1
#define G_HAVE_GNUC_VARARGS	1
#define G_HAVE_GNUC_VISIBILITY	1
#define G_HAVE_INLINE	1
#define G_HAVE_ISO_VARARGS	1
#define G_HAVE___INLINE	1
#define G_HAVE___INLINE__	1
#define G_SQRT2	1.4142135623730950488016887242096980785696718753769
#define G_PI_2	1.5707963267948966192313216916397514420985846996876
#define G_PRIORITY_HIGH_IDLE	100
#define G_USEC_PER_SEC	1000000
#define G_LITTLE_ENDIAN	1234
#define GLIB_MAJOR_VERSION	2
#define G_ALLOC_AND_FREE	2
#define G_LN10	2.3025850929940456840179914546843642076011014886288
#define G_E	2.7182818284590452353602874713526624977572470937000
#define G_PRIORITY_DEFAULT_IDLE	200
#define G_PI	3.1415926535897932384626433832795028841971693993751
#define G_PRIORITY_LOW	300
#define G_PDP_ENDIAN	3412
#define G_BIG_ENDIAN	4321
#define GLIB_MICRO_VERSION	6
#define GLIB_MINOR_VERSION	6
#define G_SEARCHPATH_SEPARATOR	:
#define G_SEARCHPATH_SEPARATOR_S	":"
#define GLIB_SYSDEF_POLLIN	=1
#define GLIB_SYSDEF_POLLHUP	=16
#define GLIB_SYSDEF_POLLPRI	=2
#define GLIB_SYSDEF_POLLNVAL	=32
#define GLIB_SYSDEF_POLLOUT	=4
#define GLIB_SYSDEF_POLLERR	=8
#define G_CSET_A_2_Z	"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define G_CSET_a_2_z	"abcdefghijklmnopqrstuvwxyz"
#define g_alloca(size)	alloca (size)
#define G_CONST_RETURN	const
#define G_MAXDOUBLE	DBL_MAX
#define G_MINDOUBLE	DBL_MIN
#define GLIB_VAR	extern
#define G_LOCK_EXTERN(name)	extern GStaticMutex G_LOCK_NAME (name)
#define G_INLINE_FUNC	extern inline
#define G_MAXFLOAT	FLT_MAX
#define G_MINFLOAT	FLT_MIN
#define G_MEM_ALIGN	GLIB_SIZEOF_LONG
#define g_array_append_val(a,v)	g_array_append_vals (a, &(v), 1)
#define g_array_insert_val(a,i,v)	g_array_insert_vals (a, i, &(v), 1)
#define g_array_prepend_val(a,v)	g_array_prepend_vals (a, &(v), 1)
#define ATEXIT(proc)	g_ATEXIT(proc)
#define G_CONVERT_ERROR	g_convert_error_quark()
#define g_date_day	g_date_get_day
#define g_date_days_in_month	g_date_get_days_in_month
#define g_date_day_of_year	g_date_get_day_of_year
#define g_date_julian	g_date_get_julian
#define g_date_monday_weeks_in_year	g_date_get_monday_weeks_in_year
#define g_date_monday_week_of_year	g_date_get_monday_week_of_year
#define g_date_month	g_date_get_month
#define g_date_sunday_weeks_in_year	g_date_get_sunday_weeks_in_year
#define g_date_sunday_week_of_year	g_date_get_sunday_week_of_year
#define g_date_weekday	g_date_get_weekday
#define g_date_year	g_date_get_year
#define G_FILE_ERROR	g_file_error_quark ()
#define G_MAXINT64	G_GINT64_CONSTANT(0x7fffffffffffffff)
#define G_MININT64	G_GINT64_CONSTANT(0x8000000000000000)
#define G_MAXUINT64	G_GINT64_CONSTANT(0xffffffffffffffffU)
#define G_IO_CHANNEL_ERROR	g_io_channel_error_quark()
#define G_KEY_FILE_ERROR	g_key_file_error_quark()
#define G_BYTE_ORDER	G_LITTLE_ENDIAN
#define g_debug(...)	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, __VA_ARGS__)
#define g_error(...)	g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, __VA_ARGS__)
#define G_MARKUP_ERROR	g_markup_error_quark ()
#define G_SHELL_ERROR	g_shell_error_quark ()
#define G_SPAWN_ERROR	g_spawn_error_quark ()
#define G_LOCK(name)	g_static_mutex_lock (&G_LOCK_NAME (name))
#define G_TRYLOCK(name)	g_static_mutex_trylock (&G_LOCK_NAME (name))
#define G_UNLOCK(name)	g_static_mutex_unlock (&G_LOCK_NAME (name))
#define g_strstrip(string)	g_strchomp (g_strchug (string))
#define G_STRINGIFY(macro_or_string)	G_STRINGIFY_ARG (macro_or_string)
#define g_cond_free(cond)	G_THREAD_CF (cond_free, (void)0, (cond))
#define g_cond_signal(cond)	G_THREAD_CF (cond_signal, (void)0, (cond))
#define g_mutex_free(mutex)	G_THREAD_CF (mutex_free, (void)0, (mutex))
#define g_mutex_lock(mutex)	G_THREAD_CF (mutex_lock, (void)0, (mutex))
#define g_mutex_trylock(mutex)	G_THREAD_CF (mutex_trylock, TRUE, (mutex))
#define g_mutex_unlock(mutex)	G_THREAD_CF (mutex_unlock, (void)0, (mutex))
#define g_thread_yield()	G_THREAD_CF (thread_yield, (void)0, ())
#define G_THREAD_ERROR	g_thread_error_quark ()
#define g_cond_new()	G_THREAD_UF (cond_new, ())
#define g_mutex_new()	G_THREAD_UF (mutex_new, ())
#define g_private_new(destructor)	G_THREAD_UF (private_new, (destructor))
#define G_LOCK_NAME(name)	g__ ## name ## _lock
#define G_GINT16_MODIFIER	"h"
#define G_GINT16_FORMAT	"hi"
#define G_GUINT16_FORMAT	"hu"
#define G_GINT32_FORMAT	"i"
#define G_MAXINT	INT_MAX
#define G_MININT	INT_MIN
#define G_MAXLONG	LONG_MAX
#define G_MINLONG	LONG_MIN
#define G_MAXSHORT	SHRT_MAX
#define G_MINSHORT	SHRT_MIN
#define G_MODULE_SUFFIX	"so"
#define G_LOCK_DEFINE_STATIC(name)	static G_LOCK_DEFINE (name)
#define G_GUINT32_FORMAT	"u"
#define G_MAXUINT	UINT_MAX
#define G_MAXULONG	ULONG_MAX
#define G_MAXUSHORT	USHRT_MAX
#define G_VA_COPY	va_copy
#define G_STR_DELIMITERS	"_-|> <."
#define G_GNUC_INTERNAL	__attribute__((visibility("hidden")))
#define G_GNUC_CONST	__attribute__((__const__))
#define G_GNUC_DEPRECATED	__attribute__((__deprecated__))
#define G_GNUC_FORMAT(arg_idx)	__attribute__((__format_arg__ (arg_idx)))
#define G_GNUC_MALLOC	__attribute__((__malloc__))
#define G_GNUC_NORETURN	__attribute__((__noreturn__))
#define G_GNUC_NO_INSTRUMENT	__attribute__((__no_instrument_function__))
#define G_GNUC_PURE	__attribute__((__pure__))
#define G_GNUC_UNUSED	__attribute__((__unused__))
#define alloca(size)	__builtin_alloca (size)
#define G_GNUC_EXTENSION	__extension__
#define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
#define G_STATIC_PRIVATE_INIT	{ 0 }
#define G_ONCE_INIT	{ G_ONCE_STATUS_NOTCALLED, NULL }
#define G_STATIC_REC_MUTEX_INIT	{ G_STATIC_MUTEX_INIT }

typedef short unsigned int guint16;
typedef int gint;
typedef gint gboolean;
typedef unsigned int guint;
typedef void *gpointer;
typedef gpointer(*GThreadFunc) (gpointer);
typedef enum {
    G_THREAD_PRIORITY_LOW = 0,
    G_THREAD_PRIORITY_NORMAL = 1,
    G_THREAD_PRIORITY_HIGH = 2,
    G_THREAD_PRIORITY_URGENT = 3
} GThreadPriority;
typedef struct _GThread {
    GThreadFunc func;
    gpointer data;
    gboolean joinable;
    GThreadPriority priority;
} GThread;
typedef unsigned int guint32;
typedef guint32 GQuark;
typedef char gchar;
typedef struct _GError {
    GQuark domain;
    gint code;
    gchar *message;
} GError;
typedef void (*GPrintFunc) (const gchar *);
typedef struct _GMemChunk GMemChunk;
typedef long unsigned int gulong;
typedef struct _GList {
    gpointer data;
    GList *next;
    GList *prev;
} GList;
typedef struct _GMainLoop GMainLoop;
typedef struct _GHook {
    gpointer data;
    GHook *next;
    GHook *prev;
    guint ref_count;
    gulong hook_id;
    guint flags;
    gpointer func;
    GDestroyNotify destroy;
} GHook;
typedef void (*GDestroyNotify) (gpointer);
typedef struct _GHookList {
    gulong seq_id;
    guint hook_size:16;
    guint is_setup:1;
    GHook *hooks;
    GMemChunk *hook_memchunk;
    GHookFinalizeFunc finalize_hook;
    gpointer dummy[2];
} GHookList;
typedef void (*GHookFinalizeFunc) (GHookList *, GHook *);
typedef struct _GQueue {
    GList *head;
    GList *tail;
    guint length;
} GQueue;
typedef struct _GSList {
    gpointer data;
    GSList *next;
} GSList;
typedef struct _GString {
    gchar *str;
    gsize len;
    gsize allocated_len;
} GString;
typedef struct _GPtrArray {
    gpointer *pdata;
    guint len;
} GPtrArray;
typedef struct _GRand GRand;
typedef struct _GDir GDir;
typedef struct _GRelation GRelation;
typedef struct _GOptionContext GOptionContext;
typedef struct _GKeyFile GKeyFile;
typedef struct _GPatternSpec GPatternSpec;
typedef guint32 gunichar;
typedef gchar *(*GCompletionFunc) (gpointer);
typedef gint(*GCompletionStrncmpFunc) (const gchar *, const gchar *,
				       gsize);
typedef struct _GCompletion {
    GList *items;
    GCompletionFunc func;
    gchar *prefix;
    GList *cache;
    GCompletionStrncmpFunc strncmp_func;
} GCompletion;
typedef struct _GTimer GTimer;
typedef struct _GHashTable GHashTable;
typedef const void *gconstpointer;
typedef guint(*GHashFunc) (gconstpointer);
typedef gboolean(*GEqualFunc) (gconstpointer, gconstpointer);
typedef struct _GStaticMutex {
    struct _GMutex *runtime_mutex;
    union {
	char pad[GLIB_LSB_PADDING_SIZE];
	double dummy_double;
	void *dummy_pointer;
	long int dummy_long;
    } static_mutex;
} GStaticMutex;
typedef union _GSystemThread {
    char data[GLIB_LSB_DATA_SIZE];
    double dummy_double;
    void *dummy_pointer;
    long int dummy_long;
} GSystemThread;
typedef struct _GStaticRecMutex {
    GStaticMutex mutex;
    guint depth;
    GSystemThread owner;
} GStaticRecMutex;
typedef struct _GMarkupParseContext GMarkupParseContext;
typedef struct _GData GData;
typedef enum {
    G_IO_STATUS_ERROR = 0,
    G_IO_STATUS_NORMAL = 1,
    G_IO_STATUS_EOF = 2,
    G_IO_STATUS_AGAIN = 3
} GIOStatus;
typedef struct _GIOChannel {
    guint ref_count;
    GIOFuncs *funcs;
    gchar *encoding;
    GIConv read_cd;
    GIConv write_cd;
    gchar *line_term;
    guint line_term_len;
    gsize buf_size;
    GString *read_buf;
    GString *encoded_read_buf;
    GString *write_buf;
    gchar partial_write_buf[6];
    guint use_buffer:1;
    guint do_encode:1;
    guint close_on_unref:1;
    guint is_readable:1;
    guint is_writeable:1;
    guint is_seekable:1;
    gpointer reserved1;
    gpointer reserved2;
} GIOChannel;
typedef enum {
    G_SEEK_CUR = 0,
    G_SEEK_SET = 1,
    G_SEEK_END = 2
} GSeekType;
typedef struct _GSource {
    gpointer callback_data;
    GSourceCallbackFuncs *callback_funcs;
    GSourceFuncs *source_funcs;
    guint ref_count;
    GMainContext *context;
    gint priority;
    guint flags;
    guint source_id;
    GSList *poll_fds;
    GSource *prev;
    GSource *next;
    gpointer reserved1;
    gpointer reserved2;
} GSource;
typedef gboolean(*GSourceFunc) (gpointer);
typedef struct _GSourceCallbackFuncs {
    void (*ref) (gpointer);
    void (*unref) (gpointer);
    void (*get) (gpointer, GSource *, GSourceFunc *, gpointer *);
} GSourceCallbackFuncs;
typedef void (*GSourceDummyMarshal) (void);
typedef struct _GSourceFuncs {
    gboolean(*prepare) (GSource *, gint *);
    gboolean(*check) (GSource *);
    gboolean(*dispatch) (GSource *, GSourceFunc, gpointer);
    void (*finalize) (GSource *);
    GSourceFunc closure_callback;
    GSourceDummyMarshal closure_marshal;
} GSourceFuncs;
typedef struct _GMainContext GMainContext;
typedef enum {
    G_IO_IN = 1,
    G_IO_OUT = 4,
    G_IO_PRI = 2,
    G_IO_ERR = 8,
    G_IO_HUP = 16,
    G_IO_NVAL = 32
} GIOCondition;
typedef enum {
    G_IO_FLAG_APPEND = 1,
    G_IO_FLAG_NONBLOCK = 2,
    G_IO_FLAG_IS_READABLE = 4,
    G_IO_FLAG_IS_WRITEABLE = 8,
    G_IO_FLAG_IS_SEEKABLE = 16,
    G_IO_FLAG_MASK = 31,
    G_IO_FLAG_GET_MASK = 31,
    G_IO_FLAG_SET_MASK = 3
} GIOFlags;
typedef struct _GIOFuncs {
    GIOStatus(*io_read) (GIOChannel *, gchar *, gsize, gsize *,
			 GError * *);
    GIOStatus(*io_write) (GIOChannel *, const gchar *, gsize, gsize *,
			  GError * *);
    GIOStatus(*io_seek) (GIOChannel *, gint64, GSeekType, GError * *);
    GIOStatus(*io_close) (GIOChannel *, GError * *);
    GSource *(*io_create_watch) (GIOChannel *, GIOCondition);
    void (*io_free) (GIOChannel *);
     GIOStatus(*io_set_flags) (GIOChannel *, GIOFlags, GError * *);
     GIOFlags(*io_get_flags) (GIOChannel *);
} GIOFuncs;
typedef struct _GIConv *GIConv;
typedef struct _GOptionGroup GOptionGroup;
typedef enum {
    G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1,
    G_SPAWN_DO_NOT_REAP_CHILD = 2,
    G_SPAWN_SEARCH_PATH = 4,
    G_SPAWN_STDOUT_TO_DEV_NULL = 8,
    G_SPAWN_STDERR_TO_DEV_NULL = 16,
    G_SPAWN_CHILD_INHERITS_STDIN = 32,
    G_SPAWN_FILE_AND_ARGV_ZERO = 64
} GSpawnFlags;
typedef void (*GSpawnChildSetupFunc) (gpointer);
typedef int GPid;
typedef void (*GFunc) (gpointer, gpointer);
typedef struct _GThreadPool {
    GFunc func;
    gpointer user_data;
    gboolean exclusive;
} GThreadPool;
typedef struct _GDate {
    guint julian_days:32;
    guint julian:1;
    guint dmy:1;
    guint day:6;
    guint month:4;
    guint year:16;
} GDate;
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;
typedef struct _GAsyncQueue GAsyncQueue;
typedef short unsigned int gushort;
typedef struct _GPollFD {
    gint fd;
    gushort events;
    gushort revents;
} GPollFD;
typedef double gdouble;
typedef struct _GTree GTree;
typedef gint(*GCompareDataFunc) (gconstpointer, gconstpointer, gpointer);
typedef unsigned char guint8;
typedef guint16 GDateYear;
typedef struct _GCache GCache;
typedef void (*GHFunc) (gpointer, gpointer, gpointer);
typedef struct _GScannerConfig {
    gchar *cset_skip_characters;
    gchar *cset_identifier_first;
    gchar *cset_identifier_nth;
    gchar *cpair_comment_single;
    guint case_sensitive:1;
    guint skip_comment_multi:1;
    guint skip_comment_single:1;
    guint scan_comment_multi:1;
    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;
    guint scan_hex_dollar:1;
    guint scan_string_sq:1;
    guint scan_string_dq:1;
    guint numbers_2_int:1;
    guint int_2_float:1;
    guint identifier_2_string:1;
    guint char_2_token:1;
    guint symbol_2_token:1;
    guint scope_0_fallback:1;
    guint store_int64:1;
    guint padding_dummy;
} GScannerConfig;
typedef enum {
    G_TOKEN_EOF = 0,
    G_TOKEN_LEFT_PAREN = 40,
    G_TOKEN_RIGHT_PAREN = 41,
    G_TOKEN_LEFT_CURLY = 123,
    G_TOKEN_RIGHT_CURLY = 125,
    G_TOKEN_LEFT_BRACE = 91,
    G_TOKEN_RIGHT_BRACE = 93,
    G_TOKEN_EQUAL_SIGN = 61,
    G_TOKEN_COMMA = 44,
    G_TOKEN_NONE = 256,
    G_TOKEN_ERROR = 257,
    G_TOKEN_CHAR = 258,
    G_TOKEN_BINARY = 259,
    G_TOKEN_OCTAL = 260,
    G_TOKEN_INT = 261,
    G_TOKEN_HEX = 262,
    G_TOKEN_FLOAT = 263,
    G_TOKEN_STRING = 264,
    G_TOKEN_SYMBOL = 265,
    G_TOKEN_IDENTIFIER = 266,
    G_TOKEN_IDENTIFIER_NULL = 267,
    G_TOKEN_COMMENT_SINGLE = 268,
    G_TOKEN_COMMENT_MULTI = 269,
    G_TOKEN_LAST = 270
} GTokenType;
typedef unsigned char guchar;
typedef union _GTokenValue {
    gpointer v_symbol;
    gchar *v_identifier;
    gulong v_binary;
    gulong v_octal;
    gulong v_int;
    guint64 v_int64;
    gdouble v_float;
    gulong v_hex;
    gchar *v_string;
    gchar *v_comment;
    guchar v_char;
    guint v_error;
} GTokenValue;
typedef struct _GScanner {
    gpointer user_data;
    guint max_parse_errors;
    guint parse_errors;
    const gchar *input_name;
    GData *qdata;
    GScannerConfig *config;
    GTokenType token;
    GTokenValue value;
    guint line;
    guint position;
    GTokenType next_token;
    GTokenValue next_value;
    guint next_line;
    guint next_position;
    GHashTable *symbol_table;
    gint input_fd;
    const gchar *text;
    const gchar *text_end;
    gchar *buffer;
    guint scope_id;
    GScannerMsgFunc msg_handler;
} GScanner;
typedef void (*GScannerMsgFunc) (GScanner *, gchar *, gboolean);
typedef struct _GByteArray {
    guint8 *data;
    guint len;
} GByteArray;
typedef enum {
    G_KEY_FILE_NONE = 0,
    G_KEY_FILE_KEEP_COMMENTS = 1,
    G_KEY_FILE_KEEP_TRANSLATIONS = 2
} GKeyFileFlags;
typedef struct _GTrashStack {
    GTrashStack *next;
} GTrashStack;
typedef guint16 gunichar2;
typedef long int glong;
typedef struct _GArray {
    gchar *data;
    guint len;
} GArray;
typedef struct _GNode {
    gpointer data;
    GNode *next;
    GNode *prev;
    GNode *parent;
    GNode *children;
} GNode;
typedef gboolean(*GHRFunc) (gpointer, gpointer, gpointer);
typedef gint(*GCompareFunc) (gconstpointer, gconstpointer);
typedef int gint32;
typedef gint32 GTime;
typedef gint(*GPollFunc) (GPollFD *, guint, gint);
typedef guint8 GDateDay;
typedef enum {
    G_UNICODE_BREAK_MANDATORY = 0,
    G_UNICODE_BREAK_CARRIAGE_RETURN = 1,
    G_UNICODE_BREAK_LINE_FEED = 2,
    G_UNICODE_BREAK_COMBINING_MARK = 3,
    G_UNICODE_BREAK_SURROGATE = 4,
    G_UNICODE_BREAK_ZERO_WIDTH_SPACE = 5,
    G_UNICODE_BREAK_INSEPARABLE = 6,
    G_UNICODE_BREAK_NON_BREAKING_GLUE = 7,
    G_UNICODE_BREAK_CONTINGENT = 8,
    G_UNICODE_BREAK_SPACE = 9,
    G_UNICODE_BREAK_AFTER = 10,
    G_UNICODE_BREAK_BEFORE = 11,
    G_UNICODE_BREAK_BEFORE_AND_AFTER = 12,
    G_UNICODE_BREAK_HYPHEN = 13,
    G_UNICODE_BREAK_NON_STARTER = 14,
    G_UNICODE_BREAK_OPEN_PUNCTUATION = 15,
    G_UNICODE_BREAK_CLOSE_PUNCTUATION = 16,
    G_UNICODE_BREAK_QUOTATION = 17,
    G_UNICODE_BREAK_EXCLAMATION = 18,
    G_UNICODE_BREAK_IDEOGRAPHIC = 19,
    G_UNICODE_BREAK_NUMERIC = 20,
    G_UNICODE_BREAK_INFIX_SEPARATOR = 21,
    G_UNICODE_BREAK_SYMBOL = 22,
    G_UNICODE_BREAK_ALPHABETIC = 23,
    G_UNICODE_BREAK_PREFIX = 24,
    G_UNICODE_BREAK_POSTFIX = 25,
    G_UNICODE_BREAK_COMPLEX_CONTEXT = 26,
    G_UNICODE_BREAK_AMBIGUOUS = 27,
    G_UNICODE_BREAK_UNKNOWN = 28,
    G_UNICODE_BREAK_NEXT_LINE = 29,
    G_UNICODE_BREAK_WORD_JOINER = 30
} GUnicodeBreakType;
typedef struct _GStringChunk GStringChunk;
typedef struct _GCond GCond;
typedef struct _GStaticRWLock {
    GStaticMutex mutex;
    GCond *read_cond;
    GCond *write_cond;
    guint read_counter;
    gboolean have_writer;
    guint want_to_read;
    guint want_to_write;
} GStaticRWLock;
typedef void (*GChildWatchFunc) (GPid, gint, gpointer);
typedef struct _GTimeVal {
    glong tv_sec;
    glong tv_usec;
} GTimeVal;
typedef enum {
    G_LOG_FLAG_RECURSION = 1,
    G_LOG_FLAG_FATAL = 2,
    G_LOG_LEVEL_ERROR = 4,
    G_LOG_LEVEL_CRITICAL = 8,
    G_LOG_LEVEL_WARNING = 16,
    G_LOG_LEVEL_MESSAGE = 32,
    G_LOG_LEVEL_INFO = 64,
    G_LOG_LEVEL_DEBUG = 128,
    G_LOG_LEVEL_MASK = -4
} GLogLevelFlags;
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;
typedef enum {
    G_IN_ORDER = 0,
    G_PRE_ORDER = 1,
    G_POST_ORDER = 2,
    G_LEVEL_ORDER = 3
} GTraverseType;
typedef enum {
    G_TRAVERSE_LEAVES = 1,
    G_TRAVERSE_NON_LEAVES = 2,
    G_TRAVERSE_ALL = 3,
    G_TRAVERSE_MASK = 3,
    G_TRAVERSE_LEAFS = 1,
    G_TRAVERSE_NON_LEAFS = 2
} GTraverseFlags;
typedef struct _GMarkupParser {
    void (*start_element) (GMarkupParseContext *, const gchar *,
			   const gchar * *, const gchar * *, gpointer,
			   GError * *);
    void (*end_element) (GMarkupParseContext *, const gchar *, gpointer,
			 GError * *);
    void (*text) (GMarkupParseContext *, const gchar *, gsize, gpointer,
		  GError * *);
    void (*passthrough) (GMarkupParseContext *, const gchar *, gsize,
			 gpointer, GError * *);
    void (*error) (GMarkupParseContext *, GError *, gpointer);
} GMarkupParser;
typedef enum {
    G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1
} GMarkupParseFlags;
typedef gboolean(*GHookCheckMarshaller) (GHook *, gpointer);
typedef gboolean(*GNodeTraverseFunc) (GNode *, gpointer);
typedef enum {
    G_NORMALIZE_DEFAULT = 0,
    G_NORMALIZE_NFD = 0,
    G_NORMALIZE_DEFAULT_COMPOSE = 1,
    G_NORMALIZE_NFC = 1,
    G_NORMALIZE_ALL = 2,
    G_NORMALIZE_NFKD = 2,
    G_NORMALIZE_ALL_COMPOSE = 3,
    G_NORMALIZE_NFKC = 3
} GNormalizeMode;
typedef struct _GMutex GMutex;
typedef struct _GStaticPrivate {
    guint index;
} GStaticPrivate;
typedef enum {
    G_FILE_ERROR_EXIST = 0,
    G_FILE_ERROR_ISDIR = 1,
    G_FILE_ERROR_ACCES = 2,
    G_FILE_ERROR_NAMETOOLONG = 3,
    G_FILE_ERROR_NOENT = 4,
    G_FILE_ERROR_NOTDIR = 5,
    G_FILE_ERROR_NXIO = 6,
    G_FILE_ERROR_NODEV = 7,
    G_FILE_ERROR_ROFS = 8,
    G_FILE_ERROR_TXTBSY = 9,
    G_FILE_ERROR_FAULT = 10,
    G_FILE_ERROR_LOOP = 11,
    G_FILE_ERROR_NOSPC = 12,
    G_FILE_ERROR_NOMEM = 13,
    G_FILE_ERROR_MFILE = 14,
    G_FILE_ERROR_NFILE = 15,
    G_FILE_ERROR_BADF = 16,
    G_FILE_ERROR_INVAL = 17,
    G_FILE_ERROR_PIPE = 18,
    G_FILE_ERROR_AGAIN = 19,
    G_FILE_ERROR_INTR = 20,
    G_FILE_ERROR_IO = 21,
    G_FILE_ERROR_PERM = 22,
    G_FILE_ERROR_NOSYS = 23,
    G_FILE_ERROR_FAILED = 24
} GFileError;
typedef void (*GDataForeachFunc) (GQuark, gpointer, gpointer);
typedef struct _GMemVTable {
    gpointer(*malloc) (gsize);
    gpointer(*realloc) (gpointer, gsize);
    void (*free) (gpointer);
     gpointer(*calloc) (gsize, gsize);
     gpointer(*try_malloc) (gsize);
     gpointer(*try_realloc) (gpointer, gsize);
} GMemVTable;
typedef enum {
    G_OPTION_ARG_NONE = 0,
    G_OPTION_ARG_STRING = 1,
    G_OPTION_ARG_INT = 2,
    G_OPTION_ARG_CALLBACK = 3,
    G_OPTION_ARG_FILENAME = 4,
    G_OPTION_ARG_STRING_ARRAY = 5,
    G_OPTION_ARG_FILENAME_ARRAY = 6
} GOptionArg;
typedef struct _GOptionEntry {
    const gchar *long_name;
    gchar short_name;
    gint flags;
    GOptionArg arg;
    gpointer arg_data;
    const gchar *description;
    const gchar *arg_description;
} GOptionEntry;
typedef enum {
    G_UNICODE_CONTROL = 0,
    G_UNICODE_FORMAT = 1,
    G_UNICODE_UNASSIGNED = 2,
    G_UNICODE_PRIVATE_USE = 3,
    G_UNICODE_SURROGATE = 4,
    G_UNICODE_LOWERCASE_LETTER = 5,
    G_UNICODE_MODIFIER_LETTER = 6,
    G_UNICODE_OTHER_LETTER = 7,
    G_UNICODE_TITLECASE_LETTER = 8,
    G_UNICODE_UPPERCASE_LETTER = 9,
    G_UNICODE_COMBINING_MARK = 10,
    G_UNICODE_ENCLOSING_MARK = 11,
    G_UNICODE_NON_SPACING_MARK = 12,
    G_UNICODE_DECIMAL_NUMBER = 13,
    G_UNICODE_LETTER_NUMBER = 14,
    G_UNICODE_OTHER_NUMBER = 15,
    G_UNICODE_CONNECT_PUNCTUATION = 16,
    G_UNICODE_DASH_PUNCTUATION = 17,
    G_UNICODE_CLOSE_PUNCTUATION = 18,
    G_UNICODE_FINAL_PUNCTUATION = 19,
    G_UNICODE_INITIAL_PUNCTUATION = 20,
    G_UNICODE_OTHER_PUNCTUATION = 21,
    G_UNICODE_OPEN_PUNCTUATION = 22,
    G_UNICODE_CURRENCY_SYMBOL = 23,
    G_UNICODE_MODIFIER_SYMBOL = 24,
    G_UNICODE_MATH_SYMBOL = 25,
    G_UNICODE_OTHER_SYMBOL = 26,
    G_UNICODE_LINE_SEPARATOR = 27,
    G_UNICODE_PARAGRAPH_SEPARATOR = 28,
    G_UNICODE_SPACE_SEPARATOR = 29
} GUnicodeType;
typedef void (*GLogFunc) (const gchar *, GLogLevelFlags, const gchar *,
			  gpointer);
typedef struct _GAllocator GAllocator;
typedef const gchar *(*GTranslateFunc) (const gchar *, gpointer);
typedef gboolean(*GOptionParseFunc) (GOptionContext *, GOptionGroup *,
				     gpointer, GError * *);
typedef void (*GVoidFunc) (void);
typedef gboolean(*GHookFindFunc) (GHook *, gpointer);
typedef struct _GTuples {
    guint len;
} GTuples;
typedef gpointer(*GCopyFunc) (gconstpointer, gpointer);
typedef void (*GOptionErrorFunc) (GOptionContext *, GOptionGroup *,
				  gpointer, GError * *);
typedef gpointer(*GCacheNewFunc) (gpointer);
typedef void (*GCacheDestroyFunc) (gpointer);
typedef gpointer(*GCacheDupFunc) (gpointer);
typedef enum {
    G_FILE_TEST_IS_REGULAR = 1,
    G_FILE_TEST_IS_SYMLINK = 2,
    G_FILE_TEST_IS_DIR = 4,
    G_FILE_TEST_IS_EXECUTABLE = 8,
    G_FILE_TEST_EXISTS = 16
} GFileTest;
typedef enum {
    G_ONCE_STATUS_NOTCALLED = 0,
    G_ONCE_STATUS_PROGRESS = 1,
    G_ONCE_STATUS_READY = 2
} GOnceStatus;
typedef struct _GOnce {
    volatile GOnceStatus status;
    volatile gpointer retval;
} GOnce;
typedef gboolean(*GTraverseFunc) (gpointer, gpointer, gpointer);
typedef gint(*GHookCompareFunc) (GHook *, GHook *);
typedef void (*GNodeForeachFunc) (GNode *, gpointer);
typedef struct _GDebugKey {
    gchar *key;
    guint value;
} GDebugKey;
typedef struct _GPrivate GPrivate;
typedef struct _GThreadFunctions {
    GMutex *(*mutex_new) (void);
    void (*mutex_lock) (GMutex *);
     gboolean(*mutex_trylock) (GMutex *);
    void (*mutex_unlock) (GMutex *);
    void (*mutex_free) (GMutex *);
    GCond *(*cond_new) (void);
    void (*cond_signal) (GCond *);
    void (*cond_broadcast) (GCond *);
    void (*cond_wait) (GCond *, GMutex *);
     gboolean(*cond_timed_wait) (GCond *, GMutex *, GTimeVal *);
    void (*cond_free) (GCond *);
    GPrivate *(*private_new) (GDestroyNotify);
     gpointer(*private_get) (GPrivate *);
    void (*private_set) (GPrivate *, gpointer);
    void (*thread_create) (GThreadFunc, gpointer, gulong, gboolean,
			   gboolean, GThreadPriority, gpointer,
			   GError * *);
    void (*thread_yield) (void);
    void (*thread_join) (gpointer);
    void (*thread_exit) (void);
    void (*thread_set_priority) (gpointer, GThreadPriority);
    void (*thread_self) (gpointer);
     gboolean(*thread_equal) (gpointer, gpointer);
} GThreadFunctions;
typedef void (*GHookMarshaller) (GHook *, gpointer);
typedef enum {
    G_IO_CHANNEL_ERROR_FBIG = 0,
    G_IO_CHANNEL_ERROR_INVAL = 1,
    G_IO_CHANNEL_ERROR_IO = 2,
    G_IO_CHANNEL_ERROR_ISDIR = 3,
    G_IO_CHANNEL_ERROR_NOSPC = 4,
    G_IO_CHANNEL_ERROR_NXIO = 5,
    G_IO_CHANNEL_ERROR_OVERFLOW = 6,
    G_IO_CHANNEL_ERROR_PIPE = 7,
    G_IO_CHANNEL_ERROR_FAILED = 8
} GIOChannelError;
typedef gboolean(*GIOFunc) (GIOChannel *, GIOCondition, gpointer);
typedef void (*GFreeFunc) (gpointer);
typedef gboolean(*GHookCheckFunc) (gpointer);
typedef void (*GHookFunc) (gpointer);
typedef short int gint16;
typedef enum {
    G_DATE_DAY = 0,
    G_DATE_MONTH = 1,
    G_DATE_YEAR = 2
} GDateDMY;
typedef signed char gint8;
typedef enum {
    G_MARKUP_ERROR_BAD_UTF8 = 0,
    G_MARKUP_ERROR_EMPTY = 1,
    G_MARKUP_ERROR_PARSE = 2,
    G_MARKUP_ERROR_UNKNOWN_ELEMENT = 3,
    G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE = 4,
    G_MARKUP_ERROR_INVALID_CONTENT = 5
} GMarkupError;
typedef enum {
    G_IO_ERROR_NONE = 0,
    G_IO_ERROR_AGAIN = 1,
    G_IO_ERROR_INVAL = 2,
    G_IO_ERROR_UNKNOWN = 3
} GIOError;
typedef gboolean(*GOptionArgFunc) (const gchar *, const gchar *, gpointer,
				   GError * *);
typedef enum {
    G_OPTION_FLAG_HIDDEN = 1 << 0,
    G_OPTION_FLAG_IN_MAIN = 1 << 1,
    G_OPTION_FLAG_REVERSE = 1 << 2
} GOptionFlags;
typedef enum {
    G_CONVERT_ERROR_NO_CONVERSION,
    G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
    G_CONVERT_ERROR_FAILED,
    G_CONVERT_ERROR_PARTIAL_INPUT,
    G_CONVERT_ERROR_BAD_URI,
    G_CONVERT_ERROR_NOT_ABSOLUTE_PATH
} GConvertError;
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;
typedef enum {
    G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
    G_KEY_FILE_ERROR_PARSE,
    G_KEY_FILE_ERROR_NOT_FOUND,
    G_KEY_FILE_ERROR_KEY_NOT_FOUND,
    G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
    G_KEY_FILE_ERROR_INVALID_VALUE
} GKeyFileError;
typedef enum {
    G_SPAWN_ERROR_FORK,
    G_SPAWN_ERROR_READ,
    G_SPAWN_ERROR_CHDIR,
    G_SPAWN_ERROR_ACCES,
    G_SPAWN_ERROR_PERM,
    G_SPAWN_ERROR_2BIG,
    G_SPAWN_ERROR_NOEXEC,
    G_SPAWN_ERROR_NAMETOOLONG,
    G_SPAWN_ERROR_NOENT,
    G_SPAWN_ERROR_NOMEM,
    G_SPAWN_ERROR_NOTDIR,
    G_SPAWN_ERROR_LOOP,
    G_SPAWN_ERROR_TXTBUSY,
    G_SPAWN_ERROR_IO,
    G_SPAWN_ERROR_NFILE,
    G_SPAWN_ERROR_MFILE,
    G_SPAWN_ERROR_INVAL,
    G_SPAWN_ERROR_ISDIR,
    G_SPAWN_ERROR_LIBBAD,
    G_SPAWN_ERROR_FAILED
} GSpawnError;
typedef enum {
    G_HOOK_FLAG_ACTIVE = 1 << 0,
    G_HOOK_FLAG_IN_CALL = 1 << 1,
    G_HOOK_FLAG_MASK = 0x0f
} GHookFlagMask;
typedef enum {
    G_THREAD_ERROR_AGAIN
} GThreadError;
typedef enum {
    G_OPTION_ERROR_UNKNOWN_OPTION,
    G_OPTION_ERROR_BAD_VALUE,
    G_OPTION_ERROR_FAILED
} GOptionError;
typedef enum {
    G_ASCII_ALNUM = 1 << 0,
    G_ASCII_ALPHA = 1 << 1,
    G_ASCII_CNTRL = 1 << 2,
    G_ASCII_DIGIT = 1 << 3,
    G_ASCII_GRAPH = 1 << 4,
    G_ASCII_LOWER = 1 << 5,
    G_ASCII_PRINT = 1 << 6,
    G_ASCII_PUNCT = 1 << 7,
    G_ASCII_SPACE = 1 << 8,
    G_ASCII_UPPER = 1 << 9,
    G_ASCII_XDIGIT = 1 << 10
} GAsciiType;
typedef enum {
    G_SHELL_ERROR_BAD_QUOTING,
    G_SHELL_ERROR_EMPTY_STRING,
    G_SHELL_ERROR_FAILED
} GShellError;
extern const guint16 *const g_ascii_table;
extern gboolean g_source_remove(guint);
extern void g_thread_set_priority(GThread *, GThreadPriority);
extern GError *g_error_copy(const GError *);
extern gchar *g_utf8_prev_char(const gchar *);
extern void g_node_pop_allocator(void);
extern GPrintFunc g_set_printerr_handler(GPrintFunc);
extern GMemChunk *g_mem_chunk_new(const gchar *, gint, gulong, gint);
extern void g_on_error_stack_trace(const gchar *);
extern void g_mem_chunk_print(GMemChunk *);
extern guint g_list_length(GList *);
extern void g_main_loop_quit(GMainLoop *);
extern void g_hook_insert_before(GHookList *, GHook *, GHook *);
extern gboolean g_get_filename_charsets(const gchar * **);
extern GList *g_queue_pop_nth_link(GQueue *, guint);
extern GSList *g_slist_copy(GSList *);
extern gint g_mkstemp(gchar *);
extern GError *g_error_new(GQuark, gint, const gchar *, ...);
extern GString *g_string_set_size(GString *, gsize);
extern gchar *g_get_prgname(void);
extern gpointer g_ptr_array_remove_index_fast(GPtrArray *, guint);
extern GRand *g_rand_new_with_seed_array(const guint32 *, guint);
extern void g_dir_close(GDir *);
extern const gchar *const *g_get_system_config_dirs(void);
extern void g_relation_insert(GRelation *, ...);
extern void g_option_context_free(GOptionContext *);
extern gchar *g_strcanon(gchar *, const gchar *, gchar);
extern guint g_slist_length(GSList *);
extern gchar *g_key_file_to_data(GKeyFile *, gsize *, GError * *);
extern GPatternSpec *g_pattern_spec_new(const gchar *);
extern gchar **g_strdupv(gchar * *);
extern gboolean g_unichar_isupper(gunichar);
extern void g_completion_free(GCompletion *);
extern void g_timer_reset(GTimer *);
extern GHashTable *g_hash_table_new_full(GHashFunc, GEqualFunc,
					 GDestroyNotify, GDestroyNotify);
extern void g_static_rec_mutex_init(GStaticRecMutex *);
extern gint g_atomic_int_exchange_and_add(gint *, gint);
extern gchar *g_strjoin(const gchar *, ...);
extern GSList *g_slist_last(GSList *);
extern void g_key_file_set_string(GKeyFile *, const gchar *, const gchar *,
				  const gchar *);
extern GPtrArray *g_ptr_array_new(void);
extern gboolean g_markup_parse_context_end_parse(GMarkupParseContext *,
						 GError * *);
extern gboolean g_key_file_get_boolean(GKeyFile *, const gchar *,
				       const gchar *, GError * *);
extern gchar *g_strrstr_len(const gchar *, gssize, const gchar *);
extern gint g_hook_compare_ids(GHook *, GHook *);
extern gchar *g_utf8_strup(const gchar *, gssize);
extern gchar *g_build_filename(const gchar *, ...);
extern void g_datalist_init(GData * *);
extern GIOStatus g_io_channel_set_flags(GIOChannel *, GIOFlags,
					GError * *);
extern const gchar *const g_utf8_skip;
extern void g_option_group_free(GOptionGroup *);
extern void g_completion_clear_items(GCompletion *);
extern gboolean g_hash_table_steal(GHashTable *, gconstpointer);
extern gboolean g_spawn_async_with_pipes(const gchar *, gchar * *,
					 gchar * *, GSpawnFlags,
					 GSpawnChildSetupFunc, gpointer,
					 GPid *, gint *, gint *, gint *,
					 GError * *);
extern void g_clear_error(GError * *);
extern gpointer g_queue_pop_head(GQueue *);
extern GThreadPool *g_thread_pool_new(GFunc, gpointer, gint, gboolean,
				      GError * *);
extern void g_static_rec_mutex_lock(GStaticRecMutex *);
extern guint g_thread_pool_get_num_threads(GThreadPool *);
extern void g_date_set_month(GDate *, GDateMonth);
extern gchar *g_filename_to_uri(const gchar *, const gchar *, GError * *);
extern gboolean g_date_valid_julian(guint32);
extern GQuark g_option_error_quark(void);
extern gchar **g_key_file_get_keys(GKeyFile *, const gchar *, gsize *,
				   GError * *);
extern gchar g_ascii_tolower(gchar);
extern GMainLoop *g_main_loop_new(GMainContext *, gboolean);
extern gint g_relation_count(GRelation *, gconstpointer, gint);
extern void g_ptr_array_add(GPtrArray *, gpointer);
extern void g_async_queue_unlock(GAsyncQueue *);
extern gboolean g_pattern_match_string(GPatternSpec *, const gchar *);
extern void g_key_file_free(GKeyFile *);
extern GMainContext *g_main_context_default(void);
extern GIOStatus g_io_channel_read_line_string(GIOChannel *, GString *,
					       gsize *, GError * *);
extern GSource *g_source_ref(GSource *);
extern gint g_slist_index(GSList *, gconstpointer);
extern GSList *g_slist_find(GSList *, gconstpointer);
extern gboolean g_main_context_prepare(GMainContext *, gint *);
extern char *g_markup_vprintf_escaped(const char *, va_list);
extern void g_ptr_array_set_size(GPtrArray *, gint);
extern void g_set_application_name(const gchar *);
extern gint g_main_context_query(GMainContext *, gint, gint *, GPollFD *,
				 gint);
extern void g_rand_set_seed(GRand *, guint32);
extern GList *g_list_last(GList *);
extern gchar *g_ascii_dtostr(gchar *, gint, gdouble);
extern gboolean g_main_loop_is_running(GMainLoop *);
extern void g_pattern_spec_free(GPatternSpec *);
extern GTree *g_tree_new_full(GCompareDataFunc, gpointer, GDestroyNotify,
			      GDestroyNotify);
extern guint8 g_date_get_monday_weeks_in_year(GDateYear);
extern guint g_idle_add(GSourceFunc, gpointer);
extern void g_main_context_release(GMainContext *);
extern int g_main_depth(void);
extern void g_cache_key_foreach(GCache *, GHFunc, gpointer);
extern void g_static_rec_mutex_free(GStaticRecMutex *);
extern guint g_date_get_monday_week_of_year(const GDate *);
extern const gchar *g_io_channel_get_line_term(GIOChannel *, gint *);
extern guint g_scanner_set_scope(GScanner *, guint);
extern gchar *g_string_free(GString *, gboolean);
extern void g_source_set_priority(GSource *, gint);
extern void g_async_queue_unref(GAsyncQueue *);
extern void g_hook_prepend(GHookList *, GHook *);
extern gpointer g_queue_peek_head(GQueue *);
extern void g_byte_array_sort_with_data(GByteArray *, GCompareDataFunc,
					gpointer);
extern gboolean g_key_file_load_from_data_dirs(GKeyFile *, const gchar *,
					       gchar * *, GKeyFileFlags,
					       GError * *);
extern guint g_trash_stack_height(GTrashStack * *);
extern void g_markup_parse_context_free(GMarkupParseContext *);
extern GString *g_string_append_len(GString *, const gchar *, gssize);
extern const gchar *g_getenv(const gchar *);
extern gint *g_key_file_get_integer_list(GKeyFile *, const gchar *,
					 const gchar *, gsize *,
					 GError * *);
extern gunichar2 *g_ucs4_to_utf16(const gunichar *, glong, glong *,
				  glong *, GError * *);
extern GList *g_list_remove(GList *, gconstpointer);
extern gboolean g_hook_destroy(GHookList *, gulong);
extern GRand *g_rand_copy(GRand *);
extern GString *g_string_ascii_up(GString *);
extern const gchar *g_io_channel_get_encoding(GIOChannel *);
extern void g_random_set_seed(guint32);
extern GOptionGroup *g_option_context_get_main_group(GOptionContext *);
extern guint g_idle_add_full(gint, GSourceFunc, gpointer, GDestroyNotify);
extern GArray *g_array_append_vals(GArray *, gconstpointer, guint);
extern GHook *g_hook_next_valid(GHookList *, GHook *, gboolean);
extern gchar *g_path_get_basename(const gchar *);
extern gchar *g_key_file_get_value(GKeyFile *, const gchar *,
				   const gchar *, GError * *);
extern void g_slist_pop_allocator(void);
extern void g_node_unlink(GNode *);
extern gpointer g_hash_table_find(GHashTable *, GHRFunc, gpointer);
extern GList *g_list_sort(GList *, GCompareFunc);
extern void g_date_set_time(GDate *, GTime);
extern GPollFunc g_main_context_get_poll_func(GMainContext *);
extern gchar *g_strndup(const gchar *, gsize);
extern GSList *g_slist_remove(GSList *, gconstpointer);
extern void g_date_order(GDate *, GDate *);
extern gdouble g_timer_elapsed(GTimer *, gulong *);
extern gchar *g_strchug(gchar *);
extern GQuark g_io_channel_error_quark(void);
extern void g_cache_remove(GCache *, gconstpointer);
extern GArray *g_array_remove_index_fast(GArray *, guint);
extern GAsyncQueue *g_async_queue_ref(GAsyncQueue *);
extern GQuark g_key_file_error_quark(void);
extern gboolean g_atomic_pointer_compare_and_exchange(gpointer *, gpointer,
						      gpointer);
extern gboolean g_date_valid_dmy(GDateDay, GDateMonth, GDateYear);
extern gpointer g_mem_chunk_alloc0(GMemChunk *);
extern gint g_async_queue_length_unlocked(GAsyncQueue *);
extern GUnicodeBreakType g_unichar_break_type(gunichar);
extern gboolean g_date_valid_year(GDateYear);
extern void g_thread_pool_set_max_unused_threads(gint);
extern GArray *g_array_remove_index(GArray *, guint);
extern void g_key_file_remove_group(GKeyFile *, const gchar *, GError * *);
extern gchar *g_key_file_get_comment(GKeyFile *, const gchar *,
				     const gchar *, GError * *);
extern gboolean g_io_channel_get_buffered(GIOChannel *);
extern GList *g_list_delete_link(GList *, GList *);
extern GList *g_completion_complete(GCompletion *, const gchar *,
				    gchar * *);
extern gboolean g_unichar_isdigit(gunichar);
extern void g_date_subtract_years(GDate *, guint);
extern gchar *g_utf8_strchr(const char *, gssize, gunichar);
extern void g_queue_push_head(GQueue *, gpointer);
extern guint g_queue_get_length(GQueue *);
extern gchar *g_string_chunk_insert_const(GStringChunk *, const gchar *);
extern void g_static_rw_lock_init(GStaticRWLock *);
extern guint g_bit_storage(gulong);
extern GSList *g_slist_sort(GSList *, GCompareFunc);
extern gint g_relation_delete(GRelation *, gconstpointer, gint);
extern GIOStatus g_io_channel_write_chars(GIOChannel *, const gchar *,
					  gssize, gsize *, GError * *);
extern GList *g_list_find(GList *, gconstpointer);
extern gpointer g_queue_peek_tail(GQueue *);
extern GIOStatus g_io_channel_write_unichar(GIOChannel *, gunichar,
					    GError * *);
extern void g_hook_list_clear(GHookList *);
extern guint g_child_watch_add(GPid, GChildWatchFunc, gpointer);
extern void g_hook_list_init(GHookList *, guint);
extern gpointer g_realloc(gpointer, gulong);
extern void g_queue_push_nth(GQueue *, gpointer, gint);
extern gpointer g_trash_stack_peek(GTrashStack * *);
extern const gchar *g_get_application_name(void);
extern gint g_main_context_check(GMainContext *, gint, GPollFD *, gint);
extern gunichar *g_unicode_canonical_decomposition(gunichar, gsize *);
extern gpointer g_async_queue_timed_pop_unlocked(GAsyncQueue *,
						 GTimeVal *);
extern gboolean g_option_context_get_help_enabled(GOptionContext *);
extern void g_log_default_handler(const gchar *, GLogLevelFlags,
				  const gchar *, gpointer);
extern gpointer g_async_queue_try_pop(GAsyncQueue *);
extern void g_option_group_set_translation_domain(GOptionGroup *,
						  const gchar *);
extern void g_source_destroy(GSource *);
extern gchar *g_filename_to_utf8(const gchar *, gssize, gsize *, gsize *,
				 GError * *);
extern gboolean g_key_file_load_from_data(GKeyFile *, const gchar *, gsize,
					  GKeyFileFlags, GError * *);
extern GKeyFile *g_key_file_new(void);
extern GDateYear g_date_get_year(const GDate *);
extern const gchar *g_get_user_config_dir(void);
extern gint g_slist_position(GSList *, GSList *);
extern const guint glib_minor_version;
extern GSList *g_slist_delete_link(GSList *, GSList *);
extern GDateWeekday g_date_get_weekday(const GDate *);
extern gchar *g_convert_with_iconv(const gchar *, gssize, GIConv, gsize *,
				   gsize *, GError * *);
extern GNode *g_node_insert(GNode *, gint, GNode *);
extern void g_source_set_callback(GSource *, GSourceFunc, gpointer,
				  GDestroyNotify);
extern void g_source_add_poll(GSource *, GPollFD *);
extern void g_slist_free_1(GSList *);
extern GByteArray *g_byte_array_remove_index_fast(GByteArray *, guint);
extern GHook *g_hook_find_data(GHookList *, gboolean, gpointer);
extern void g_ptr_array_foreach(GPtrArray *, GFunc, gpointer);
extern void g_scanner_scope_add_symbol(GScanner *, guint, const gchar *,
				       gpointer);
extern GMainContext *g_main_context_ref(GMainContext *);
extern void g_hook_list_invoke(GHookList *, gboolean);
extern gint g_source_get_priority(GSource *);
extern void g_list_free_1(GList *);
extern gint g_key_file_get_integer(GKeyFile *, const gchar *,
				   const gchar *, GError * *);
extern GSList *g_slist_nth(GSList *, guint);
extern gchar *g_shell_unquote(const gchar *, GError * *);
extern void g_option_context_add_group(GOptionContext *, GOptionGroup *);
extern gboolean g_unichar_isprint(gunichar);
extern GList *g_list_copy(GList *);
extern void g_cache_value_foreach(GCache *, GHFunc, gpointer);
extern void g_key_file_set_comment(GKeyFile *, const gchar *,
				   const gchar *, const gchar *,
				   GError * *);
extern gint g_ascii_digit_value(gchar);
extern void g_main_context_dispatch(GMainContext *);
extern GIOChannel *g_io_channel_new_file(const gchar *, const gchar *,
					 GError * *);
extern gint g_unichar_digit_value(gunichar);
extern void g_source_set_can_recurse(GSource *, gboolean);
extern void g_main_loop_unref(GMainLoop *);
extern GNode *g_node_first_sibling(GNode *);
extern gint g_date_days_between(const GDate *, const GDate *);
extern void g_mem_chunk_free(GMemChunk *, gpointer);
extern gchar *g_markup_escape_text(const gchar *, gssize);
extern gunichar g_unichar_tolower(gunichar);
extern void g_queue_push_nth_link(GQueue *, gint, GList *);
extern char *g_markup_printf_escaped(const char *, ...);
extern void g_hook_unref(GHookList *, GHook *);
extern GNode *g_node_find(GNode *, GTraverseType, GTraverseFlags,
			  gpointer);
extern gchar *g_ascii_formatd(gchar *, gint, const gchar *, gdouble);
extern gpointer g_scanner_scope_lookup_symbol(GScanner *, guint,
					      const gchar *);
extern gpointer g_dataset_id_remove_no_notify(gconstpointer, GQuark);
extern GQueue *g_queue_new(void);
extern GQuark g_markup_error_quark(void);
extern void g_option_context_set_ignore_unknown_options(GOptionContext *,
							gboolean);
extern void g_completion_remove_items(GCompletion *, GList *);
extern void g_datalist_id_set_data_full(GData * *, GQuark, gpointer,
					GDestroyNotify);
extern void g_trash_stack_push(GTrashStack * *, gpointer);
extern void g_async_queue_lock(GAsyncQueue *);
extern void g_ptr_array_sort(GPtrArray *, GCompareFunc);
extern void g_queue_free(GQueue *);
extern void g_array_sort_with_data(GArray *, GCompareDataFunc, gpointer);
extern gboolean g_relation_exists(GRelation *, ...);
extern gboolean g_utf8_validate(const char *, gssize, const gchar * *);
extern void g_static_rw_lock_writer_unlock(GStaticRWLock *);
extern GByteArray *g_byte_array_remove_index(GByteArray *, guint);
extern guint g_hash_table_foreach_remove(GHashTable *, GHRFunc, gpointer);
extern GString *g_string_insert_unichar(GString *, gssize, gunichar);
extern GSList *g_slist_prepend(GSList *, gpointer);
extern GList *g_list_first(GList *);
extern GMarkupParseContext *g_markup_parse_context_new(const GMarkupParser
						       *,
						       GMarkupParseFlags,
						       gpointer,
						       GDestroyNotify);
extern void g_io_channel_init(GIOChannel *);
extern GQuark g_convert_error_quark(void);
extern GNode *g_node_get_root(GNode *);
extern gchar *g_filename_display_name(const gchar *);
extern gint g_io_channel_unix_get_fd(GIOChannel *);
extern gboolean g_int_equal(gconstpointer, gconstpointer);
extern void g_hook_list_marshal_check(GHookList *, gboolean,
				      GHookCheckMarshaller, gpointer);
extern void g_static_mutex_init(GStaticMutex *);
extern GString *g_string_prepend_unichar(GString *, gunichar);
extern GList *g_queue_find_custom(GQueue *, gconstpointer, GCompareFunc);
extern void g_key_file_set_string_list(GKeyFile *, const gchar *,
				       const gchar *,
				       const gchar * const *, gsize);
extern const guint glib_micro_version;
extern guint32 g_date_get_julian(const GDate *);
extern gpointer g_dataset_id_get_data(gconstpointer, GQuark);
extern gboolean g_date_valid_day(GDateDay);
extern GHook *g_hook_first_valid(GHookList *, gboolean);
extern GIOStatus g_io_channel_read_to_end(GIOChannel *, gchar * *, gsize *,
					  GError * *);
extern void g_scanner_destroy(GScanner *);
extern GString *g_string_insert_c(GString *, gssize, gchar);
extern void g_queue_push_head_link(GQueue *, GList *);
extern GIOChannel *g_io_channel_ref(GIOChannel *);
extern gpointer g_try_realloc(gpointer, gulong);
extern GRelation *g_relation_new(gint);
extern GNode *g_node_nth_child(GNode *, guint);
extern GByteArray *g_byte_array_sized_new(guint);
extern void g_queue_push_tail(GQueue *, gpointer);
extern gboolean g_unichar_validate(gunichar);
extern GSource *g_idle_source_new(void);
extern gchar **g_key_file_get_groups(GKeyFile *, gsize *);
extern void g_scanner_sync_file_offset(GScanner *);
extern GLogLevelFlags g_log_set_always_fatal(GLogLevelFlags);
extern gpointer *g_ptr_array_free(GPtrArray *, gboolean);
extern gint g_utf8_collate(const gchar *, const gchar *);
extern GPrintFunc g_set_print_handler(GPrintFunc);
extern const guint glib_interface_age;
extern void g_hook_list_invoke_check(GHookList *, gboolean);
extern gchar *g_utf8_offset_to_pointer(const gchar *, glong);
extern void g_scanner_input_file(GScanner *, gint);
extern gboolean g_source_get_can_recurse(GSource *);
extern GHook *g_hook_find_func_data(GHookList *, gboolean, gpointer,
				    gpointer);
extern void g_logv(const gchar *, GLogLevelFlags, const gchar *, va_list);
extern gboolean g_error_matches(const GError *, GQuark, gint);
extern gpointer g_async_queue_pop(GAsyncQueue *);
extern gchar **g_uri_list_extract_uris(const gchar *);
extern gboolean g_static_rw_lock_writer_trylock(GStaticRWLock *);
extern void g_date_add_months(GDate *, guint);
extern void g_date_add_days(GDate *, guint);
extern gchar **g_strsplit(const gchar *, const gchar *, gint);
extern GSList *g_slist_remove_all(GSList *, gconstpointer);
extern gdouble g_random_double(void);
extern gdouble g_strtod(const gchar *, gchar * *);
extern void g_queue_sort(GQueue *, GCompareDataFunc, gpointer);
extern gboolean g_str_has_suffix(const gchar *, const gchar *);
extern GList *g_queue_pop_head_link(GQueue *);
extern gint32 g_rand_int_range(GRand *, gint32, gint32);
extern gint g_unichar_to_utf8(gunichar, gchar *);
extern gchar *g_strnfill(gsize, gchar);
extern void g_relation_print(GRelation *);
extern void g_key_file_set_integer_list(GKeyFile *, const gchar *,
					const gchar *, gint *, gsize);
extern GSource *g_main_context_find_source_by_funcs_user_data(GMainContext
							      *,
							      GSourceFuncs
							      *, gpointer);
extern GDate *g_date_new_julian(guint32);
extern void g_node_traverse(GNode *, GTraverseType, GTraverseFlags, gint,
			    GNodeTraverseFunc, gpointer);
extern gchar *g_key_file_get_start_group(GKeyFile *);
extern void g_key_file_set_locale_string(GKeyFile *, const gchar *,
					 const gchar *, const gchar *,
					 const gchar *);
extern GHashTable *g_hash_table_new(GHashFunc, GEqualFunc);
extern const gchar *g_dir_read_name(GDir *);
extern gboolean g_hash_table_remove(GHashTable *, gconstpointer);
extern gchar *g_utf8_strdown(const gchar *, gssize);
extern GIOCondition g_io_channel_get_buffer_condition(GIOChannel *);
extern GSource *g_child_watch_source_new(GPid);
extern void g_static_rec_mutex_unlock(GStaticRecMutex *);
extern glong g_utf8_strlen(const gchar *, gssize);
extern GSList *g_slist_insert(GSList *, gpointer, gint);
extern GNode *g_node_prepend(GNode *, GNode *);
extern void g_propagate_error(GError * *, GError *);
extern GTokenType g_scanner_peek_next_token(GScanner *);
extern GArray *g_array_set_size(GArray *, guint);
extern GString *g_string_erase(GString *, gssize, gssize);
extern gchar *g_strcompress(const gchar *);
extern gint g_async_queue_length(GAsyncQueue *);
extern gboolean g_unichar_isdefined(gunichar);
extern GString *g_string_prepend(GString *, const gchar *);
extern guint32 g_rand_int(GRand *);
extern void g_set_error(GError * *, GQuark, gint, const gchar *, ...);
extern gboolean g_markup_parse_context_parse(GMarkupParseContext *,
					     const gchar *, gssize,
					     GError * *);
extern gboolean g_main_context_pending(GMainContext *);
extern gint g_tree_nnodes(GTree *);
extern gpointer g_datalist_id_get_data(GData * *, GQuark);
extern void g_ptr_array_sort_with_data(GPtrArray *, GCompareDataFunc,
				       gpointer);
extern void g_queue_unlink(GQueue *, GList *);
extern guint g_source_get_id(GSource *);
extern void g_thread_pool_set_max_threads(GThreadPool *, gint, GError * *);
extern gchar *g_utf8_normalize(const gchar *, gssize, GNormalizeMode);
extern GTree *g_tree_new_with_data(GCompareDataFunc, gpointer);
extern gchar *g_path_get_dirname(const gchar *);
extern gint g_thread_pool_get_max_threads(GThreadPool *);
extern GArray *g_array_sized_new(gboolean, gboolean, guint, guint);
extern gboolean g_unichar_islower(gunichar);
extern GString *g_string_assign(GString *, const gchar *);
extern gchar *g_strstr_len(const gchar *, gssize, const gchar *);
extern GArray *g_array_prepend_vals(GArray *, gconstpointer, guint);
extern gdouble g_rand_double_range(GRand *, gdouble, gdouble);
extern void g_key_file_set_list_separator(GKeyFile *, gchar);
extern gboolean g_atomic_int_compare_and_exchange(gint *, gint, gint);
extern void g_mem_profile(void);
extern void g_io_channel_set_buffered(GIOChannel *, gboolean);
extern GMutex *g_static_mutex_get_mutex_impl(GMutex * *);
extern GList *g_list_remove_all(GList *, gconstpointer);
extern void g_static_private_set(GStaticPrivate *, gpointer,
				 GDestroyNotify);
extern void g_timer_start(GTimer *);
extern void g_array_sort(GArray *, GCompareFunc);
extern gchar *g_build_path(const gchar *, const gchar *, ...);
extern gchar *g_key_file_get_string(GKeyFile *, const gchar *,
				    const gchar *, GError * *);
extern void g_return_if_fail_warning(const char *, const char *,
				     const char *);
extern GAsyncQueue *g_async_queue_new(void);
extern GTokenType g_scanner_get_next_token(GScanner *);
extern gchar *g_strescape(const gchar *, const gchar *);
extern void g_tree_remove(GTree *, gconstpointer);
extern GFileError g_file_error_from_errno(gint);
extern GByteArray *g_byte_array_set_size(GByteArray *, guint);
extern GSList *g_slist_insert_before(GSList *, GSList *, gpointer);
extern void g_main_context_unref(GMainContext *);
extern void g_on_error_query(const gchar *);
extern gchar *g_find_program_in_path(const gchar *);
extern GNode *g_node_insert_before(GNode *, GNode *, GNode *);
extern void g_key_file_set_boolean(GKeyFile *, const gchar *,
				   const gchar *, gboolean);
extern void g_key_file_remove_key(GKeyFile *, const gchar *, const gchar *,
				  GError * *);
extern void g_dataset_foreach(gconstpointer, GDataForeachFunc, gpointer);
extern const gchar *g_get_user_data_dir(void);
extern void g_date_subtract_months(GDate *, guint);
extern gboolean g_unichar_iscntrl(gunichar);
extern guint g_timeout_add_full(gint, guint, GSourceFunc, gpointer,
				GDestroyNotify);
extern GIOStatus g_io_channel_read_chars(GIOChannel *, gchar *, gsize,
					 gsize *, GError * *);
extern gint g_bit_nth_msf(gulong, gint);
extern void g_tree_steal(GTree *, gconstpointer);
extern gboolean g_date_valid(const GDate *);
extern void g_io_channel_set_close_on_unref(GIOChannel *, gboolean);
extern void g_tree_replace(GTree *, gpointer, gpointer);
extern void g_async_queue_push_unlocked(GAsyncQueue *, gpointer);
extern GNode *g_node_new(gpointer);
extern void g_mem_set_vtable(GMemVTable *);
extern void g_option_context_add_main_entries(GOptionContext *,
					      const GOptionEntry *,
					      const gchar *);
extern void g_hash_table_foreach(GHashTable *, GHFunc, gpointer);
extern GUnicodeType g_unichar_type(gunichar);
extern GPtrArray *g_ptr_array_sized_new(guint);
extern GList *g_list_insert_sorted(GList *, gpointer, GCompareFunc);
extern GLogFunc g_log_set_default_handler(GLogFunc, gpointer);
extern gsize g_date_strftime(gchar *, gsize, const gchar *, const GDate *);
extern gboolean g_option_context_get_ignore_unknown_options(GOptionContext
							    *);
extern gpointer g_static_private_get(GStaticPrivate *);
extern void g_completion_add_items(GCompletion *, GList *);
extern gchar *g_stpcpy(gchar *, const gchar *);
extern gchar *g_utf8_find_prev_char(const char *, const char *);
extern GOptionContext *g_option_context_new(const gchar *);
extern gchar *g_locale_to_utf8(const gchar *, gssize, gsize *, gsize *,
			       GError * *);
extern gint g_ascii_strncasecmp(const gchar *, const gchar *, gsize);
extern void g_slist_push_allocator(GAllocator *);
extern gboolean g_main_context_acquire(GMainContext *);
extern GSourceFuncs g_idle_funcs;
extern guint g_thread_pool_get_num_unused_threads(void);
extern void g_thread_pool_free(GThreadPool *, gboolean, gboolean);
extern guint g_date_get_sunday_week_of_year(const GDate *);
extern gdouble g_rand_double(GRand *);
extern gint g_ascii_strcasecmp(const gchar *, const gchar *);
extern void g_string_printf(GString *, const gchar *, ...);
extern GQuark g_quark_from_string(const gchar *);
extern void g_hash_table_replace(GHashTable *, gpointer, gpointer);
extern const gchar *g_strip_context(const gchar *, const gchar *);
extern const gchar *g_strerror(gint);
extern void g_mem_chunk_clean(GMemChunk *);
extern GString *g_string_prepend_len(GString *, const gchar *, gssize);
extern GArray *g_array_remove_range(GArray *, guint, guint);
extern void g_queue_remove_all(GQueue *, gconstpointer);
extern gint g_file_open_tmp(const gchar *, gchar * *, GError * *);
extern const gchar *g_get_user_name(void);
extern void g_timer_continue(GTimer *);
extern void g_main_context_set_poll_func(GMainContext *, GPollFunc);
extern void g_timer_destroy(GTimer *);
extern void g_main_context_add_poll(GMainContext *, GPollFD *, gint);
extern GSList *g_slist_alloc(void);
extern GSList *g_slist_reverse(GSList *);
extern GList *g_list_concat(GList *, GList *);
extern gunichar g_utf8_get_char(const gchar *);
extern gchar *g_shell_quote(const gchar *);
extern void g_get_current_time(GTimeVal *);
extern void g_option_group_set_translate_func(GOptionGroup *,
					      GTranslateFunc, gpointer,
					      GDestroyNotify);
extern gunichar g_unichar_totitle(gunichar);
extern gboolean g_spawn_async(const gchar *, gchar * *, gchar * *,
			      GSpawnFlags, GSpawnChildSetupFunc, gpointer,
			      GPid *, GError * *);
extern gchar *g_utf16_to_utf8(const gunichar2 *, glong, glong *, glong *,
			      GError * *);
extern void g_queue_insert_before(GQueue *, GList *, gpointer);
extern GSource *g_main_context_find_source_by_id(GMainContext *, guint);
extern void g_mem_chunk_destroy(GMemChunk *);
extern void g_thread_exit(gpointer);
extern void g_option_group_set_parse_hooks(GOptionGroup *,
					   GOptionParseFunc,
					   GOptionParseFunc);
extern GSList *g_slist_insert_sorted(GSList *, gpointer, GCompareFunc);
extern void g_source_set_callback_indirect(GSource *, gpointer,
					   GSourceCallbackFuncs *);
extern GSList *g_slist_sort_with_data(GSList *, GCompareDataFunc,
				      gpointer);
extern void g_node_reverse_children(GNode *);
extern gpointer g_queue_peek_nth(GQueue *, guint);
extern void g_list_free(GList *);
extern GList *g_list_nth_prev(GList *, guint);
extern void g_strfreev(gchar * *);
extern gboolean g_ptr_array_remove(GPtrArray *, gpointer);
extern const guint glib_major_version;
extern glong g_utf8_pointer_to_offset(const gchar *, const gchar *);
extern gpointer g_tree_lookup(GTree *, gconstpointer);
extern gchar *g_strdup_printf(const gchar *, ...);
extern gboolean g_source_remove_by_user_data(gpointer);
extern gunichar2 *g_utf8_to_utf16(const gchar *, glong, glong *, glong *,
				  GError * *);
extern gunichar *g_utf8_to_ucs4(const gchar *, glong, glong *, glong *,
				GError * *);
extern void g_date_set_day(GDate *, GDateDay);
extern gsize g_io_channel_get_buffer_size(GIOChannel *);
extern void g_hash_table_insert(GHashTable *, gpointer, gpointer);
extern guint g_spaced_primes_closest(guint);
extern void g_option_group_add_entries(GOptionGroup *,
				       const GOptionEntry *);
extern gboolean g_key_file_load_from_file(GKeyFile *, const gchar *,
					  GKeyFileFlags, GError * *);
extern gint32 g_random_int_range(gint32, gint32);
extern gpointer g_hash_table_lookup(GHashTable *, gconstpointer);
extern void g_relation_index(GRelation *, gint, GHashFunc, GEqualFunc);
extern GByteArray *g_byte_array_remove_range(GByteArray *, guint, guint);
extern gchar *g_filename_from_utf8(const gchar *, gssize, gsize *, gsize *,
				   GError * *);
extern GQuark g_thread_error_quark(void);
extern void g_hook_destroy_link(GHookList *, GHook *);
extern gdouble g_random_double_range(gdouble, gdouble);
extern gchar *g_filename_from_uri(const gchar *, gchar * *, GError * *);
extern gboolean g_tree_lookup_extended(GTree *, gconstpointer, gpointer *,
				       gpointer *);
extern gboolean g_unichar_iswide(gunichar);
extern gboolean g_unichar_isxdigit(gunichar);
extern void g_queue_push_tail_link(GQueue *, GList *);
extern void g_spawn_close_pid(GPid);
extern GRand *g_rand_new(void);
extern void g_date_set_julian(GDate *, guint32);
extern GNode *g_node_insert_after(GNode *, GNode *, GNode *);
extern const guint glib_binary_age;
extern void g_static_rec_mutex_lock_full(GStaticRecMutex *, guint);
extern GString *g_string_append_unichar(GString *, gunichar);
extern GStringChunk *g_string_chunk_new(gsize);
extern void g_atexit(GVoidFunc);
extern void g_scanner_scope_remove_symbol(GScanner *, guint,
					  const gchar *);
extern void g_main_context_remove_poll(GMainContext *, GPollFD *);
extern gchar *g_locale_from_utf8(const gchar *, gssize, gsize *, gsize *,
				 GError * *);
extern GMainContext *g_source_get_context(GSource *);
extern GSourceFuncs g_io_watch_funcs;
extern gint g_thread_pool_get_max_unused_threads(void);
extern gboolean g_unichar_isspace(gunichar);
extern GList *g_list_alloc(void);
extern gpointer g_queue_pop_tail(GQueue *);
extern gpointer g_thread_join(GThread *);
extern GSList *g_slist_append(GSList *, gpointer);
extern GNode *g_node_copy(GNode *);
extern void g_time_val_add(GTimeVal *, glong);
extern gboolean g_pattern_match(GPatternSpec *, guint, const gchar *,
				const gchar *);
extern void g_source_remove_poll(GSource *, GPollFD *);
extern gsize g_printf_string_upper_bound(const gchar *, va_list);
extern GCompletion *g_completion_new(GCompletionFunc);
extern gboolean g_date_is_last_of_month(const GDate *);
extern GHook *g_hook_find(GHookList *, gboolean, GHookFindFunc, gpointer);
extern gboolean g_static_rec_mutex_trylock(GStaticRecMutex *);
extern GError *g_error_new_literal(GQuark, gint, const gchar *);
extern void g_date_set_dmy(GDate *, GDateDay, GDateMonth, GDateYear);
extern guint g_node_max_height(GNode *);
extern gboolean g_unichar_isgraph(gunichar);
extern gint g_list_position(GList *, GList *);
extern gboolean g_pattern_match_simple(const gchar *, const gchar *);
extern const gchar *g_get_real_name(void);
extern void g_string_append_printf(GString *, const gchar *, ...);
extern void g_static_private_init(GStaticPrivate *);
extern gunichar *g_utf16_to_ucs4(const gunichar2 *, glong, glong *,
				 glong *, GError * *);
extern void g_rand_free(GRand *);
extern GList *g_queue_peek_tail_link(GQueue *);
extern gchar *g_convert_with_fallback(const gchar *, gssize, const gchar *,
				      const gchar *, gchar *, gsize *,
				      gsize *, GError * *);
extern GSource *g_timeout_source_new(guint);
extern guint g_child_watch_add_full(gint, GPid, GChildWatchFunc, gpointer,
				    GDestroyNotify);
extern void g_node_push_allocator(GAllocator *);
extern void g_queue_foreach(GQueue *, GFunc, gpointer);
extern gchar *g_strdup(const gchar *);
extern gint g_queue_index(GQueue *, gconstpointer);
extern gpointer g_datalist_id_remove_no_notify(GData * *, GQuark);
extern guint8 *g_byte_array_free(GByteArray *, gboolean);
extern void g_date_clamp(GDate *, const GDate *, const GDate *);
extern void g_list_push_allocator(GAllocator *);
extern void g_queue_insert_after(GQueue *, GList *, gpointer);
extern gpointer g_try_malloc(gulong);
extern GIOFlags g_io_channel_get_flags(GIOChannel *);
extern gchar *g_filename_display_basename(const gchar *);
extern GList *g_list_append(GList *, gpointer);
extern gchar *g_utf8_strncpy(gchar *, const gchar *, gsize);
extern gchar **g_key_file_get_string_list(GKeyFile *, const gchar *,
					  const gchar *, gsize *,
					  GError * *);
extern guint g_log_set_handler(const gchar *, GLogLevelFlags, GLogFunc,
			       gpointer);
extern gboolean g_queue_is_empty(GQueue *);
extern GList *g_queue_peek_nth_link(GQueue *, guint);
extern void g_list_foreach(GList *, GFunc, gpointer);
extern gint g_ascii_xdigit_value(gchar);
extern GQuark g_shell_error_quark(void);
extern gpointer g_ptr_array_remove_index(GPtrArray *, guint);
extern GList *g_list_insert(GList *, gpointer, gint);
extern void g_log(const gchar *, GLogLevelFlags, const gchar *, ...);
extern gchar *g_utf8_strrchr(const char *, gssize, gunichar);
extern guint g_string_hash(const GString *);
extern gchar **g_key_file_get_locale_string_list(GKeyFile *, const gchar *,
						 const gchar *,
						 const gchar *, gsize *,
						 GError * *);
extern void g_queue_insert_sorted(GQueue *, gpointer, GCompareDataFunc,
				  gpointer);
extern void g_hook_free(GHookList *, GHook *);
extern gpointer g_tree_search(GTree *, GCompareFunc, gconstpointer);
extern void g_scanner_scope_foreach_symbol(GScanner *, guint, GHFunc,
					   gpointer);
extern GDir *g_dir_open(const gchar *, guint, GError * *);
extern gchar *g_utf8_casefold(const gchar *, gssize);
extern void g_rand_set_seed_array(GRand *, const guint32 *, guint);
extern void g_date_to_struct_tm(const GDate *, struct tm *);
extern gboolean g_key_file_has_group(GKeyFile *, const gchar *);
extern GList *g_list_remove_link(GList *, GList *);
extern gboolean g_date_valid_month(GDateMonth);
extern gboolean g_spawn_command_line_sync(const gchar *, gchar * *,
					  gchar * *, gint *, GError * *);
extern gpointer g_slist_nth_data(GSList *, guint);
extern gchar *g_convert(const gchar *, gssize, const gchar *,
			const gchar *, gsize *, gsize *, GError * *);
extern void g_io_channel_unref(GIOChannel *);
extern void g_markup_parse_context_get_position(GMarkupParseContext *,
						gint *, gint *);
extern void g_datalist_foreach(GData * *, GDataForeachFunc, gpointer);
extern void g_tuples_destroy(GTuples *);
extern guint g_strv_length(gchar * *);
extern gunichar g_unichar_toupper(gunichar);
extern void g_tree_insert(GTree *, gpointer, gpointer);
extern GNode *g_node_copy_deep(GNode *, GCopyFunc, gpointer);
extern gint g_node_child_position(GNode *, GNode *);
extern void g_list_pop_allocator(void);
extern gboolean g_mem_is_system_malloc(void);
extern const gchar *g_get_home_dir(void);
extern void g_async_queue_push(GAsyncQueue *, gpointer);
extern gboolean g_key_file_has_key(GKeyFile *, const gchar *,
				   const gchar *, GError * *);
extern gboolean g_file_get_contents(const gchar *, gchar * *, gsize *,
				    GError * *);
extern gboolean g_path_is_absolute(const gchar *);
extern void g_printerr(const gchar *, ...);
extern void g_completion_set_compare(GCompletion *,
				     GCompletionStrncmpFunc);
extern guint g_timeout_add(guint32, GSourceFunc, gpointer);
extern void g_slist_foreach(GSList *, GFunc, gpointer);
extern GArray *g_array_insert_vals(GArray *, guint, gconstpointer, guint);
extern gchar *g_utf8_collate_key(const gchar *, gssize);
extern void g_static_rw_lock_reader_lock(GStaticRWLock *);
extern void g_mem_chunk_info(void);
extern gchar *g_utf8_strreverse(const gchar *, gssize);
extern GByteArray *g_byte_array_new(void);
extern gboolean g_setenv(const gchar *, const gchar *, gboolean);
extern gchar *g_get_current_dir(void);
extern GTree *g_tree_new(GCompareFunc);
extern gboolean g_unichar_isalpha(gunichar);
extern gsize g_strlcat(gchar *, const gchar *, gsize);
extern gboolean g_main_context_iteration(GMainContext *, gboolean);
extern GHook *g_hook_ref(GHookList *, GHook *);
extern GNode *g_node_find_child(GNode *, GTraverseFlags, gpointer);
extern void g_option_group_set_error_hook(GOptionGroup *,
					  GOptionErrorFunc);
extern gint g_bit_nth_lsf(gulong, gint);
extern gpointer g_async_queue_try_pop_unlocked(GAsyncQueue *);
extern GCache *g_cache_new(GCacheNewFunc, GCacheDestroyFunc, GCacheDupFunc,
			   GCacheDestroyFunc, GHashFunc, GHashFunc,
			   GEqualFunc);
extern void g_print(const gchar *, ...);
extern gint g_unichar_xdigit_value(gunichar);
extern GTimer *g_timer_new(void);
extern gchar *g_string_chunk_insert(GStringChunk *, const gchar *);
extern gchar *g_file_read_link(const gchar *, GError * *);
extern void g_assert_warning(const char *, const char *, const int,
			     const char *, const char *);
extern guint g_str_hash(gconstpointer);
extern void g_key_file_set_locale_string_list(GKeyFile *, const gchar *,
					      const gchar *, const gchar *,
					      const gchar * const *,
					      gsize);
extern GString *g_string_sized_new(gsize);
extern void g_hash_table_destroy(GHashTable *);
extern void g_static_mutex_free(GStaticMutex *);
extern gchar *g_ascii_strup(const gchar *, gssize);
extern gchar g_ascii_toupper(gchar);
extern guint g_date_get_iso8601_week_of_year(const GDate *);
extern void g_slist_free(GSList *);
extern gboolean g_string_equal(const GString *, const GString *);
extern guint g_scanner_cur_line(GScanner *);
extern gint g_date_compare(const GDate *, const GDate *);
extern GString *g_string_insert_len(GString *, gssize, const gchar *,
				    gssize);
extern gchar *g_strdelimit(gchar *, const gchar *, gchar);
extern guint g_node_n_children(GNode *);
extern GNode *g_node_last_sibling(GNode *);
extern const gchar *const *g_get_language_names(void);
extern GHook *g_hook_alloc(GHookList *);
extern GDateMonth g_date_get_month(const GDate *);
extern gboolean g_date_is_leap_year(GDateYear);
extern gpointer g_queue_pop_nth(GQueue *, guint);
extern gchar *g_strreverse(gchar *);
extern guint g_hash_table_size(GHashTable *);
extern gpointer g_mem_chunk_alloc(GMemChunk *);
extern GList *g_queue_peek_head_link(GQueue *);
extern GList *g_queue_find(GQueue *, gconstpointer);
extern void g_dataset_id_set_data_full(gconstpointer, GQuark, gpointer,
				       GDestroyNotify);
extern void g_unsetenv(const gchar *);
extern guint64 g_ascii_strtoull(const gchar *, gchar * *, guint);
extern gboolean g_spawn_command_line_async(const gchar *, GError * *);
extern GHook *g_hook_find_func(GHookList *, gboolean, gpointer);
extern gchar *g_array_free(GArray *, gboolean);
extern gpointer g_malloc0(gulong);
extern gint g_node_child_index(GNode *, gpointer);
extern GIOStatus g_io_channel_shutdown(GIOChannel *, gboolean, GError * *);
extern GQuark g_quark_try_string(const gchar *);
extern GIOStatus g_io_channel_set_encoding(GIOChannel *, const gchar *,
					   GError * *);
extern gboolean g_scanner_eof(GScanner *);
extern void g_cache_destroy(GCache *);
extern gboolean g_spawn_sync(const gchar *, gchar * *, gchar * *,
			     GSpawnFlags, GSpawnChildSetupFunc, gpointer,
			     gchar * *, gchar * *, gint *, GError * *);
extern gboolean g_static_rw_lock_reader_trylock(GStaticRWLock *);
extern void g_byte_array_sort(GByteArray *, GCompareFunc);
extern void g_atomic_int_add(gint *, gint);
extern gpointer g_async_queue_timed_pop(GAsyncQueue *, GTimeVal *);
extern GHook *g_hook_get(GHookList *, gulong);
extern void g_option_context_set_help_enabled(GOptionContext *, gboolean);
extern guint g_static_rec_mutex_unlock_full(GStaticRecMutex *);
extern gboolean g_hash_table_lookup_extended(GHashTable *, gconstpointer,
					     gpointer *, gpointer *);
extern void g_date_add_years(GDate *, guint);
extern void g_static_private_free(GStaticPrivate *);
extern const gchar *g_quark_to_string(GQuark);
extern GList *g_list_prepend(GList *, gpointer);
extern gchar *g_utf8_find_next_char(const gchar *, const gchar *);
extern void g_static_rw_lock_writer_lock(GStaticRWLock *);
extern GIOStatus g_io_channel_read_line(GIOChannel *, gchar * *, gsize *,
					gsize *, GError * *);
extern void g_thread_pool_stop_unused_threads(void);
extern const gchar *const *g_get_system_data_dirs(void);
extern GLogLevelFlags g_log_set_fatal_mask(const gchar *, GLogLevelFlags);
extern GMainContext *g_main_loop_get_context(GMainLoop *);
extern gpointer g_malloc(gulong);
extern GIOStatus g_io_channel_flush(GIOChannel *, GError * *);
extern gboolean g_file_test(const gchar *, GFileTest);
extern void g_key_file_set_integer(GKeyFile *, const gchar *,
				   const gchar *, gint);
extern void g_date_set_year(GDate *, GDateYear);
extern gpointer g_once_impl(GOnce *, GThreadFunc, gpointer);
extern void g_usleep(gulong);
extern void g_thread_pool_push(GThreadPool *, gpointer, GError * *);
extern void g_key_file_remove_comment(GKeyFile *, const gchar *,
				      const gchar *, GError * *);
extern GTuples *g_relation_select(GRelation *, gconstpointer, gint);
extern gboolean g_unichar_istitle(gunichar);
extern gchar *g_strrstr(const gchar *, const gchar *);
extern GQuark g_spawn_error_quark(void);
extern GTokenType g_scanner_cur_token(GScanner *);
extern void g_date_free(GDate *);
extern gboolean g_io_channel_get_close_on_unref(GIOChannel *);
extern GScanner *g_scanner_new(const GScannerConfig *);
extern guint g_node_n_nodes(GNode *, GTraverseFlags);
extern gint g_tree_height(GTree *);
extern gboolean g_str_has_prefix(const gchar *, const gchar *);
extern gunichar g_utf8_get_char_validated(const gchar *, gssize);
extern void g_scanner_unexp_token(GScanner *, GTokenType, const gchar *,
				  const gchar *, const gchar *,
				  const gchar *, gint);
extern GString *g_string_prepend_c(GString *, gchar);
extern void g_relation_destroy(GRelation *);
extern guint g_hash_table_foreach_steal(GHashTable *, GHRFunc, gpointer);
extern void g_free(gpointer);
extern guint g_int_hash(gconstpointer);
extern gboolean g_threads_got_initialized;
extern void g_source_get_current_time(GSource *, GTimeVal *);
extern GList *g_queue_pop_tail_link(GQueue *);
extern GString *g_string_new(const gchar *);
extern void g_key_file_set_boolean_list(GKeyFile *, const gchar *,
					const gchar *, gboolean *, gsize);
extern GString *g_string_append(GString *, const gchar *);
extern GByteArray *g_byte_array_append(GByteArray *, const guint8 *,
				       guint);
extern void g_key_file_set_value(GKeyFile *, const gchar *, const gchar *,
				 const gchar *);
extern gboolean g_pattern_spec_equal(GPatternSpec *, GPatternSpec *);
extern GMainContext *g_main_context_new(void);
extern gboolean g_unichar_ispunct(gunichar);
extern guint8 g_date_get_sunday_weeks_in_year(GDateYear);
extern void g_date_subtract_days(GDate *, guint);
extern gboolean g_date_valid_weekday(GDateWeekday);
extern gchar **g_strsplit_set(const gchar *, const gchar *, gint);
extern void g_dataset_destroy(gconstpointer);
extern gpointer g_async_queue_pop_unlocked(GAsyncQueue *);
extern guint g_scanner_cur_position(GScanner *);
extern guint g_date_get_day_of_year(const GDate *);
extern GList *g_list_find_custom(GList *, gconstpointer, GCompareFunc);
extern void g_source_unref(GSource *);
extern GSList *g_slist_remove_link(GSList *, GSList *);
extern GDateDay g_date_get_day(const GDate *);
extern gboolean g_option_context_parse(GOptionContext *, gint *,
				       gchar * **, GError * *);
extern void g_tree_foreach(GTree *, GTraverseFunc, gpointer);
extern void g_string_chunk_free(GStringChunk *);
extern gchar *g_strjoinv(const gchar *, gchar * *);
extern GString *g_string_append_c(GString *, gchar);
extern GString *g_string_truncate(GString *, gsize);
extern const gchar *g_get_tmp_dir(void);
extern void g_scanner_input_text(GScanner *, const gchar *, guint);
extern gpointer g_list_nth_data(GList *, guint);
extern GNode *g_node_last_child(GNode *);
extern gboolean g_node_is_ancestor(GNode *, GNode *);
extern GString *g_string_ascii_down(GString *);
extern void g_blow_chunks(void);
extern gboolean g_unichar_get_mirror_char(gunichar, gunichar *);
extern GOptionGroup *g_option_group_new(const gchar *, const gchar *,
					const gchar *, gpointer,
					GDestroyNotify);
extern const gchar *g_get_user_cache_dir(void);
extern gboolean *g_key_file_get_boolean_list(GKeyFile *, const gchar *,
					     const gchar *, gsize *,
					     GError * *);
extern void g_scanner_warn(GScanner *, const gchar *, ...);
extern void g_queue_delete_link(GQueue *, GList *);
extern guint g_direct_hash(gconstpointer);
extern GSList *g_slist_find_custom(GSList *, gconstpointer, GCompareFunc);
extern GTokenValue g_scanner_cur_value(GScanner *);
extern guint8 g_date_get_days_in_month(GDateMonth, GDateYear);
extern gboolean g_get_charset(const char **);
extern gboolean g_unichar_isalnum(gunichar);
extern GList *g_list_reverse(GList *);
extern void g_hook_insert_sorted(GHookList *, GHook *, GHookCompareFunc);
extern guint g_source_attach(GSource *, GMainContext *);
extern gchar *g_strconcat(const gchar *, ...);
extern void g_nullify_pointer(gpointer *);
extern void g_ptr_array_remove_range(GPtrArray *, guint, guint);
extern void g_static_rw_lock_free(GStaticRWLock *);
extern GString *g_string_new_len(const gchar *, gssize);
extern GList *g_list_insert_before(GList *, GList *, gpointer);
extern void g_date_set_parse(GDate *, const gchar *);
extern void g_log_remove_handler(const gchar *, guint);
extern gboolean g_str_equal(gconstpointer, gconstpointer);
extern GMainLoop *g_main_loop_ref(GMainLoop *);
extern gchar *g_ucs4_to_utf8(const gunichar *, glong, glong *, glong *,
			     GError * *);
extern gpointer g_memdup(gconstpointer, guint);
extern GAllocator *g_allocator_new(const gchar *, guint);
extern GList *g_completion_complete_utf8(GCompletion *, const gchar *,
					 gchar * *);
extern void g_main_loop_run(GMainLoop *);
extern void g_scanner_error(GScanner *, const gchar *, ...);
extern void g_mem_chunk_reset(GMemChunk *);
extern GThread *g_thread_create_full(GThreadFunc, gpointer, gulong,
				     gboolean, gboolean, GThreadPriority,
				     GError * *);
extern gboolean g_date_is_first_of_month(const GDate *);
extern gunichar *g_utf8_to_ucs4_fast(const gchar *, glong, glong *);
extern void g_queue_reverse(GQueue *);
extern void g_node_children_foreach(GNode *, GTraverseFlags,
				    GNodeForeachFunc, gpointer);
extern void g_timer_stop(GTimer *);
extern GSourceFuncs g_timeout_funcs;
extern gboolean g_main_context_wait(GMainContext *, GCond *, GMutex *);
extern void g_set_prgname(const gchar *);
extern void g_allocator_free(GAllocator *);
extern const gchar *g_markup_parse_context_get_element(GMarkupParseContext
						       *);
extern guint g_parse_debug_string(const gchar *, const GDebugKey *, guint);
extern void g_error_free(GError *);
extern gchar *g_string_chunk_insert_len(GStringChunk *, const gchar *,
					gssize);
extern GArray *g_array_new(gboolean, gboolean, guint);
extern GDate *g_date_new_dmy(GDateDay, GDateMonth, GDateYear);
extern GMemVTable *glib_mem_profiler_table;
extern void g_qsort_with_data(gconstpointer, gint, gsize, GCompareDataFunc,
			      gpointer);
extern gboolean g_shell_parse_argv(const gchar *, gint *, gchar * **,
				   GError * *);
extern gchar *g_strchomp(gchar *);
extern guint32 g_random_int(void);
extern void g_option_context_set_main_group(GOptionContext *,
					    GOptionGroup *);
extern void g_date_clear(GDate *, guint);
extern GIOStatus g_io_channel_read_unichar(GIOChannel *, gunichar *,
					   GError * *);
extern GList *g_list_nth(GList *, guint);
extern void g_node_destroy(GNode *);
extern const gchar *glib_check_version(guint, guint, guint);
extern GThread *g_thread_self(void);
extern GList *g_list_sort_with_data(GList *, GCompareDataFunc, gpointer);
extern void g_io_channel_set_line_term(GIOChannel *, const gchar *, gint);
extern GIOChannel *g_io_channel_unix_new(gint);
extern GThreadFunctions g_thread_functions_for_glib_use;
extern GString *g_string_insert(GString *, gssize, const gchar *);
extern gpointer g_trash_stack_pop(GTrashStack * *);
extern void g_hook_list_marshal(GHookList *, gboolean, GHookMarshaller,
				gpointer);
extern size_t g_iconv(GIConv, gchar * *, gsize *, gchar * *, gsize *);
extern void g_queue_remove(GQueue *, gconstpointer);
extern const gchar *g_path_skip_root(const gchar *);
extern gint g_queue_link_index(GQueue *, GList *);
extern gpointer g_tuples_index(GTuples *, gint, gint);
extern GIOChannelError g_io_channel_error_from_errno(gint);
extern void g_main_context_wakeup(GMainContext *);
extern gboolean g_direct_equal(gconstpointer, gconstpointer);
extern GSource *g_source_new(GSourceFuncs *, guint);
extern gboolean g_idle_remove_by_data(gpointer);
extern void g_io_channel_set_buffer_size(GIOChannel *, gsize);
extern guint g_io_add_watch_full(GIOChannel *, gint, GIOCondition, GIOFunc,
				 gpointer, GDestroyNotify);
extern void g_dir_rewind(GDir *);
extern GSourceFuncs g_child_watch_funcs;
extern gint g_iconv_close(GIConv);
extern gchar *g_ascii_strdown(const gchar *, gssize);
extern gchar *g_key_file_get_locale_string(GKeyFile *, const gchar *,
					   const gchar *, const gchar *,
					   GError * *);
extern GQueue *g_queue_copy(GQueue *);
extern guint g_node_depth(GNode *);
extern const gchar *g_strsignal(gint);
extern GSList *g_slist_concat(GSList *, GSList *);
extern gboolean g_source_remove_by_funcs_user_data(GSourceFuncs *,
						   gpointer);
extern GSource *g_io_create_watch(GIOChannel *, GIOCondition);
extern gpointer g_cache_insert(GCache *, gpointer);
extern gpointer g_scanner_lookup_symbol(GScanner *, const gchar *);
extern GIOStatus g_io_channel_seek_position(GIOChannel *, gint64,
					    GSeekType, GError * *);
extern gboolean g_thread_use_default_impl;
extern guint g_io_add_watch(GIOChannel *, GIOCondition, GIOFunc, gpointer);
extern GSource *g_main_context_find_source_by_user_data(GMainContext *,
							gpointer);
extern GIConv g_iconv_open(const gchar *, const gchar *);
extern gchar *g_strdup_vprintf(const gchar *, va_list);
extern void g_datalist_clear(GData * *);
extern void g_static_rw_lock_reader_unlock(GStaticRWLock *);
extern gsize g_strlcpy(gchar *, const gchar *, gsize);
extern GRand *g_rand_new_with_seed(guint32);
extern guint g_thread_pool_unprocessed(GThreadPool *);
extern GQuark g_file_error_quark(void);
extern gdouble g_ascii_strtod(const gchar *, gchar * *);
extern GByteArray *g_byte_array_prepend(GByteArray *, const guint8 *,
					guint);
extern GQuark g_quark_from_static_string(const gchar *);
extern void g_unicode_canonical_ordering(gunichar *, gsize);
extern gboolean g_ptr_array_remove_fast(GPtrArray *, gpointer);
extern gint g_list_index(GList *, gconstpointer);
extern void g_tree_destroy(GTree *);
extern GDate *g_date_new(void);
extern void g_thread_init_with_errorcheck_mutexes(GThreadFunctions *);
extern void g_thread_init(GThreadFunctions *);

12.3.2. glib-2.0/glib/gprintf.h


extern gint g_sprintf(gchar *, const gchar *, ...);
extern gint g_fprintf(FILE *, const gchar *, ...);
extern gint g_vasprintf(gchar * *, const gchar *, va_list);
extern gint g_vprintf(const gchar *, va_list);
extern gint g_printf(const gchar *, ...);
extern gint g_vfprintf(FILE *, const gchar *, va_list);
extern gint g_vsnprintf(gchar *, gulong, const gchar *, va_list);
extern gint g_vsprintf(gchar *, const gchar *, va_list);
extern gint g_snprintf(gchar *, gulong, const gchar *, ...);

12.3.3. glib-2.0/glib/gstdio.h


#define g_fopen	fopen
#define g_freopen	freopen
#define g_lstat	lstat
#define g_mkdir	mkdir
#define g_open	open
#define g_remove	remove
#define g_rename	rename
#define g_rmdir	rmdir
#define g_stat	stat
#define g_unlink	unlink