<refentry id="glib-Key-value-file-parser">
<refmeta>
<refentrytitle role="top_of_page" id="glib-Key-value-file-parser.top_of_page">Key-value file parser</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GLIB Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Key-value file parser</refname>
<refpurpose>parses <filename>.ini</filename>-like config files</refpurpose>
</refnamediv>

<refsynopsisdiv id="glib-Key-value-file-parser.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>

#include &lt;glib.h&gt;

                    <link linkend="GKeyFile">GKeyFile</link>;
#define             <link linkend="G-KEY-FILE-ERROR--CAPS">G_KEY_FILE_ERROR</link>
enum                <link linkend="GKeyFileError">GKeyFileError</link>;
enum                <link linkend="GKeyFileFlags">GKeyFileFlags</link>;

<link linkend="GKeyFile">GKeyFile</link> *          <link linkend="g-key-file-new">g_key_file_new</link>                      (void);
<link linkend="void">void</link>                <link linkend="g-key-file-free">g_key_file_free</link>                     (<link linkend="GKeyFile">GKeyFile</link> *key_file);
<link linkend="void">void</link>                <link linkend="g-key-file-set-list-separator">g_key_file_set_list_separator</link>       (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         <link linkend="gchar">gchar</link> separator);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-load-from-file">g_key_file_load_from_file</link>           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *file,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-load-from-data">g_key_file_load_from_data</link>           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *data,
                                                         <link linkend="gsize">gsize</link> length,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-load-from-data-dirs">g_key_file_load_from_data_dirs</link>      (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *file,
                                                         <link linkend="gchar">gchar</link> **full_path,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-load-from-dirs">g_key_file_load_from_dirs</link>           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *file,
                                                         const <link linkend="gchar">gchar</link> **search_dirs,
                                                         <link linkend="gchar">gchar</link> **full_path,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gchar">gchar</link> *             <link linkend="g-key-file-to-data">g_key_file_to_data</link>                  (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gchar">gchar</link> *             <link linkend="g-key-file-get-start-group">g_key_file_get_start_group</link>          (<link linkend="GKeyFile">GKeyFile</link> *key_file);
<link linkend="gchar">gchar</link> **            <link linkend="g-key-file-get-groups">g_key_file_get_groups</link>               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         <link linkend="gsize">gsize</link> *length);
<link linkend="gchar">gchar</link> **            <link linkend="g-key-file-get-keys">g_key_file_get_keys</link>                 (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-has-group">g_key_file_has_group</link>                (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-has-key">g_key_file_has_key</link>                  (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);

<link linkend="gchar">gchar</link> *             <link linkend="g-key-file-get-value">g_key_file_get_value</link>                (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gchar">gchar</link> *             <link linkend="g-key-file-get-string">g_key_file_get_string</link>               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gchar">gchar</link> *             <link linkend="g-key-file-get-locale-string">g_key_file_get_locale_string</link>        (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-get-boolean">g_key_file_get_boolean</link>              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gint">gint</link>                <link linkend="g-key-file-get-integer">g_key_file_get_integer</link>              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gdouble">gdouble</link>             <link linkend="g-key-file-get-double">g_key_file_get_double</link>               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gchar">gchar</link> **            <link linkend="g-key-file-get-string-list">g_key_file_get_string_list</link>          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gchar">gchar</link> **            <link linkend="g-key-file-get-locale-string-list">g_key_file_get_locale_string_list</link>   (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link> *          <link linkend="g-key-file-get-boolean-list">g_key_file_get_boolean_list</link>         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gint">gint</link> *              <link linkend="g-key-file-get-integer-list">g_key_file_get_integer_list</link>         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gdouble">gdouble</link> *           <link linkend="g-key-file-get-double-list">g_key_file_get_double_list</link>          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gchar">gchar</link> *             <link linkend="g-key-file-get-comment">g_key_file_get_comment</link>              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);

<link linkend="void">void</link>                <link linkend="g-key-file-set-value">g_key_file_set_value</link>                (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *value);
<link linkend="void">void</link>                <link linkend="g-key-file-set-string">g_key_file_set_string</link>               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *string);
<link linkend="void">void</link>                <link linkend="g-key-file-set-locale-string">g_key_file_set_locale_string</link>        (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         const <link linkend="gchar">gchar</link> *string);
<link linkend="void">void</link>                <link linkend="g-key-file-set-boolean">g_key_file_set_boolean</link>              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gboolean">gboolean</link> value);
<link linkend="void">void</link>                <link linkend="g-key-file-set-integer">g_key_file_set_integer</link>              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gint">gint</link> value);
<link linkend="void">void</link>                <link linkend="g-key-file-set-double">g_key_file_set_double</link>               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gdouble">gdouble</link> value);
<link linkend="void">void</link>                <link linkend="g-key-file-set-string-list">g_key_file_set_string_list</link>          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> * const list[],
                                                         <link linkend="gsize">gsize</link> length);
<link linkend="void">void</link>                <link linkend="g-key-file-set-locale-string-list">g_key_file_set_locale_string_list</link>   (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         const <link linkend="gchar">gchar</link> * const list[],
                                                         <link linkend="gsize">gsize</link> length);
<link linkend="void">void</link>                <link linkend="g-key-file-set-boolean-list">g_key_file_set_boolean_list</link>         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gboolean">gboolean</link> list[],
                                                         <link linkend="gsize">gsize</link> length);
<link linkend="void">void</link>                <link linkend="g-key-file-set-integer-list">g_key_file_set_integer_list</link>         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gint">gint</link> list[],
                                                         <link linkend="gsize">gsize</link> length);
<link linkend="void">void</link>                <link linkend="g-key-file-set-double-list">g_key_file_set_double_list</link>          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gdouble">gdouble</link> list[],
                                                         <link linkend="gsize">gsize</link> length);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-set-comment">g_key_file_set_comment</link>              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *comment,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-remove-group">g_key_file_remove_group</link>             (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-remove-key">g_key_file_remove_key</link>               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);
<link linkend="gboolean">gboolean</link>            <link linkend="g-key-file-remove-comment">g_key_file_remove_comment</link>           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);

