<!-- ##### SECTION ./tmpl/desktop_entry.sgml:Long_Description ##### -->
<para>
The "GDesktopEntry" parser is intended to parse files written to
the <ulink
url="http://www.freedesktop.org/Standards/desktop-entry-spec">Desktop
Entry Specification</ulink>.  It supports deserialization of
desktop entries from files and in-memory data.  Desktop entries
are used for a variety of things including menus, application
MIME type registration, and launchers.
</para>

<para>
To load an existing desktop entry from a data directory (as
returned by g_get_user_data_dir() and g_get_system_data_dirs())
use g_desktop_entry_new_from_data_dirs().  To load an existing
desktop entry from an arbitrary location on the file system use
g_desktop_entry_new_from_file().  If the desktop entry is already
in memory use g_desktop_entry_new_from_data().  Once the desktop 
entry is loaded its keys can be queried using the g_desktop_entry_get 
family of functions.
</para>

<para>
To create a new desktop entry first call g_desktop_entry_new().
Then, call the g_desktop_entry_set family of functions.  Next,
call g_desktop_entry_to_data() to output the desktop entry to 
a byte array, which can be written to disk or sent over a
network.  Finally, call g_desktop_entry_free() to deallocate the
#GDesktopEntry object returned by g_desktop_entry_new().
</para>


<!-- ##### SECTION ./tmpl/desktop_entry.sgml:See_Also ##### -->
<para>

</para>


<!-- ##### SECTION ./tmpl/desktop_entry.sgml:Short_Description ##### -->
serializes and deserializes a desktop entry.


<!-- ##### SECTION ./tmpl/desktop_entry.sgml:Title ##### -->
Desktop Entry Parser


<!-- ##### SECTION ./tmpl/glib-unused.sgml:Stability_Level ##### -->



<!-- ##### SECTION ./tmpl/testutils.sgml:Long_Description ##### -->
<para>

</para>


<!-- ##### SECTION ./tmpl/testutils.sgml:See_Also ##### -->
<para>

</para>


<!-- ##### SECTION ./tmpl/testutils.sgml:Short_Description ##### -->



<!-- ##### SECTION ./tmpl/testutils.sgml:Stability_Level ##### -->



<!-- ##### SECTION ./tmpl/testutils.sgml:Title ##### -->
Testing


<!-- ##### ENUM GChannelError ##### -->
<para>

</para>

@G_CHANNEL_ERROR_ACCES: 
@G_CHANNEL_ERROR_BADF: 
@G_CHANNEL_ERROR_DEADLK: 
@G_CHANNEL_ERROR_FAULT: 
@G_CHANNEL_ERROR_INVAL: 
@G_CHANNEL_ERROR_IO: 
@G_CHANNEL_ERROR_ISDIR: 
@G_CHANNEL_ERROR_MFILE: 
@G_CHANNEL_ERROR_NOLCK: 
@G_CHANNEL_ERROR_NOSPC: 
@G_CHANNEL_ERROR_PERM: 
@G_CHANNEL_ERROR_PIPE: 
@G_CHANNEL_ERROR_SPIPE: 
@G_CHANNEL_ERROR_ENCODE_RW: 
@G_CHANNEL_ERROR_FAILED: 

<!-- ##### ENUM GChannelStatus ##### -->
<para>

</para>

@G_CHANNEL_STATUS_NORMAL: 
@G_CHANNEL_STATUS_EOF: 
@G_CHANNEL_STATUS_PARTIAL_CHARS: 
@G_CHANNEL_STATUS_AGAIN: 
@G_CHANNEL_STATUS_INTR: 
@G_CHANNEL_STATUS_ERROR: 
@G_CHANNEL_STATUS_BAD_INPUT: 

<!-- ##### USER_FUNCTION GCompareFuncData ##### -->
<para>

</para>

@a: 
@b: 
@user_data: 
@Returns: 

<!-- ##### USER_FUNCTION GCompletionStrcmpFunc ##### -->
<para>

</para>

@s1: 
@s2: 
@Returns: 

<!-- ##### STRUCT GDesktopEntry ##### -->
<para>

</para>


<!-- ##### ENUM GDesktopEntryError ##### -->
<para>
Error codes returned by desktop entry parsing.
</para>

@G_DESKTOP_ENTRY_ERROR_UNKNOWN_ENCODING: text being parsed is not UTF-8 and
cannot be guessed.
@G_DESKTOP_ENTRY_ERROR_BAD_START_GROUP: desktop entry does not start with a
legal start group.
@G_DESKTOP_ENTRY_ERROR_PARSE: desktop entry is empty or contains invalid
data.
@G_DESKTOP_ENTRY_ERROR_NOT_FOUND: valid desktop entry could not be found.
@G_DESKTOP_ENTRY_ERROR_KEY_NOT_FOUND: desktop entry does not have requested
key.
@G_DESKTOP_ENTRY_ERROR_GROUP_NOT_FOUND: desktop entry does not have requested
group
@G_DESKTOP_ENTRY_ERROR_INVALID_VALUE: desktop entry contains key which has
value that cannot be validated.

