+++ /dev/null
-<!-- ##### 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/limits.sgml.sgml:Image ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/limits.sgml.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/limits.sgml.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/limits.sgml.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/limits.sgml.sgml:Stability_Level ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/limits.sgml.sgml:Title ##### -->
-Version Information
-
-
-<!-- ##### 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:
-
-<!-- ##### 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:
-
-<!-- ##### 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 GTimeSpec ##### -->
-<para>
-
-</para>
-
-@tv_sec:
-@tv_nsec:
-
-<!-- ##### USER_FUNCTION GWarningFunc ##### -->
-<para>
-Specifies the type of function passed to g_set_warning_handler().
-</para>
-
-@str: the warning message.
-
-<!-- ##### 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_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 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 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.
-
-<!-- ##### 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_variant_get_byte_array ##### -->
-<para>
-
-</para>
-
-@value:
-@length:
-@Returns:
-
-<!-- ##### FUNCTION g_variant_new_byte_array ##### -->
-<para>
-
-</para>
-
-@array:
-@length:
-@Returns:
-
-<!-- ##### FUNCTION g_warn_message ##### -->
-<para>
-
-</para>
-
-@domain:
-@file:
-@line:
-@func:
-@warnexpr:
-
-<!-- ##### MACRO getcwd ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### MACRO getpid ##### -->
-<para>
-
-</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>
-
-