#define             <link linkend="G-KEY-FILE-DESKTOP-GROUP--CAPS">G_KEY_FILE_DESKTOP_GROUP</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-TYPE--CAPS">G_KEY_FILE_DESKTOP_KEY_TYPE</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-VERSION--CAPS">G_KEY_FILE_DESKTOP_KEY_VERSION</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-NAME--CAPS">G_KEY_FILE_DESKTOP_KEY_NAME</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-GENERIC-NAME--CAPS">G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-NO-DISPLAY--CAPS">G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-COMMENT--CAPS">G_KEY_FILE_DESKTOP_KEY_COMMENT</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-ICON--CAPS">G_KEY_FILE_DESKTOP_KEY_ICON</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-HIDDEN--CAPS">G_KEY_FILE_DESKTOP_KEY_HIDDEN</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-ONLY-SHOW-IN--CAPS">G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-NOT-SHOW-IN--CAPS">G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-TRY-EXEC--CAPS">G_KEY_FILE_DESKTOP_KEY_TRY_EXEC</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-EXEC--CAPS">G_KEY_FILE_DESKTOP_KEY_EXEC</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-PATH--CAPS">G_KEY_FILE_DESKTOP_KEY_PATH</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-TERMINAL--CAPS">G_KEY_FILE_DESKTOP_KEY_TERMINAL</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-MIME-TYPE--CAPS">G_KEY_FILE_DESKTOP_KEY_MIME_TYPE</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-CATEGORIES--CAPS">G_KEY_FILE_DESKTOP_KEY_CATEGORIES</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-STARTUP-NOTIFY--CAPS">G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-STARTUP-WM-CLASS--CAPS">G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-KEY-URL--CAPS">G_KEY_FILE_DESKTOP_KEY_URL</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-TYPE-APPLICATION--CAPS">G_KEY_FILE_DESKTOP_TYPE_APPLICATION</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-TYPE-LINK--CAPS">G_KEY_FILE_DESKTOP_TYPE_LINK</link>
#define             <link linkend="G-KEY-FILE-DESKTOP-TYPE-DIRECTORY--CAPS">G_KEY_FILE_DESKTOP_TYPE_DIRECTORY</link>
</synopsis>
</refsynopsisdiv>









<refsect1 id="glib-Key-value-file-parser.description" role="desc">
<title role="desc.title">Description</title>
<para>
<link linkend="GKeyFile"><type>GKeyFile</type></link> lets you parse, edit or create files containing groups of
key-value pairs, which we call <firstterm>key files</firstterm> for
lack of a better name. Several freedesktop.org specifications use
key files now, e.g the
<ulink url="http://freedesktop.org/Standards/desktop-entry-spec">Desktop
Entry Specification</ulink> and the
<ulink url="http://freedesktop.org/Standards/icon-theme-spec">Icon
Theme Specification</ulink>.
</para>
<para>
The syntax of key files is described in detail in the
<ulink url="http://freedesktop.org/Standards/desktop-entry-spec">Desktop
Entry Specification</ulink>, here is a quick summary: Key files
consists of groups of key-value pairs, interspersed with comments.
</para>
<informalexample><programlisting>
# this is just an example
# there can be comments before the first group
[First Group]
Name=Key File Example\tthis value shows\nescaping
# localized strings are stored in multiple key-value pairs
Welcome=Hello
Welcome[de]=Hallo
Welcome[fr_FR]=Bonjour
Welcome[it]=Ciao
Welcome[be@latin]=Hello
[Another Group]
Numbers=2;20;-200;0
Booleans=true;false;true;true
</programlisting></informalexample>
<para>
Lines beginning with a '#' and blank lines are considered comments.
</para>
<para>
Groups are started by a header line containing the group name enclosed
in '[' and ']', and ended implicitly by the start of the next group or
the end of the file. Each key-value pair must be contained in a group.
</para>
<para>
Key-value pairs generally have the form <literal>key=value</literal>,
with the exception of localized strings, which have the form
<literal>key[locale]=value</literal>, with a locale identifier of the form
<literal>lang_COUNTRY<parameter>MODIFIER</parameter></literal> where <literal>COUNTRY</literal> and
<literal>MODIFIER</literal> are optional. Space before and after the
'=' character are ignored. Newline, tab, carriage return and backslash
characters in value are escaped as \n, \t, \r, and \\, respectively.
To preserve leading spaces in values, these can also be escaped as \s.
</para>
<para>
Key files can store strings (possibly with localized variants), integers,
booleans and lists of these. Lists are separated by a separator character,
typically ';' or ','. To use the list separator character in a value in
a list, it has to be escaped by prefixing it with a backslash.
</para>
<para>
This syntax is obviously inspired by the <filename>.ini</filename>
files commonly met on Windows, but there are some important differences:
<itemizedlist>
<listitem><para>
<filename>.ini</filename> files use the ';' character to begin comments,
 key files use the '#' character.
</para></listitem>
<listitem><para>
Key files do not allow for ungrouped keys meaning only comments can precede the first group.
</para></listitem>
<listitem><para>
Key files are always encoded in UTF-8.
</para></listitem>
<listitem><para>
Key and Group names are case-sensitive, for example a group called
<literal>[GROUP]</literal> is a different group from <literal>[group]</literal>.
</para></listitem>
<listitem><para>
<filename>.ini</filename> files don't have a strongly typed boolean entry type, they only
have <literal>GetProfileInt</literal>. In <structname>GKeyFile</structname> only
<literal>true</literal> and <literal>false</literal> (in lower case) are allowed.
</para></listitem>
</itemizedlist>
</para>
<para>
Note that in contrast to the
<ulink url="http://freedesktop.org/Standards/desktop-entry-spec">Desktop
Entry Specification</ulink>, groups in key files may contain the same
key multiple times; the last entry wins. Key files may also contain
multiple groups with the same name; they are merged together.
Another difference is that keys and group names in key files are not
restricted to ASCII characters.
</para>
</refsect1>

<refsect1 id="glib-Key-value-file-parser.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="GKeyFile" role="struct">
<title>GKeyFile</title>
<indexterm zone="GKeyFile"><primary sortas="KeyFile">GKeyFile</primary></indexterm><programlisting>typedef struct _GKeyFile GKeyFile;</programlisting>
<para>
The <structname>GKeyFile</structname> struct contains only private fields
and should not be used directly.
</para></refsect2>
<refsect2 id="G-KEY-FILE-ERROR--CAPS" role="macro">
<title>G_KEY_FILE_ERROR</title>
<indexterm zone="G-KEY-FILE-ERROR--CAPS"><primary sortas="KEY_FILE_ERROR">G_KEY_FILE_ERROR</primary></indexterm><programlisting>#define G_KEY_FILE_ERROR g_key_file_error_quark()
</programlisting>
<para>
Error domain for key file parsing. Errors in this domain will
be from the <link linkend="GKeyFileError"><type>GKeyFileError</type></link> enumeration. See <link linkend="GError"><type>GError</type></link> for information on
error domains.
</para></refsect2>
<refsect2 id="GKeyFileError" role="enum">
<title>enum GKeyFileError</title>
<indexterm zone="GKeyFileError"><primary sortas="KeyFileError">GKeyFileError</primary></indexterm><programlisting>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;
</programlisting>
<para>
Error codes returned by key file parsing.
</para><variablelist role="enum">
<varlistentry id="G-KEY-FILE-ERROR-UNKNOWN-ENCODING--CAPS" role="constant">
<term><literal>G_KEY_FILE_ERROR_UNKNOWN_ENCODING</literal></term>
<listitem><simpara>the text being parsed was in an unknown encoding
</simpara></listitem>
</varlistentry>
<varlistentry id="G-KEY-FILE-ERROR-PARSE--CAPS" role="constant">
<term><literal>G_KEY_FILE_ERROR_PARSE</literal></term>
<listitem><simpara>document was ill-formed
</simpara></listitem>
</varlistentry>
<varlistentry id="G-KEY-FILE-ERROR-NOT-FOUND--CAPS" role="constant">
<term><literal>G_KEY_FILE_ERROR_NOT_FOUND</literal></term>
<listitem><simpara>the file was not found
</simpara></listitem>
</varlistentry>
<varlistentry id="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS" role="constant">
<term><literal>G_KEY_FILE_ERROR_KEY_NOT_FOUND</literal></term>
<listitem><simpara>a requested key was not found
</simpara></listitem>
</varlistentry>
<varlistentry id="G-KEY-FILE-ERROR-GROUP-NOT-FOUND--CAPS" role="constant">
<term><literal>G_KEY_FILE_ERROR_GROUP_NOT_FOUND</literal></term>
<listitem><simpara>a requested group was not found
</simpara></listitem>
</varlistentry>
<varlistentry id="G-KEY-FILE-ERROR-INVALID-VALUE--CAPS" role="constant">
<term><literal>G_KEY_FILE_ERROR_INVALID_VALUE</literal></term>
<listitem><simpara>a value could not be parsed
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2 id="GKeyFileFlags" role="enum">
<title>enum GKeyFileFlags</title>
<indexterm zone="GKeyFileFlags"><primary sortas="KeyFileFlags">GKeyFileFlags</primary></indexterm><programlisting>typedef enum
{
  G_KEY_FILE_NONE              = 0,
  G_KEY_FILE_KEEP_COMMENTS     = 1 &lt;&lt; 0,
  G_KEY_FILE_KEEP_TRANSLATIONS = 1 &lt;&lt; 1
} GKeyFileFlags;
</programlisting>
<para>
Flags which influence the parsing.
</para><variablelist role="enum">
<varlistentry id="G-KEY-FILE-NONE--CAPS" role="constant">
<term><literal>G_KEY_FILE_NONE</literal></term>
<listitem><simpara>No flags, default behaviour
</simpara></listitem>
</varlistentry>
<varlistentry id="G-KEY-FILE-KEEP-COMMENTS--CAPS" role="constant">
<term><literal>G_KEY_FILE_KEEP_COMMENTS</literal></term>
<listitem><simpara>Use this flag if you plan to write the (possibly modified)
  contents of the key file back to a file; otherwise all comments will be lost when
  the key file is written back.