<!-- ##### ENUM GDesktopEntryFlags ##### -->
<para>
#GDesktopEntry supports a few flags for tweaking performance during
deserialization.  #G_DESKTOP_ENTRY_DISCARD_COMMENTS and 
#G_DESKTOP_ENTRY_DISCARD_TRANSLATIONS will reduce memory footprint,
and #G_DESKTOP_ENTRY_GENERATE_LOOKUP_MAP will increase key lookup speed.
</para>

@G_DESKTOP_ENTRY_NONE: use parser defaults
@G_DESKTOP_ENTRY_DISCARD_COMMENTS:  Discard all lines that are blank
or start with "#".
@G_DESKTOP_ENTRY_DISCARD_TRANSLATIONS: Only retain translations that
are returned by g_get_language_names().
@G_DESKTOP_ENTRY_GENERATE_LOOKUP_MAP: Generate a lookup map for key names to make lookups constant time at the cost of more memory.

<!-- ##### USER_FUNCTION GErrorFunc ##### -->
<para>
Specifies the type of function passed to g_set_error_handler().
</para>

@str: the error message.

<!-- ##### USER_FUNCTION GHookFreeFunc ##### -->
<para>

</para>

@hook_list: 
@hook: 

<!-- ##### MACRO GINT16_TO_BE ##### -->
<para>
Converts a #gint16 value from host byte order to big-endian.
</para>

@val: a #gint16 value in host byte order.
@Returns: @val converted to big-endian.

<!-- ##### MACRO GINT16_TO_LE ##### -->
<para>
Converts a #gint16 value from host byte order to little-endian.
</para>

@val: a #gint16 value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### MACRO GINT32_TO_BE ##### -->
<para>
Converts a #gint32 value from host byte order to big-endian.
</para>

@val: a #gint32 value in host byte order.
@Returns: @val converted to big-endian.

<!-- ##### MACRO GINT32_TO_LE ##### -->
<para>
Converts a #gint32 value from host byte order to little-endian.
</para>

@val: a #gint32 value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### MACRO GINT64_TO_BE ##### -->
<para>
Converts a #gint64 value from host byte order to big-endian.
</para>

@val: a #gint64 value in host byte order.
@Returns: @val converted to big-endian.

<!-- ##### MACRO GINT64_TO_LE ##### -->
<para>
Converts a #gint64 value from host byte order to little-endian.
</para>

@val: a #gint64 value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### MACRO GINT_TO_BE ##### -->
<para>
Converts a #gint value from host byte order to big-endian.
</para>

@val: a #gint value in host byte order.
@Returns: @val converted to big-endian byte order.

<!-- ##### MACRO GINT_TO_LE ##### -->
<para>
Converts a #gint value from host byte order to little-endian.
</para>

@val: a #gint value in host byte order.
@Returns: @val converted to little-endian byte order.

<!-- ##### MACRO GINT_TO_POINTER ##### -->
<para>
Stuffs an integer into a pointer type.
</para>
<para>
Remember, YOU MAY NOT STORE POINTERS IN INTEGERS. THIS IS NOT PORTABLE
IN ANY WAY SHAPE OR FORM. These macros <emphasis>ONLY</emphasis> allow
storing integers in pointers, and only preserve 32 bits of the
integer; values outside the range of a 32-bit integer will be mangled.
</para>

@i: integer to stuff into a pointer.

<!-- ##### ENUM GIOFileMode ##### -->
<para>

</para>

@G_IO_FILE_MODE_READ: 
@G_IO_FILE_MODE_WRITE: 
@G_IO_FILE_MODE_APPEND: 
@G_IO_FILE_MODE_READ_WRITE: 
@G_IO_FILE_MODE_READ_WRITE_TRUNCATE: 
@G_IO_FILE_MODE_READ_WRITE_APPEND: 

<!-- ##### MACRO GLIB_MAJOR_VERSION ##### -->
<para>
The major version number of the GLib library.
Like #glib_major_version, but from the headers used at
application compile time, rather than from the library linked against
at application run time.
</para>


<!-- ##### MACRO GLIB_MICRO_VERSION ##### -->
<para>
The micro version number of the GLib library.
Like #gtk_micro_version, but from the headers used at
application compile time, rather than from the library linked against
at application run time.
</para>


<!-- ##### MACRO GLIB_MINOR_VERSION ##### -->
<para>
The minor version number of the GLib library.
Like #gtk_minor_version, but from the headers used at
application compile time, rather than from the library linked against
at application run time.
</para>


<!-- ##### MACRO GLONG_TO_BE ##### -->
<para>
Converts a #glong value from host byte order to big-endian.
</para>

@val: a #glong value in host byte order.
@Returns: @val converted to big-endian byte order.

<!-- ##### MACRO GLONG_TO_LE ##### -->
<para>
Converts a #glong value from host byte order to little-endian.
</para>

@val: a #glong value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### ENUM GMatchType ##### -->
<para>
Enumeration representing different kinds of patterns. This is only used
internally for optimizing the match algorithm.
</para>

@G_MATCH_ALL: a general pattern.
@G_MATCH_ALL_TAIL: a general pattern which contains a fixed part matching
the end of the string.
@G_MATCH_HEAD: a pattern matching every string with a certain prefix.
@G_MATCH_TAIL: a pattern matching every string with a certain suffix.
@G_MATCH_EXACT: a pattern matching exactly one string.
@G_MATCH_LAST: 

<!-- ##### STRUCT GModule ##### -->
<para>
The #GModule struct is an opaque data structure to represent a
<link linkend="glib-Dynamic-Loading-of-Modules">Dynamically-Loaded Module</link>.
It should only be accessed via the following functions.
</para>


<!-- ##### USER_FUNCTION GModuleCheckInit ##### -->
<para>
Specifies the type of the module initialization function.
If a module contains a function named g_module_check_init() it is called
automatically when the module is loaded. It is passed the #GModule structure
and should return %NULL on success or a string describing the initialization
error.
</para>

@module: the #GModule corresponding to the module which has just been loaded.
@Returns: %NULL on success, or a string describing the initialization error.

<!-- ##### ENUM GModuleFlags ##### -->
<para>
Flags passed to g_module_open(). Note that these flags are
not supported on all platforms.
</para>

@G_MODULE_BIND_LAZY: specifies that symbols are only resolved when needed.
  The default action is to bind all symbols when the module is loaded.
@G_MODULE_BIND_LOCAL: specifies that symbols in the module should
  not be added to the global name space.  The default action on most
  platforms is to place symbols in the module in the global name space,
  which may cause conflicts with existing symbols.
@G_MODULE_BIND_MASK: mask for all flags.

<!-- ##### USER_FUNCTION GModuleUnload ##### -->
<para>
Specifies the type of the module function called when it is unloaded.
If a module contains a function named g_module_unload() it is called
automatically when the module is unloaded.
It is passed the #GModule structure.
</para>

@module: the #GModule about to be unloaded.

<!-- ##### MACRO GPOINTER_TO_INT ##### -->
<para>
Extracts an integer from a pointer. The integer must have
been stored in the pointer with GINT_TO_POINTER().
</para>
<para>
Remember, YOU MAY NOT STORE POINTERS IN INTEGERS. THIS IS NOT PORTABLE
IN ANY WAY SHAPE OR FORM. These macros <emphasis>ONLY</emphasis> allow
storing integers in pointers, and only preserve 32 bits of the
integer; values outside the range of a 32-bit integer will be mangled.
</para>

@p: pointer containing an integer.

<!-- ##### MACRO GPOINTER_TO_UINT ##### -->
<para>
Extracts an unsigned integer from a pointer. The integer must have
been stored in the pointer with GUINT_TO_POINTER().
</para>

@p: pointer to extract an unsigned integer from.

<!-- ##### TYPEDEF GPid ##### -->
<para>
A type which is used to hold a process identification. 
On Unix, processes are identified by a process id (an 
integer), while Windows uses process handles (which are 
pointers).
</para>


<!-- ##### MACRO GUINT16_TO_BE ##### -->
<para>
Converts a #guint16 value from host byte order to big-endian.
</para>

@val: a #guint16 value in host byte order.
@Returns: @val converted to big-endian.

<!-- ##### MACRO GUINT16_TO_LE ##### -->
<para>
Converts a #guint16 value from host byte order to little-endian.
</para>

@val: a #guint16 value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### MACRO GUINT32_TO_BE ##### -->
<para>
Converts a #guint32 value from host byte order to big-endian.
</para>

@val: a #guint32 value in host byte order.
@Returns: @val converted to big-endian.

<!-- ##### MACRO GUINT32_TO_LE ##### -->
<para>
Converts a #guint32 value from host byte order to little-endian.
</para>

@val: a #guint32 value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### MACRO GUINT64_TO_BE ##### -->
<para>
Converts a #guint64 value from host byte order to big-endian.
</para>

@val: a #guint64 value in host byte order.
@Returns: @val converted to big-endian.

<!-- ##### MACRO GUINT64_TO_LE ##### -->
<para>
Converts a #guint64 value from host byte order to little-endian.
</para>

@val: a #guint64 value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### MACRO GUINT_TO_BE ##### -->
<para>
Converts a #guint value from host byte order to big-endian.
</para>

@val: a #guint value in host byte order.
@Returns: @val converted to big-endian byte order.

<!-- ##### MACRO GUINT_TO_LE ##### -->
<para>
Converts a #guint value from host byte order to little-endian.
</para>

@val: a #guint value in host byte order.
@Returns: @val converted to little-endian byte order.

<!-- ##### MACRO GUINT_TO_POINTER ##### -->
<para>
Stuffs an unsigned integer into a pointer type.
</para>

@u: unsigned integer to stuff into the pointer.

<!-- ##### MACRO GULONG_TO_BE ##### -->
<para>
Converts a #gulong value from host byte order to big-endian.
</para>

@val: a #gulong value in host byte order.
@Returns: @val converted to big-endian.

<!-- ##### MACRO GULONG_TO_LE ##### -->
<para>
Converts a #gulong value from host byte order to little-endian.
</para>

@val: a #gulong value in host byte order.
@Returns: @val converted to little-endian.

<!-- ##### USER_FUNCTION GWarningFunc ##### -->
<para>
Specifies the type of function passed to g_set_warning_handler().
</para>

@str: the warning message.