</simpara></listitem>
</varlistentry>
<varlistentry id="G-KEY-FILE-KEEP-TRANSLATIONS--CAPS" role="constant">
<term><literal>G_KEY_FILE_KEEP_TRANSLATIONS</literal></term>
<listitem><simpara>Use this flag if you plan to write the (possibly modified)
  contents of the key file back to a file; otherwise only the translations for the current
  language will be written back.
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2 id="g-key-file-new" role="function" condition="since:2.6">
<title>g_key_file_new ()</title>
<indexterm zone="g-key-file-new" role="2.6"><primary sortas="key_file_new">g_key_file_new</primary></indexterm><programlisting><link linkend="GKeyFile">GKeyFile</link> *          g_key_file_new                      (void);</programlisting>
<para>
Creates a new empty <link linkend="GKeyFile"><type>GKeyFile</type></link> object. Use
<link linkend="g-key-file-load-from-file"><function>g_key_file_load_from_file()</function></link>, <link linkend="g-key-file-load-from-data"><function>g_key_file_load_from_data()</function></link>,
<link linkend="g-key-file-load-from-dirs"><function>g_key_file_load_from_dirs()</function></link> or <link linkend="g-key-file-load-from-data-dirs"><function>g_key_file_load_from_data_dirs()</function></link> to
read an existing key file.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> an empty <link linkend="GKeyFile"><type>GKeyFile</type></link>.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-free" role="function" condition="since:2.6">
<title>g_key_file_free ()</title>
<indexterm zone="g-key-file-free" role="2.6"><primary sortas="key_file_free">g_key_file_free</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_free                     (<link linkend="GKeyFile">GKeyFile</link> *key_file);</programlisting>
<para>
Frees a <link linkend="GKeyFile"><type>GKeyFile</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-list-separator" role="function" condition="since:2.6">
<title>g_key_file_set_list_separator ()</title>
<indexterm zone="g-key-file-set-list-separator" role="2.6"><primary sortas="key_file_set_list_separator">g_key_file_set_list_separator</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_list_separator       (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         <link linkend="gchar">gchar</link> separator);</programlisting>
<para>
Sets the character which is used to separate
values in lists. Typically ';' or ',' are used
as separators. The default list separator is ';'.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link> 
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>separator</parameter>&#160;:</term>
<listitem><simpara> the separator
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-load-from-file" role="function" condition="since:2.6">
<title>g_key_file_load_from_file ()</title>
<indexterm zone="g-key-file-load-from-file" role="2.6"><primary sortas="key_file_load_from_file">g_key_file_load_from_file</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_load_from_file           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *file,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Loads a key file into an empty <link linkend="GKeyFile"><type>GKeyFile</type></link> structure.
If the file could not be loaded then <link linkend="error"><literal>error</literal></link> is set to 
either a <link linkend="GFileError"><type>GFileError</type></link> or <link linkend="GKeyFileError"><type>GKeyFileError</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> an empty <link linkend="GKeyFile"><type>GKeyFile</type></link> struct
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>file</parameter>&#160;:</term>
<listitem><simpara> the path of a filename to load, in the GLib filename encoding
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> flags from <link linkend="GKeyFileFlags"><type>GKeyFileFlags</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if a key file could be loaded, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-load-from-data" role="function" condition="since:2.6">
<title>g_key_file_load_from_data ()</title>
<indexterm zone="g-key-file-load-from-data" role="2.6"><primary sortas="key_file_load_from_data">g_key_file_load_from_data</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_load_from_data           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *data,
                                                         <link linkend="gsize">gsize</link> length,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Loads a key file from memory into an empty <link linkend="GKeyFile"><type>GKeyFile</type></link> structure.  