<!-- ##### MACRO G_BYTE_ORDER ##### -->
<para>
The host byte order.
This can be either #G_LITTLE_ENDIAN or #G_BIG_ENDIAN (support for
#G_PDP_ENDIAN may be added in future.)
</para>


<!-- ##### MACRO G_CHANNEL_ERROR ##### -->
<para>

</para>


<!-- ##### MACRO G_DESKTOP_ENTRY_ERROR ##### -->
<para>
Error domain for desktop entry parsing. Errors in this domain will
be from the #GDesktopEntryError enumeration. See #GError for information on 
error domains.
</para>


<!-- ##### MACRO G_GINT16_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #gint16. It is a string literal, but doesn't
include the percent-sign, such that you can add precision and length
modifiers between percent-sign and conversion specifier.
</para>

<para>
<informalexample>
<programlisting>
gint16 in;
gint32 out;
sscanf ("42", "%" G_GINT16_FORMAT, &amp;in)
out = in * 1000;
g_print ("%" G_GINT32_FORMAT, out);
</programlisting>
</informalexample>
</para>


<!-- ##### MACRO G_GINT16_MODIFIER ##### -->
<para>
The platform dependent length modifier for constructing printf() conversion
specifiers for values of type #gint16 or #guint16. It is a string literal, 
but doesn't include the percent-sign, such that you can add precision and 
length modifiers between percent-sign and conversion specifier and append a 
conversion specifier.
</para>

<para>
The following example prints "0x7b";
<informalexample>
<programlisting>
gint16 value = 123;
g_print ("%#" G_GINT16_MODIFIER "x", value);
</programlisting>
</informalexample>
</para>

@Since: 2.4

<!-- ##### MACRO G_GINT32_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #gint32. See also #G_GINT16_FORMAT.
</para>


<!-- ##### MACRO G_GINT32_MODIFIER ##### -->
<para>
The platform dependent length modifier for constructing printf() conversion
specifiers for values of type #gint32 or #guint32. See also #G_GINT16_MODIFIER.
</para>

@Since: 2.4

<!-- ##### MACRO G_GINT64_CONSTANT ##### -->
<para>
This macro is used to insert 64-bit integer literals into the source code.
</para>

@val: a literal integer value, e.g. 0x1d636b02300a7aa7U.

<!-- ##### MACRO G_GINT64_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #gint64. See also #G_GINT16_FORMAT.
</para>

<note>
<para>
Some platforms do not support scanning and printing 64 bit integers,
even though the types are supported. On such platforms #G_GINT64_FORMAT
is not defined. Note that scanf() may not support 64 bit integers, even
if #G_GINT64_FORMAT is defined. Due to its weak error handling, scanf() is not 
recommended for parsing anyway; consider using g_strtoull() instead.
</para>
</note>


<!-- ##### MACRO G_GINT64_MODIFIER ##### -->
<para>
The platform dependent length modifier for constructing printf() conversion
specifiers for values of type #gint64 or #guint64. See also #G_GINT16_MODIFIER.
</para>

<note>
<para>
Some platforms do not support printing 64 bit integers,
even though the types are supported. On such platforms #G_GINT64_MODIFIER
is not defined.
</para>
</note>

@Since: 2.4

<!-- ##### MACRO G_GNUC_INTERNAL ##### -->
<para>
This attribute can be used for marking library functions as being used 
internally to the library only, which may allow the compiler to handle
function calls more efficiently. 
Note that static functions do not need to be marked as internal in this way. 
See the GNU C documentation for details. 
</para>
<para>
When using a compiler that supports the GNU C hidden visibility attribute, 
this macro expands to <literal>__attribute__((visibility("hidden")))</literal>.
When using the Sun Studio compiler, it expands to <literal>__hidden</literal>.
</para>
<para>
Note that for portability, the attribute should be placed before the
function declaration. While GCC allows the macro after the declaration, 
Sun Studio does not.
</para>
<informalexample><programlisting>
G_GNUC_INTERNAL
void _g_log_fallback_handler (const gchar    *log_domain,
                              GLogLevelFlags  log_level,
                              const gchar    *message,
                              gpointer        unused_data);
</programlisting></informalexample>

Since: 2.6


<!-- ##### MACRO G_GSIZE_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #gsize. See also #G_GINT16_FORMAT.
</para>

@Since: 2.6

<!-- ##### MACRO G_GSIZE_MODIFIER ##### -->
<para>
The platform dependent length modifier for constructing printf() conversion
specifiers for values of type #gsize or #gssize. See also #G_GINT16_MODIFIER.
</para>

@Since: 2.6

<!-- ##### MACRO G_GSSIZE_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #gssize. See also #G_GINT16_FORMAT.
</para>

@Since: 2.6

<!-- ##### MACRO G_GUINT16_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #guint16. See also #G_GINT16_FORMAT.
</para>


<!-- ##### MACRO G_GUINT32_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #guint32. See also #G_GINT16_FORMAT.
</para>


<!-- ##### MACRO G_GUINT64_CONSTANT ##### -->
<para>
This macro is used to insert 64-bit unsigned integer literals into the 
source code.
</para>

@val: a literal integer value, e.g. 0x1d636b02300a7aa7U.
@Since: 2.10

<!-- ##### MACRO G_GUINT64_FORMAT ##### -->
<para>
This is the platform dependent conversion specifier for scanning and
printing values of type #guint64. See also #G_GINT16_FORMAT.
</para>

<note>
<para>
Some platforms do not support scanning and printing 64 bit integers,
even though the types are supported. On such platforms #G_GUINT64_FORMAT
is not defined.  Note that scanf() may not support 64 bit integers, even
if #G_GINT64_FORMAT is defined. Due to its weak error handling, scanf() is not 
recommended for parsing anyway; consider using g_strtoull() instead.
</para>
</note>


<!-- ##### MACRO G_HAVE_GINT64 ##### -->
<para>
This macro is defined if 64-bit signed and unsigned integers are available
on the platform. 
</para>

@Deprecated: GLib requires 64-bit integer support since version 2.0, therefore
%G_HAVE_GINT64 is <emphasis>always</emphasis> defined.

<!-- ##### MACRO G_HAVE_GNUC_VISIBILITY ##### -->
<para>
This macro is defined as 1 if the compiler supports ELF visibility 
attributes (currently only <command>gcc</command>).
</para>

Since: 2.6


<!-- ##### MACRO G_HOOK_DEFERRED_DESTROY ##### -->
<para>

</para>


<!-- ##### MACRO G_IO_CHANNEL_DEFAULT_LINE_TERM ##### -->
<para>
One of %G_IO_CHANNEL_UNIX_LINE_TERM, %G_IO_CHANNEL_DOS_LINE_TERM,
or %G_IO_CHANNEL_MACINTOSH_LINE_TERM (unimplemented)
depending on the system type.
</para>


<!-- ##### MACRO G_IO_CHANNEL_DOS_LINE_TERM ##### -->
<para>

</para>


<!-- ##### MACRO G_IO_CHANNEL_ENCODE_RAW ##### -->
<para>
Encoding for nonbuffered IO. With this encoding, data must be
read using g_io_channel_read_chars(); the other functions will
not work.
</para>


<!-- ##### MACRO G_IO_CHANNEL_MACINTOSH_LINE_TERM ##### -->
<para>

</para>


<!-- ##### MACRO G_IO_CHANNEL_UNIX_LINE_TERM ##### -->
<para>

</para>


<!-- ##### MACRO G_MAXDOUBLE ##### -->
<para>
The maximum value which can be held in a #gdouble.
</para>


<!-- ##### MACRO G_MAXFLOAT ##### -->
<para>
The maximum value which can be held in a #gfloat.
</para>


<!-- ##### MACRO G_MAXINT ##### -->
<para>
The maximum value which can be held in a #gint.
</para>


<!-- ##### MACRO G_MAXLONG ##### -->
<para>
The maximum value which can be held in a #glong.
</para>


<!-- ##### MACRO G_MAXOFFSET ##### -->
<para>
The maximum value which can be held in a #goffset.
</para>


<!-- ##### MACRO G_MAXSHORT ##### -->
<para>
The maximum value which can be held in a #gshort.
</para>


<!-- ##### MACRO G_MAXSIZE ##### -->
<para>
The maximum value which can be held in a #gsize.
</para>

@Since: 2.4

<!-- ##### MACRO G_MAXSSIZE ##### -->
<para>
The maximum value which can be held in a #gssize.
</para>

@Since: 2.14

<!-- ##### MACRO G_MAXUINT ##### -->
<para>
The maximum value which can be held in a #guint.
</para>


<!-- ##### MACRO G_MAXULONG ##### -->
<para>
The maximum value which can be held in a #gulong.
</para>


<!-- ##### MACRO G_MAXUSHORT ##### -->
<para>
The maximum value which can be held in a #gushort.
</para>


<!-- ##### MACRO G_MINDOUBLE ##### -->
<para>
The minimum positive value which can be held in a #gdouble.
</para>
<para>
If you are interested in the smallest value which can be held in a #gdouble,
use -G_MAXDOUBLE.
</para>


<!-- ##### MACRO G_MINFLOAT ##### -->
<para>
The minimum positive value which can be held in a #gfloat.
</para>
<para>
If you are interested in the smallest value which can be held in a #gfloat,
use -G_MAX_FLOAT.
</para>


<!-- ##### MACRO G_MININT ##### -->
<para>
The minimum value which can be held in a #gint.
</para>


<!-- ##### MACRO G_MINLONG ##### -->
<para>
The minimum value which can be held in a #glong.
</para>


<!-- ##### MACRO G_MINOFFSET ##### -->
<para>
The minimum value which can be held in a #goffset.
</para>


<!-- ##### MACRO G_MINSHORT ##### -->
<para>
The minimum value which can be held in a #gshort.
</para>


<!-- ##### MACRO G_MINSSIZE ##### -->
<para>
The minimum value which can be held in a #gssize.
</para>

@Since: 2.14

<!-- ##### MACRO G_MODULE_EXPORT ##### -->
<para>
Used to declare functions exported by modules. This is a no-op on Linux and
Unices, but when compiling for Windows, it marks a symbol to be exported from
the library or executable being built.
</para>


<!-- ##### MACRO G_MODULE_IMPORT ##### -->
<para>
Used to declare functions imported from modules.
</para>