If the object cannot be created then <link linkend="error"><literal>error</literal></link> is set to a <link linkend="GKeyFileError"><type>GKeyFileError</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> an empty <link linkend="GKeyFile"><type>GKeyFile</type></link> struct
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&#160;:</term>
<listitem><simpara> key file loaded in memory
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> the length of <parameter>data</parameter> in bytes
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> flags from <link linkend="GKeyFileFlags"><type>GKeyFileFlags</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if a key file could be loaded, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-load-from-data-dirs" role="function" condition="since:2.6">
<title>g_key_file_load_from_data_dirs ()</title>
<indexterm zone="g-key-file-load-from-data-dirs" role="2.6"><primary sortas="key_file_load_from_data_dirs">g_key_file_load_from_data_dirs</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_load_from_data_dirs      (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *file,
                                                         <link linkend="gchar">gchar</link> **full_path,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
This function looks for a key file named <parameter>file</parameter> in the paths 
returned from <link linkend="g-get-user-data-dir"><function>g_get_user_data_dir()</function></link> and <link linkend="g-get-system-data-dirs"><function>g_get_system_data_dirs()</function></link>, 
loads the file into <parameter>key_file</parameter> and returns the file's full path in 
<parameter>full_path</parameter>.  If the file could not be loaded then an <link linkend="error"><literal>error</literal></link> is
set to either a <link linkend="GFileError"><type>GFileError</type></link> or <link linkend="GKeyFileError"><type>GKeyFileError</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> an empty <link linkend="GKeyFile"><type>GKeyFile</type></link> struct
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>file</parameter>&#160;:</term>
<listitem><simpara> a relative path to a filename to open and parse
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>full_path</parameter>&#160;:</term>
<listitem><simpara> return location for a string containing the full path
  of the file, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> flags from <link linkend="GKeyFileFlags"><type>GKeyFileFlags</type></link> 
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if a key file could be loaded, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> othewise
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-load-from-dirs" role="function" condition="since:2.14">
<title>g_key_file_load_from_dirs ()</title>
<indexterm zone="g-key-file-load-from-dirs" role="2.14"><primary sortas="key_file_load_from_dirs">g_key_file_load_from_dirs</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_load_from_dirs           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *file,
                                                         const <link linkend="gchar">gchar</link> **search_dirs,
                                                         <link linkend="gchar">gchar</link> **full_path,
                                                         <link linkend="GKeyFileFlags">GKeyFileFlags</link> flags,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
This function looks for a key file named <parameter>file</parameter> in the paths
specified in <parameter>search_dirs</parameter>, loads the file into <parameter>key_file</parameter> and
returns the file's full path in <parameter>full_path</parameter>.  If the file could not
be loaded then an <link linkend="error"><literal>error</literal></link> is set to either a <link linkend="GFileError"><type>GFileError</type></link> or
<link linkend="GKeyFileError"><type>GKeyFileError</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> an empty <link linkend="GKeyFile"><type>GKeyFile</type></link> struct
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>file</parameter>&#160;:</term>
<listitem><simpara> a relative path to a filename to open and parse
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>search_dirs</parameter>&#160;:</term>
<listitem><simpara> <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of directories to search
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>full_path</parameter>&#160;:</term>
<listitem><simpara> return location for a string containing the full path
  of the file, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>flags</parameter>&#160;:</term>
<listitem><simpara> flags from <link linkend="GKeyFileFlags"><type>GKeyFileFlags</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if a key file could be loaded, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.14</para></refsect2>
<refsect2 id="g-key-file-to-data" role="function" condition="since:2.6">
<title>g_key_file_to_data ()</title>
<indexterm zone="g-key-file-to-data" role="2.6"><primary sortas="key_file_to_data">g_key_file_to_data</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             g_key_file_to_data                  (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
This function outputs <parameter>key_file</parameter> as a string.  
</para>
<para>
Note that this function never reports an error,
so it is safe to pass <link linkend="NULL--CAPS"><literal>NULL</literal></link> as <parameter>error</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> return location for the length of the 
  returned string, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated string holding
  the contents of the <link linkend="GKeyFile"><type>GKeyFile</type></link> 

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-start-group" role="function" condition="since:2.6">
<title>g_key_file_get_start_group ()</title>
<indexterm zone="g-key-file-get-start-group" role="2.6"><primary sortas="key_file_get_start_group">g_key_file_get_start_group</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             g_key_file_get_start_group          (<link linkend="GKeyFile">GKeyFile</link> *key_file);</programlisting>
<para>
Returns the name of the start group of the file.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> The start group of the key file.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-groups" role="function" condition="since:2.6">
<title>g_key_file_get_groups ()</title>
<indexterm zone="g-key-file-get-groups" role="2.6"><primary sortas="key_file_get_groups">g_key_file_get_groups</primary></indexterm><programlisting><link linkend="gchar">gchar</link> **            g_key_file_get_groups               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         <link linkend="gsize">gsize</link> *length);</programlisting>
<para>
Returns all groups in the key file loaded with <parameter>key_file</parameter>.  
The array of returned groups will be <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated, so 
<parameter>length</parameter> may optionally be <link linkend="NULL--CAPS"><literal>NULL</literal></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> return location for the number of returned groups, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly-allocated <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of strings. 
  Use <link linkend="g-strfreev"><function>g_strfreev()</function></link> to free it.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-keys" role="function" condition="since:2.6">
<title>g_key_file_get_keys ()</title>
<indexterm zone="g-key-file-get-keys" role="2.6"><primary sortas="key_file_get_keys">g_key_file_get_keys</primary></indexterm><programlisting><link linkend="gchar">gchar</link> **            g_key_file_get_keys                 (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns all keys for the group name <parameter>group_name</parameter>.  The array of
returned keys will be <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated, so <parameter>length</parameter> may
optionally be <link linkend="NULL--CAPS"><literal>NULL</literal></link>. In the event that the <parameter>group_name</parameter> cannot
be found, <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and <parameter>error</parameter> is set to
<link linkend="G-KEY-FILE-ERROR-GROUP-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_GROUP_NOT_FOUND</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> return location for the number of keys returned, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly-allocated <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of strings. 
    Use <link linkend="g-strfreev"><function>g_strfreev()</function></link> to free it.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-has-group" role="function" condition="since:2.6">
<title>g_key_file_has_group ()</title>
<indexterm zone="g-key-file-has-group" role="2.6"><primary sortas="key_file_has_group">g_key_file_has_group</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_has_group                (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name);</programlisting>
<para>
Looks whether the key file has the group <parameter>group_name</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>group_name</parameter> is a part of <parameter>key_file</parameter>, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>
otherwise.
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-has-key" role="function" condition="since:2.6">
<title>g_key_file_has_key ()</title>
<indexterm zone="g-key-file-has-key" role="2.6"><primary sortas="key_file_has_key">g_key_file_has_key</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_has_key                  (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Looks whether the key file has the key <parameter>key</parameter> in the group
<parameter>group_name</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if <parameter>key</parameter> is a part of <parameter>group_name</parameter>, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>
otherwise.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-value" role="function" condition="since:2.6">
<title>g_key_file_get_value ()</title>
<indexterm zone="g-key-file-get-value" role="2.6"><primary sortas="key_file_get_value">g_key_file_get_value</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             g_key_file_get_value                (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the raw value associated with <parameter>key</parameter> under <parameter>group_name</parameter>. 
Use <link linkend="g-key-file-get-string"><function>g_key_file_get_string()</function></link> to retrieve an unescaped UTF-8 string. 
</para>
<para>
In the event the key cannot be found, <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and 
<parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>.  In the 
event that the <parameter>group_name</parameter> cannot be found, <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned 
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-GROUP-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_GROUP_NOT_FOUND</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated string or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the specified 
 key cannot be found.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-string" role="function" condition="since:2.6">
<title>g_key_file_get_string ()</title>
<indexterm zone="g-key-file-get-string" role="2.6"><primary sortas="key_file_get_string">g_key_file_get_string</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             g_key_file_get_string               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the string value associated with <parameter>key</parameter> under <parameter>group_name</parameter>.
Unlike <link linkend="g-key-file-get-value"><function>g_key_file_get_value()</function></link>, this function handles escape sequences
like \s.
</para>
<para>
In the event the key cannot be found, <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and 
<parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>.  In the 
event that the <parameter>group_name</parameter> cannot be found, <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned 
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-GROUP-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_GROUP_NOT_FOUND</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated string or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the specified 
  key cannot be found.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-locale-string" role="function" condition="since:2.6">
<title>g_key_file_get_locale_string ()</title>
<indexterm zone="g-key-file-get-locale-string" role="2.6"><primary sortas="key_file_get_locale_string">g_key_file_get_locale_string</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             g_key_file_get_locale_string        (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the value associated with <parameter>key</parameter> under <parameter>group_name</parameter>
translated in the given <parameter>locale</parameter> if available.  If <parameter>locale</parameter> is
<link linkend="NULL--CAPS"><literal>NULL</literal></link> then the current locale is assumed. 
</para>
<para>
If <parameter>key</parameter> cannot be found then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and <parameter>error</parameter> is set 
to <link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. If the value associated
with <parameter>key</parameter> cannot be interpreted or no suitable translation can
be found then the untranslated value is returned.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>locale</parameter>&#160;:</term>
<listitem><simpara> a locale identifier or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated string or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the specified 
  key cannot be found.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-boolean" role="function" condition="since:2.6">
<title>g_key_file_get_boolean ()</title>
<indexterm zone="g-key-file-get-boolean" role="2.6"><primary sortas="key_file_get_boolean">g_key_file_get_boolean</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_get_boolean              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the value associated with <parameter>key</parameter> under <parameter>group_name</parameter> as a
boolean. 
</para>
<para>
If <parameter>key</parameter> cannot be found then <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> is returned and <parameter>error</parameter> is set
to <link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. Likewise, if the value
associated with <parameter>key</parameter> cannot be interpreted as a boolean then <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>
is returned and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-INVALID-VALUE--CAPS"><type>G_KEY_FILE_ERROR_INVALID_VALUE</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the value associated with the key as a boolean, 
   or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> if the key was not found or could not be parsed.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-integer" role="function" condition="since:2.6">
<title>g_key_file_get_integer ()</title>
<indexterm zone="g-key-file-get-integer" role="2.6"><primary sortas="key_file_get_integer">g_key_file_get_integer</primary></indexterm><programlisting><link linkend="gint">gint</link>                g_key_file_get_integer              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the value associated with <parameter>key</parameter> under <parameter>group_name</parameter> as an
integer. 
</para>
<para>
If <parameter>key</parameter> cannot be found then 0 is returned and <parameter>error</parameter> is set to
<link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. Likewise, if the value associated
with <parameter>key</parameter> cannot be interpreted as an integer then 0 is returned
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-INVALID-VALUE--CAPS"><type>G_KEY_FILE_ERROR_INVALID_VALUE</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the value associated with the key as an integer, or
    0 if the key was not found or could not be parsed.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-double" role="function" condition="since:2.12">
<title>g_key_file_get_double ()</title>
<indexterm zone="g-key-file-get-double" role="2.12"><primary sortas="key_file_get_double">g_key_file_get_double</primary></indexterm><programlisting><link linkend="gdouble">gdouble</link>             g_key_file_get_double               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the value associated with <parameter>key</parameter> under <parameter>group_name</parameter> as a
double. If <parameter>group_name</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, the start_group is used.
</para>
<para>
If <parameter>key</parameter> cannot be found then 0.0 is returned and <parameter>error</parameter> is set to
<link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. Likewise, if the value associated
with <parameter>key</parameter> cannot be interpreted as a double then 0.0 is returned
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-INVALID-VALUE--CAPS"><type>G_KEY_FILE_ERROR_INVALID_VALUE</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the value associated with the key as a double, or
    0.0 if the key was not found or could not be parsed.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.12</para></refsect2>
<refsect2 id="g-key-file-get-string-list" role="function" condition="since:2.6">
<title>g_key_file_get_string_list ()</title>
<indexterm zone="g-key-file-get-string-list" role="2.6"><primary sortas="key_file_get_string_list">g_key_file_get_string_list</primary></indexterm><programlisting><link linkend="gchar">gchar</link> **            g_key_file_get_string_list          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the values associated with <parameter>key</parameter> under <parameter>group_name</parameter>.
</para>
<para>
In the event the key cannot be found, <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and
<parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>.  In the
event that the <parameter>group_name</parameter> cannot be found, <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-GROUP-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_GROUP_NOT_FOUND</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> return location for the number of returned strings, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated string array or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the specified 
  key cannot be found. The array should be freed with <link linkend="g-strfreev"><function>g_strfreev()</function></link>.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-locale-string-list" role="function" condition="since:2.6">
<title>g_key_file_get_locale_string_list ()</title>
<indexterm zone="g-key-file-get-locale-string-list" role="2.6"><primary sortas="key_file_get_locale_string_list">g_key_file_get_locale_string_list</primary></indexterm><programlisting><link linkend="gchar">gchar</link> **            g_key_file_get_locale_string_list   (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the values associated with <parameter>key</parameter> under <parameter>group_name</parameter>
translated in the given <parameter>locale</parameter> if available.  If <parameter>locale</parameter> is
<link linkend="NULL--CAPS"><literal>NULL</literal></link> then the current locale is assumed.
</para>
<para>
If <parameter>key</parameter> cannot be found then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and <parameter>error</parameter> is set 
to <link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. If the values associated
with <parameter>key</parameter> cannot be interpreted or no suitable translations
can be found then the untranslated values are returned. The 
returned array is <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated, so <parameter>length</parameter> may optionally 
be <link linkend="NULL--CAPS"><literal>NULL</literal></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>locale</parameter>&#160;:</term>
<listitem><simpara> a locale identifier or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> return location for the number of returned strings or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link> or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a newly allocated <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated string array
  or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the key isn't found. The string array should be freed
  with <link linkend="g-strfreev"><function>g_strfreev()</function></link>.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-boolean-list" role="function" condition="since:2.6">
<title>g_key_file_get_boolean_list ()</title>
<indexterm zone="g-key-file-get-boolean-list" role="2.6"><primary sortas="key_file_get_boolean_list">g_key_file_get_boolean_list</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> *          g_key_file_get_boolean_list         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the values associated with <parameter>key</parameter> under <parameter>group_name</parameter> as
booleans. 
</para>
<para>
If <parameter>key</parameter> cannot be found then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and <parameter>error</parameter> is set to
<link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. Likewise, if the values associated
with <parameter>key</parameter> cannot be interpreted as booleans then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-INVALID-VALUE--CAPS"><type>G_KEY_FILE_ERROR_INVALID_VALUE</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> the number of booleans returned
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the values associated with the key as a list of
   booleans, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the key was not found or could not be parsed.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-integer-list" role="function" condition="since:2.6">
<title>g_key_file_get_integer_list ()</title>
<indexterm zone="g-key-file-get-integer-list" role="2.6"><primary sortas="key_file_get_integer_list">g_key_file_get_integer_list</primary></indexterm><programlisting><link linkend="gint">gint</link> *              g_key_file_get_integer_list         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the values associated with <parameter>key</parameter> under <parameter>group_name</parameter> as
integers. 
</para>
<para>
If <parameter>key</parameter> cannot be found then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and <parameter>error</parameter> is set to
<link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. Likewise, if the values associated
with <parameter>key</parameter> cannot be interpreted as integers then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-INVALID-VALUE--CAPS"><type>G_KEY_FILE_ERROR_INVALID_VALUE</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> the number of integers returned
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the values associated with the key as a list of
    integers, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the key was not found or could not be parsed.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-get-double-list" role="function" condition="since:2.12">
<title>g_key_file_get_double_list ()</title>
<indexterm zone="g-key-file-get-double-list" role="2.12"><primary sortas="key_file_get_double_list">g_key_file_get_double_list</primary></indexterm><programlisting><link linkend="gdouble">gdouble</link> *           g_key_file_get_double_list          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gsize">gsize</link> *length,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Returns the values associated with <parameter>key</parameter> under <parameter>group_name</parameter> as
doubles. 
</para>
<para>
If <parameter>key</parameter> cannot be found then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned and <parameter>error</parameter> is set to
<link linkend="G-KEY-FILE-ERROR-KEY-NOT-FOUND--CAPS"><type>G_KEY_FILE_ERROR_KEY_NOT_FOUND</type></link>. Likewise, if the values associated
with <parameter>key</parameter> cannot be interpreted as doubles then <link linkend="NULL--CAPS"><literal>NULL</literal></link> is returned
and <parameter>error</parameter> is set to <link linkend="G-KEY-FILE-ERROR-INVALID-VALUE--CAPS"><type>G_KEY_FILE_ERROR_INVALID_VALUE</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> the number of doubles returned
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> the values associated with the key as a list of
    doubles, or <link linkend="NULL--CAPS"><literal>NULL</literal></link> if the key was not found or could not be parsed.

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.12</para></refsect2>
<refsect2 id="g-key-file-get-comment" role="function" condition="since:2.6">
<title>g_key_file_get_comment ()</title>
<indexterm zone="g-key-file-get-comment" role="2.6"><primary sortas="key_file_get_comment">g_key_file_get_comment</primary></indexterm><programlisting><link linkend="gchar">gchar</link> *             g_key_file_get_comment              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Retrieves a comment above <parameter>key</parameter> from <parameter>group_name</parameter>.
If <parameter>key</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link> then <parameter>comment</parameter> will be read from above 
<parameter>group_name</parameter>. If both <parameter>key</parameter> and <parameter>group_name</parameter> are <link linkend="NULL--CAPS"><literal>NULL</literal></link>, then 
<parameter>comment</parameter> will be read from above the first group in the file.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> a comment that should be freed with <link linkend="g-free"><function>g_free()</function></link>

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-value" role="function" condition="since:2.6">
<title>g_key_file_set_value ()</title>
<indexterm zone="g-key-file-set-value" role="2.6"><primary sortas="key_file_set_value">g_key_file_set_value</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_value                (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *value);</programlisting>
<para>
Associates a new value with <parameter>key</parameter> under <parameter>group_name</parameter>.  
</para>
<para>
If <parameter>key</parameter> cannot be found then it is created. If <parameter>group_name</parameter> cannot 
be found then it is created. To set an UTF-8 string which may contain 
characters that need escaping (such as newlines or spaces), use 
<link linkend="g-key-file-set-string"><function>g_key_file_set_string()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&#160;:</term>
<listitem><simpara> a string
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-string" role="function" condition="since:2.6">
<title>g_key_file_set_string ()</title>
<indexterm zone="g-key-file-set-string" role="2.6"><primary sortas="key_file_set_string">g_key_file_set_string</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_string               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *string);</programlisting>
<para>
Associates a new string value with <parameter>key</parameter> under <parameter>group_name</parameter>.  
If <parameter>key</parameter> cannot be found then it is created.  
If <parameter>group_name</parameter> cannot be found then it is created.
Unlike <link linkend="g-key-file-set-value"><function>g_key_file_set_value()</function></link>, this function handles characters
that need escaping, such as newlines.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>string</parameter>&#160;:</term>
<listitem><simpara> a string
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-locale-string" role="function" condition="since:2.6">
<title>g_key_file_set_locale_string ()</title>
<indexterm zone="g-key-file-set-locale-string" role="2.6"><primary sortas="key_file_set_locale_string">g_key_file_set_locale_string</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_locale_string        (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         const <link linkend="gchar">gchar</link> *string);</programlisting>
<para>
Associates a string value for <parameter>key</parameter> and <parameter>locale</parameter> under <parameter>group_name</parameter>.
If the translation for <parameter>key</parameter> cannot be found then it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>locale</parameter>&#160;:</term>
<listitem><simpara> a locale identifier
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>string</parameter>&#160;:</term>
<listitem><simpara> a string
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-boolean" role="function" condition="since:2.6">
<title>g_key_file_set_boolean ()</title>
<indexterm zone="g-key-file-set-boolean" role="2.6"><primary sortas="key_file_set_boolean">g_key_file_set_boolean</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_boolean              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gboolean">gboolean</link> value);</programlisting>
<para>
Associates a new boolean value with <parameter>key</parameter> under <parameter>group_name</parameter>.
If <parameter>key</parameter> cannot be found then it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&#160;:</term>
<listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> or <link linkend="FALSE--CAPS"><literal>FALSE</literal></link>
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-integer" role="function" condition="since:2.6">
<title>g_key_file_set_integer ()</title>
<indexterm zone="g-key-file-set-integer" role="2.6"><primary sortas="key_file_set_integer">g_key_file_set_integer</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_integer              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gint">gint</link> value);</programlisting>
<para>
Associates a new integer value with <parameter>key</parameter> under <parameter>group_name</parameter>.
If <parameter>key</parameter> cannot be found then it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&#160;:</term>
<listitem><simpara> an integer value
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-double" role="function" condition="since:2.12">
<title>g_key_file_set_double ()</title>
<indexterm zone="g-key-file-set-double" role="2.12"><primary sortas="key_file_set_double">g_key_file_set_double</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_double               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gdouble">gdouble</link> value);</programlisting>
<para>
Associates a new double value with <parameter>key</parameter> under <parameter>group_name</parameter>.
If <parameter>key</parameter> cannot be found then it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&#160;:</term>
<listitem><simpara> an double value
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.12</para></refsect2>
<refsect2 id="g-key-file-set-string-list" role="function" condition="since:2.6">
<title>g_key_file_set_string_list ()</title>
<indexterm zone="g-key-file-set-string-list" role="2.6"><primary sortas="key_file_set_string_list">g_key_file_set_string_list</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_string_list          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> * const list[],
                                                         <link linkend="gsize">gsize</link> length);</programlisting>
<para>
Associates a list of string values for <parameter>key</parameter> under <parameter>group_name</parameter>.
If <parameter>key</parameter> cannot be found then it is created.
If <parameter>group_name</parameter> cannot be found then it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> an array of string values
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> number of string values in <parameter>list</parameter>
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-locale-string-list" role="function" condition="since:2.6">
<title>g_key_file_set_locale_string_list ()</title>
<indexterm zone="g-key-file-set-locale-string-list" role="2.6"><primary sortas="key_file_set_locale_string_list">g_key_file_set_locale_string_list</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_locale_string_list   (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *locale,
                                                         const <link linkend="gchar">gchar</link> * const list[],
                                                         <link linkend="gsize">gsize</link> length);</programlisting>
<para>
Associates a list of string values for <parameter>key</parameter> and <parameter>locale</parameter> under
<parameter>group_name</parameter>.  If the translation for <parameter>key</parameter> cannot be found then
it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>locale</parameter>&#160;:</term>
<listitem><simpara> a locale identifier
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="NULL--CAPS"><literal>NULL</literal></link>-terminated array of locale string values
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> the length of <parameter>list</parameter>
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-boolean-list" role="function" condition="since:2.6">
<title>g_key_file_set_boolean_list ()</title>
<indexterm zone="g-key-file-set-boolean-list" role="2.6"><primary sortas="key_file_set_boolean_list">g_key_file_set_boolean_list</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_boolean_list         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gboolean">gboolean</link> list[],
                                                         <link linkend="gsize">gsize</link> length);</programlisting>
<para>
Associates a list of boolean values with <parameter>key</parameter> under <parameter>group_name</parameter>.  
If <parameter>key</parameter> cannot be found then it is created.
If <parameter>group_name</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link>, the start_group is used.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> an array of boolean values
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> length of <parameter>list</parameter>
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-integer-list" role="function" condition="since:2.6">
<title>g_key_file_set_integer_list ()</title>
<indexterm zone="g-key-file-set-integer-list" role="2.6"><primary sortas="key_file_set_integer_list">g_key_file_set_integer_list</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_integer_list         (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gint">gint</link> list[],
                                                         <link linkend="gsize">gsize</link> length);</programlisting>
<para>
Associates a list of integer values with <parameter>key</parameter> under <parameter>group_name</parameter>.  
If <parameter>key</parameter> cannot be found then it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> an array of integer values
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> number of integer values in <parameter>list</parameter>
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-set-double-list" role="function" condition="since:2.12">
<title>g_key_file_set_double_list ()</title>
<indexterm zone="g-key-file-set-double-list" role="2.12"><primary sortas="key_file_set_double_list">g_key_file_set_double_list</primary></indexterm><programlisting><link linkend="void">void</link>                g_key_file_set_double_list          (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="gdouble">gdouble</link> list[],
                                                         <link linkend="gsize">gsize</link> length);</programlisting>
<para>
Associates a list of double values with <parameter>key</parameter> under
<parameter>group_name</parameter>.  If <parameter>key</parameter> cannot be found then it is created.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>list</parameter>&#160;:</term>
<listitem><simpara> an array of double values
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>length</parameter>&#160;:</term>
<listitem><simpara> number of double values in <parameter>list</parameter>
</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.12</para></refsect2>
<refsect2 id="g-key-file-set-comment" role="function" condition="since:2.6">
<title>g_key_file_set_comment ()</title>
<indexterm zone="g-key-file-set-comment" role="2.6"><primary sortas="key_file_set_comment">g_key_file_set_comment</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_set_comment              (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         const <link linkend="gchar">gchar</link> *comment,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Places a comment above <parameter>key</parameter> from <parameter>group_name</parameter>.
If <parameter>key</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link> then <parameter>comment</parameter> will be written above <parameter>group_name</parameter>.  
If both <parameter>key</parameter> and <parameter>group_name</parameter>  are <link linkend="NULL--CAPS"><literal>NULL</literal></link>, then <parameter>comment</parameter> will be 
written above the first group in the file.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>comment</parameter>&#160;:</term>
<listitem><simpara> a comment
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the comment was written, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-remove-group" role="function" condition="since:2.6">
<title>g_key_file_remove_group ()</title>
<indexterm zone="g-key-file-remove-group" role="2.6"><primary sortas="key_file_remove_group">g_key_file_remove_group</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_remove_group             (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Removes the specified group, <parameter>group_name</parameter>, 
from the key file.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link> or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the group was removed, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-remove-key" role="function" condition="since:2.6">
<title>g_key_file_remove_key ()</title>
<indexterm zone="g-key-file-remove-key" role="2.6"><primary sortas="key_file_remove_key">g_key_file_remove_key</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_remove_key               (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Removes <parameter>key</parameter> in <parameter>group_name</parameter> from the key file.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key name to remove
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link> or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the key was removed, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="g-key-file-remove-comment" role="function" condition="since:2.6">
<title>g_key_file_remove_comment ()</title>
<indexterm zone="g-key-file-remove-comment" role="2.6"><primary sortas="key_file_remove_comment">g_key_file_remove_comment</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link>            g_key_file_remove_comment           (<link linkend="GKeyFile">GKeyFile</link> *key_file,
                                                         const <link linkend="gchar">gchar</link> *group_name,
                                                         const <link linkend="gchar">gchar</link> *key,
                                                         <link linkend="GError">GError</link> **error);</programlisting>
<para>
Removes a comment above <parameter>key</parameter> from <parameter>group_name</parameter>.
If <parameter>key</parameter> is <link linkend="NULL--CAPS"><literal>NULL</literal></link> then <parameter>comment</parameter> will be removed above <parameter>group_name</parameter>. 
If both <parameter>key</parameter> and <parameter>group_name</parameter> are <link linkend="NULL--CAPS"><literal>NULL</literal></link>, then <parameter>comment</parameter> will
be removed above the first group in the file.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>key_file</parameter>&#160;:</term>
<listitem><simpara> a <link linkend="GKeyFile"><type>GKeyFile</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>group_name</parameter>&#160;:</term>
<listitem><simpara> a group name, or <link linkend="NULL--CAPS"><literal>NULL</literal></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>key</parameter>&#160;:</term>
<listitem><simpara> a key
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>error</parameter>&#160;:</term>
<listitem><simpara> return location for a <link linkend="GError"><type>GError</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the comment was removed, <link linkend="FALSE--CAPS"><literal>FALSE</literal></link> otherwise

</simpara></listitem></varlistentry>
</variablelist><para role="since">Since 2.6</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-GROUP--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_GROUP</title>
<indexterm zone="G-KEY-FILE-DESKTOP-GROUP--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_GROUP">G_KEY_FILE_DESKTOP_GROUP</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_GROUP                "Desktop Entry"
</programlisting>
<para>
The name of the main group of a desktop entry file, as defined in the
<ulink url="http://freedesktop.org/Standards/desktop-entry-spec">Desktop
Entry Specification</ulink>. Consult the specification for more
details about the meanings of the keys below.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-TYPE--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_TYPE</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-TYPE--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_TYPE">G_KEY_FILE_DESKTOP_KEY_TYPE</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_TYPE             "Type"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a string giving the type of the desktop entry. Usually
<link linkend="G-KEY-FILE-DESKTOP-TYPE-APPLICATION:CAPS"><literal>G_KEY_FILE_DESKTOP_TYPE_APPLICATION</literal></link>,
<link linkend="G-KEY-FILE-DESKTOP-TYPE-LINK:CAPS"><literal>G_KEY_FILE_DESKTOP_TYPE_LINK</literal></link>, or
<link linkend="G-KEY-FILE-DESKTOP-TYPE-DIRECTORY:CAPS"><literal>G_KEY_FILE_DESKTOP_TYPE_DIRECTORY</literal></link>.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-VERSION--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_VERSION</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-VERSION--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_VERSION">G_KEY_FILE_DESKTOP_KEY_VERSION</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_VERSION          "Version"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a string giving the version of the Desktop
Entry Specification used for the desktop entry file.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-NAME--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_NAME</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-NAME--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_NAME">G_KEY_FILE_DESKTOP_KEY_NAME</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_NAME             "Name"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a localized string giving the specific name of the
desktop entry.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-GENERIC-NAME--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-GENERIC-NAME--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_GENERIC_NAME">G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME     "GenericName"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a localized string giving the generic name of the
desktop entry.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-NO-DISPLAY--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-NO-DISPLAY--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_NO_DISPLAY">G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY       "NoDisplay"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a boolean stating whether the desktop entry should be
shown in menus.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-COMMENT--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_COMMENT</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-COMMENT--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_COMMENT">G_KEY_FILE_DESKTOP_KEY_COMMENT</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_COMMENT          "Comment"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a localized string giving the tooltip for the desktop
entry.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-ICON--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_ICON</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-ICON--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_ICON">G_KEY_FILE_DESKTOP_KEY_ICON</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_ICON             "Icon"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a localized string giving the name of the icon to be
displayed for the desktop entry.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-HIDDEN--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_HIDDEN</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-HIDDEN--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_HIDDEN">G_KEY_FILE_DESKTOP_KEY_HIDDEN</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_HIDDEN           "Hidden"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a boolean stating whether the desktop entry has been
deleted by the user.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-ONLY-SHOW-IN--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-ONLY-SHOW-IN--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN">G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN     "OnlyShowIn"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a list of strings identifying the environments that
should display the desktop entry.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-NOT-SHOW-IN--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-NOT-SHOW-IN--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN">G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN      "NotShowIn"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a list of strings identifying the environments that
should not display the desktop entry.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-TRY-EXEC--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_TRY_EXEC</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-TRY-EXEC--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_TRY_EXEC">G_KEY_FILE_DESKTOP_KEY_TRY_EXEC</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_TRY_EXEC         "TryExec"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a string giving the file name of a binary on disk
used to determine if the program is actually installed. It is only
valid for desktop entries with the <literal>Application</literal>
type.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-EXEC--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_EXEC</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-EXEC--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_EXEC">G_KEY_FILE_DESKTOP_KEY_EXEC</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_EXEC             "Exec"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a string giving the command line to execute. It is only
valid for desktop entries with the <literal>Application</literal>
type.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-PATH--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_PATH</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-PATH--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_PATH">G_KEY_FILE_DESKTOP_KEY_PATH</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_PATH             "Path"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a string containing the working directory to run the
program in. It is only valid for desktop entries with the
<literal>Application</literal> type.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-TERMINAL--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_TERMINAL</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-TERMINAL--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_TERMINAL">G_KEY_FILE_DESKTOP_KEY_TERMINAL</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_TERMINAL         "Terminal"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a boolean stating whether the program should be
run in a terminal window. It is only valid for desktop entries with
the <literal>Application</literal> type.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-MIME-TYPE--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_MIME_TYPE</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-MIME-TYPE--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_MIME_TYPE">G_KEY_FILE_DESKTOP_KEY_MIME_TYPE</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_MIME_TYPE        "MimeType"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a list of strings giving the MIME types supported
by this desktop entry.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-CATEGORIES--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_CATEGORIES</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-CATEGORIES--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_CATEGORIES">G_KEY_FILE_DESKTOP_KEY_CATEGORIES</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_CATEGORIES       "Categories"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a list of strings giving the categories in which the
desktop entry should be shown in a menu.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-STARTUP-NOTIFY--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-STARTUP-NOTIFY--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY">G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY   "StartupNotify"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a boolean stating whether the application supports
the <ulink
url="http://www.freedesktop.org/Standards/startup-notification-spec">Startup
Notification Protocol Specification</ulink>.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-STARTUP-WM-CLASS--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-STARTUP-WM-CLASS--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS">G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS "StartupWMClass"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is string identifying the WM class or name hint of a
window that the application will create, which can be used to emulate
Startup Notification with older applications.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-KEY-URL--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_KEY_URL</title>
<indexterm zone="G-KEY-FILE-DESKTOP-KEY-URL--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_KEY_URL">G_KEY_FILE_DESKTOP_KEY_URL</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_KEY_URL              "URL"
</programlisting>
<para>
A key under <link
linkend="G-KEY-FILE-DESKTOP-GROUP:CAPS"><literal>G_KEY_FILE_DESKTOP_GROUP</literal></link>
whose value is a string giving the URL to access. It is only valid
for desktop entries with the <literal>Link</literal> type.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-TYPE-APPLICATION--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_TYPE_APPLICATION</title>
<indexterm zone="G-KEY-FILE-DESKTOP-TYPE-APPLICATION--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_TYPE_APPLICATION">G_KEY_FILE_DESKTOP_TYPE_APPLICATION</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_TYPE_APPLICATION     "Application"
</programlisting>
<para>
The value of the <link
linkend="G-KEY-FILE-DESKTOP-KEY-TYPE:CAPS"><literal>G_KEY_FILE_DESKTOP_KEY_TYPE</literal></link>
key for desktop entries representing applications.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-TYPE-LINK--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_TYPE_LINK</title>
<indexterm zone="G-KEY-FILE-DESKTOP-TYPE-LINK--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_TYPE_LINK">G_KEY_FILE_DESKTOP_TYPE_LINK</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_TYPE_LINK            "Link"
</programlisting>
<para>
The value of the <link
linkend="G-KEY-FILE-DESKTOP-KEY-TYPE:CAPS"><literal>G_KEY_FILE_DESKTOP_KEY_TYPE</literal></link>
key for desktop entries representing links to documents.
</para><para role="since">Since 2.14</para></refsect2>
<refsect2 id="G-KEY-FILE-DESKTOP-TYPE-DIRECTORY--CAPS" role="macro" condition="since:2.14">
<title>G_KEY_FILE_DESKTOP_TYPE_DIRECTORY</title>
<indexterm zone="G-KEY-FILE-DESKTOP-TYPE-DIRECTORY--CAPS" role="2.14"><primary sortas="KEY_FILE_DESKTOP_TYPE_DIRECTORY">G_KEY_FILE_DESKTOP_TYPE_DIRECTORY</primary></indexterm><programlisting>#define G_KEY_FILE_DESKTOP_TYPE_DIRECTORY       "Directory"
</programlisting>
<para>
The value of the <link
linkend="G-KEY-FILE-DESKTOP-KEY-TYPE:CAPS"><literal>G_KEY_FILE_DESKTOP_KEY_TYPE</literal></link>
key for desktop entries representing directories.
</para><para role="since">Since 2.14</para></refsect2>

</refsect1>




</refentry>