<!-- ##### MACRO G_MODULE_SUFFIX ##### -->
<para>
Expands to the proper shared library suffix for the current platform
without the leading dot. For the most Unices and Linux this is "so",
for some HP-UX versions this is "sl" and for Windows this is "dll".
</para>


<!-- ##### MACRO G_THREADS_ENABLED ##### -->

<para>
This macro is defined if GLib was compiled with thread support. This
does not necessarily mean that there is a thread implementation
available, but it does mean that the infrastructure is in place and
that once you provide a thread implementation to g_thread_init(), GLib
will be multi-thread safe. If #G_THREADS_ENABLED is not defined, then
Glib is not, and cannot be, multi-thread safe.
</para>


<!-- ##### MACRO NAME_MAX ##### -->
<para>
Provided for UNIX emulation on Windows; equivalent to UNIX macro 
%NAME_MAX, which is the maximum length of a single path component.
i.e. just the <filename>foo</filename> in <filename>/usr/bin/foo</filename>.
</para>


<!-- ##### MACRO _ ##### -->
<para>
Marks a string for translation, gets replaced with the translated string
at runtime.
</para>

@String: the string to be translated
@Since: 2.4

<!-- ##### MACRO access ##### -->
<para>

</para>


<!-- ##### MACRO close ##### -->
<para>

</para>


<!-- ##### FUNCTION closedir ##### -->
<para>
Provided for UNIX emulation on Windows; see documentation for <function>closedir()</function>
in any UNIX manual.
</para>

@Param1: 
@Returns: 

<!-- ##### MACRO fdopen ##### -->
<para>

</para>


<!-- ##### MACRO ftruncate ##### -->
<para>
Provided for UNIX emulation on Windows; see documentation for ftruncate()
in any UNIX manual.
</para>

@fd: 
@size: 

<!-- ##### FUNCTION g_channel_error_from_errno ##### -->
<para>

</para>

@en: 
@Returns: 

<!-- ##### FUNCTION g_channel_error_quark ##### -->
<para>

</para>

@Returns: 

<!-- ##### FUNCTION g_convert_error_quark ##### -->
<para>

</para>

@Returns: 

<!-- ##### FUNCTION g_desktop_entry_escape_strings ##### -->
<para>

</para>

@entry: 
@should_escape: 

<!-- ##### FUNCTION g_desktop_entry_free ##### -->
<para>

</para>

@entry: 

<!-- ##### FUNCTION g_desktop_entry_get_boolean ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_boolean_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@length: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_groups ##### -->
<para>

</para>

@entry: 
@length: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_integer ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_integer_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@length: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_keys ##### -->
<para>

</para>

@entry: 
@group_name: 
@length: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_locale_string ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@locale: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_locale_string_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@locale: 
@length: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_start_group ##### -->
<para>

</para>

@entry: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_string ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_get_string_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@length: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_has_group ##### -->
<para>

</para>

@entry: 
@group_name: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_has_key ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_new ##### -->
<para>

</para>

@flags: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_new_from_data ##### -->
<para>

</para>

@data: 
@length: 
@legal_start_groups: 
@flags: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_new_from_data_dirs ##### -->
<para>

</para>

@file: 
@full_path: 
@legal_start_groups: 
@flags: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_new_from_file ##### -->
<para>

</para>

@file: 
@legal_start_groups: 
@flags: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_desktop_entry_remove_group ##### -->
<para>

</para>

@entry: 
@group_name: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_remove_key ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_boolean ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@boolean: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_boolean_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@list: 
@length: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_integer ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@integer: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_integer_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@list: 
@length: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_locale_string ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@locale: 
@string: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_locale_string_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@locale: 
@list: 
@length: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_string ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@string: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_set_string_list ##### -->
<para>

</para>

@entry: 
@group_name: 
@key: 
@list: 
@length: 
@error: 

<!-- ##### FUNCTION g_desktop_entry_to_data ##### -->
<para>

</para>

@entry: 
@length: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_file_replace ##### -->
<para>

</para>

@filename: 
@contents: 
@length: 
@error: 
@Returns: 

<!-- ##### FUNCTION g_format_file_size_for_display ##### -->
<para>

</para>

@size: 
@Returns: 

<!-- ##### FUNCTION g_io_channel_error_quark ##### -->
<para>

</para>

@Returns: 

<!-- ##### VARIABLE g_log_domain_glib ##### -->
<para>
The log domain used for messages logged by GLib itself.
</para>


<!-- ##### FUNCTION g_main_add_poll ##### -->
<para>
Adds a file descriptor to be polled.
This is usually combined with g_source_add() to add an event source.
The event source's check function will typically test the revents
field in the #GPollFD struct and return TRUE if events need to be processed.
</para>

@fd: a #GPollFD, which is a file descriptor together with a bitwise
combination of #GIOCondition flags determining which events to poll for.
@priority: the priority of the poll, which should be the same as the priority
used for g_source_add() to ensure that the file descriptor is polled whenever
the results may be needed.
See #G_PRIORITY_DEFAULT, #G_PRIORITY_DEFAULT_IDLE, #G_PRIORITY_HIGH,
#G_PRIORITY_HIGH_IDLE, and #G_PRIORITY_LOW.

<!-- ##### FUNCTION g_main_context_get ##### -->
<para>

</para>

@thread: 
@Returns: 

<!-- ##### FUNCTION g_main_loop_destroy ##### -->
<para>

</para>

@loop: 

<!-- ##### FUNCTION g_main_remove_poll ##### -->
<para>
Removes a file descriptor from the list being polled.
</para>

@fd: the #GPollFD to remove.

<!-- ##### FUNCTION g_main_win32_get_poll_func ##### -->
<para>

</para>

@Returns: 

<!-- ##### FUNCTION g_mem_check ##### -->
<para>
Checks if the given memory has already been freed. If it has it outputs
a warning message.
To use this function you must configure glib with the flag
'--enable-mem-check=yes' before compiling.
</para>

@mem: the memory to check.

<!-- ##### MACRO g_memmove ##### -->
<para>

</para>

@dest: 
@src: 
@len: 

<!-- ##### FUNCTION g_module_build_path ##### -->
<para>
A portable way to build the filename of a module. The platform-specific
prefix and suffix are added to the filename, if needed, and the result is
added to the directory, using the correct separator character.
</para>
<para>
The directory should specify the directory where the module can be found.
It can be %NULL or an empty string to indicate that the module is in a standard
platform-specific directory, though this is not recommended since the
wrong module may be found.
</para>
<para>
For example, calling g_module_build_path() on a Linux system with a @directory
of <filename>/lib</filename> and a @module_name of "mylibrary" will return 
<filename>/lib/libmylibrary.so</filename>. On a Windows system, using 
<filename>\Windows</filename> as the directory it will return
<filename>\Windows\mylibrary.dll</filename>.
</para>

@directory: the directory where the module is. This can be %NULL or the empty
string to indicate that the standard platform-specific directories will be 
used, though that is not recommended.
@module_name: the name of the module.
@Returns: the complete path of the module, including the standard library
prefix and suffix. This should be freed when no longer needed.

<!-- ##### FUNCTION g_module_close ##### -->
<para>
Closes a module.
</para>

@module: a #GModule to close.
@Returns: %TRUE on success.

<!-- ##### FUNCTION g_module_error ##### -->
<para>
Gets a string describing the last module error.
</para>

@Returns: a string describing the last module error.

<!-- ##### FUNCTION g_module_make_resident ##### -->
<para>
Ensures that a module will never be unloaded.
Any future g_module_close() calls on the module will be ignored.
</para>

@module: a #GModule to make permanently resident.

<!-- ##### FUNCTION g_module_name ##### -->
<para>
Gets the filename from a #GModule.
</para>

@module: a #GModule.
@Returns: the filename of the module, or "main" if the module is the main
program itself.

<!-- ##### FUNCTION g_module_open ##### -->
<para>
Opens a module. If the module has already been opened, its reference
count is incremented. 
</para>

<para>
First of all g_module_open() tries to open @file_name as a module. If
that fails and @file_name has the ".la"-suffix (and is a libtool archive) 
it tries to open the corresponding module. If that fails and it doesn't 
have the proper module suffix for the platform (#G_MODULE_SUFFIX), this 
suffix will be appended and the corresponding module will be opended. If 
that fails and @file_name doesn't have the ".la"-suffix, this suffix is 
appended and g_module_open() tries to open the corresponding module. If 
eventually that fails as well, %NULL is returned.
</para>

@file_name: the name of the file containing the module, or %NULL to obtain
  a #GModule representing the main program itself.
@flags: the flags used for opening the module. This can be the logical
OR of any of the #GModuleFlags.
@Returns: a #GModule on success, or %NULL on failure.

<!-- ##### FUNCTION g_module_supported ##### -->
<para>
Checks if modules are supported on the current platform.
</para>

@Returns: %TRUE if modules are supported.

<!-- ##### FUNCTION g_module_symbol ##### -->
<para>
Gets a symbol pointer from a module, such as one exported by #G_MODULE_EXPORT.
</para>
<para>
Note that a valid symbol can be %NULL.
</para>

@module: a #GModule.
@symbol_name: the name of the symbol to find.
@symbol: returns the pointer to the symbol value.
@Returns: %TRUE on success.

<!-- ##### FUNCTION g_regex_error_quark ##### -->
<para>

</para>

@Returns: 

<!-- ##### FUNCTION g_regex_free ##### -->
<para>

</para>

@regex: 

<!-- ##### FUNCTION g_scanner_stat_mode ##### -->
<para>
Gets the file attributes.
This is the <structfield>st_mode</structfield> field from the
<structname>stat</structname> structure. See the <function>stat()</function>
documentation.
</para>

@filename: the file name.
@Returns: the file attributes.

<!-- ##### FUNCTION g_set_error_handler ##### -->
<para>
Sets the function to be called to handle error messages.
This function is deprecated in favour of the new logging facilities.
</para>

@func: the function to be called to handle error messages.
@Returns: the old error handler.

<!-- ##### FUNCTION g_set_message_handler ##### -->
<para>
Sets the function to be called to handle messages.
This function is deprecated in favour of the new logging facilities.
</para>

@func: the function to be called to handle normal messages.
@Returns: the old message handler.

<!-- ##### FUNCTION g_set_warning_handler ##### -->
<para>
Sets the function to be called to handle warning messages.
This function is deprecated in favour of the new logging facilities.
</para>

@func: the function to be called to handle warning messages.
@Returns: the old warning handler.

<!-- ##### FUNCTION g_source_add ##### -->
<para>
</para>

@priority: 
@can_recurse: 
@funcs: 
@source_data: 
@user_data: 
@notify: 
@Returns: 
@source: 
@context: 

<!-- ##### FUNCTION g_source_connect ##### -->
<para>

</para>

@source: 
@func: 
@data: 
@notify: 

<!-- ##### FUNCTION g_source_connect_indirect ##### -->
<para>

</para>

@source: 
@callback_data: 
@callback_funcs: 

<!-- ##### FUNCTION g_source_remove_by_source_data ##### -->
<para>
Removes the first event source found with the given source data.
</para>
<para>
Event sources are sorted with the highest priority first. Sources with equal
priority are stored in the order in which they were added.
</para>

@source_data: the source data, which contains information specific to the
type of source.
@Returns: TRUE if an event source was found and removed.

<!-- ##### FUNCTION g_static_private_get_for_thread ##### -->
<para>

</para>

@private_key: 
@thread: 
@Returns: 

<!-- ##### FUNCTION g_static_private_set_for_thread ##### -->
<para>

</para>

@private_key: 
@thread: 
@data: 
@notify: 

<!-- ##### MACRO g_string ##### -->
<para>
Turns the argument into a string literal by using the '#' stringizing operator.
</para>

@x: text to convert to a literal string.

<!-- ##### FUNCTION g_warn_message ##### -->
<para>

</para>

@domain: 
@file: 
@line: 
@func: 
@warnexpr: 

<!-- ##### MACRO getcwd ##### -->
<para>

</para>


<!-- ##### MACRO getpid ##### -->
<para>

</para>


<!-- ##### TYPEDEF gint16 ##### -->
<para>
A signed integer guaranteed to be 16 bits on all platforms.
Values of this type can range from -32,768 to 32,767.
</para>


<!-- ##### TYPEDEF gint32 ##### -->
<para>
A signed integer guaranteed to be 32 bits on all platforms.
Values of this type can range from -2,147,483,648 to 2,147,483,647.
</para>


<!-- ##### TYPEDEF gint64 ##### -->
<para>
A signed integer guaranteed to be 64 bits on all platforms.
Values of this type can range from -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807.
</para>


<!-- ##### TYPEDEF gint8 ##### -->
<para>
A signed integer guaranteed to be 8 bits on all platforms.
Values of this type can range from -128 to 127.
</para>


<!-- ##### TYPEDEF goffset ##### -->
<para>
A signed integer type that is used for file offsets, corresponding to the 
C99 type off64_t.
</para>

Since: 2.14


<!-- ##### TYPEDEF gsize ##### -->
<para>
An unsigned integer type of the result of the sizeof operator, corresponding
to the size_t type defined in C99. This type is wide enough to hold the numeric
value of a pointer, so it is usually 32bit wide on a 32bit platform and
64bit wide on a 64bit platform.
</para>


<!-- ##### TYPEDEF gssize ##### -->
<para>
A signed variant of gsize, corresponding to the ssize_t defined on most platforms.
</para>


<!-- ##### TYPEDEF guint16 ##### -->
<para>
An unsigned integer guaranteed to be 16 bits on all platforms.
Values of this type can range from 0 to 65,535.
</para>


<!-- ##### TYPEDEF guint32 ##### -->
<para>
An unsigned integer guaranteed to be 32 bits on all platforms.
Values of this type can range from 0 to 4,294,967,295.
</para>


<!-- ##### TYPEDEF guint8 ##### -->
<para>
An unsigned integer guaranteed to be 8 bits on all platforms.
Values of this type can range from 0 to 255.
</para>


<!-- ##### MACRO lseek ##### -->
<para>

</para>


<!-- ##### MACRO open ##### -->
<para>

</para>


<!-- ##### FUNCTION opendir ##### -->
<para>
Provided for UNIX emulation on Windows; see documentation for <function>opendir()</function>
in any UNIX manual.
</para>

@Param1: 
@Returns: 

<!-- ##### MACRO pclose ##### -->
<para>

</para>


<!-- ##### MACRO pipe ##### -->
<para>
Provided for UNIX emulation on Windows; see documentation for pipe()
in any UNIX manual.
</para>

@phandles: file descriptors, the first one for reading, the second one for writing.

<!-- ##### MACRO popen ##### -->
<para>

</para>


<!-- ##### MACRO read ##### -->
<para>

</para>


<!-- ##### MACRO readdir ##### -->
<para>
Provided for UNIX emulation on Windows; see documentation for <function>readdir()</function>
in any UNIX manual.
</para>


<!-- ##### FUNCTION rewinddir ##### -->
<para>
Provided for UNIX emulation on Windows; see documentation for <function>rewinddir()</function>
in any UNIX manual.
</para>

@Param1: 

<!-- ##### MACRO write ##### -->
<para>

</para>


