Glib
view release on metacpan or search on metacpan
GKeyFile.xs view on Meta::CPAN
=for enum Glib::KeyFileFlags
=cut
=for apidoc __gerror__
Parses a key file.
=cut
gboolean
g_key_file_load_from_file (key_file, file, flags)
GKeyFile * key_file
const gchar * file
GKeyFileFlags flags
PREINIT:
GError *err = NULL;
CODE:
RETVAL = g_key_file_load_from_file (key_file, file, flags, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
=for apidoc __gerror__
Parses a string containing a key file structure.
=cut
gboolean
g_key_file_load_from_data (key_file, buf, flags)
GKeyFile * key_file
SV * buf
GKeyFileFlags flags
PREINIT:
STRLEN length;
GError *err = NULL;
const gchar *data = (const gchar *) SvPV (buf, length);
CODE:
RETVAL = g_key_file_load_from_data (key_file, data, length, flags, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
#if GLIB_CHECK_VERSION (2, 14, 0)
=for apidoc __gerror__
=signature boolean = $key_file->load_from_dirs ($file, $flags, @search_dirs)
=signature (boolean, scalar) = $key_file->load_from_dirs ($file, $flags, @search_dirs)
Parses a key file, searching for it inside the specified directories.
In scalar context, it returns a boolean value (true on success, false otherwise);
in array context, it returns a boolean value and the full path of the file.
=cut
void
g_key_file_load_from_dirs (key_file, file, flags, ...)
GKeyFile *key_file
const gchar *file
GKeyFileFlags flags
PREINIT:
int n_dirs, i;
gchar **search_dirs;
gchar *full_path = NULL;
GError *error = NULL;
gboolean retval;
PPCODE:
n_dirs = items - 3;
search_dirs = g_new0 (gchar*, n_dirs + 1);
for (i = 0; i < n_dirs; i++) {
search_dirs[i] = SvGChar (ST (3 + i));
}
search_dirs[n_dirs] = NULL;
retval = g_key_file_load_from_dirs (
key_file,
file,
(const gchar **) search_dirs,
&full_path,
flags,
&error);
if (error)
gperl_croak_gerror (NULL, error);
PUSHs (sv_2mortal (newSVuv (retval)));
if (GIMME_V == G_ARRAY && full_path)
XPUSHs (sv_2mortal (newSVGChar (full_path)));
if (full_path)
g_free (full_path);
g_free (search_dirs);
#endif
=for apidoc __gerror__
=signature boolean = $key_file->load_from_data_dirs ($file, $flags)
=signature (boolean, scalar) = $key_file->load_from_data_dirs ($file, $flags)
Parses a key file, searching for it inside the data directories.
In scalar context, it returns a boolean value (true on success, false otherwise);
in array context, it returns a boolean value and the full path of the file.
=cut
void
g_key_file_load_from_data_dirs (key_file, file, flags)
GKeyFile * key_file
const gchar * file
GKeyFileFlags flags
PREINIT:
GError *err = NULL;
gchar *full_path = NULL;
gboolean retval;
PPCODE:
retval = g_key_file_load_from_data_dirs (key_file,
file,
GIMME_V == G_ARRAY ? &full_path : NULL,
flags,
&err);
if (err)
gperl_croak_gerror (NULL, err);
PUSHs (sv_2mortal (newSViv (retval)));
if (GIMME_V == G_ARRAY && full_path)
XPUSHs (sv_2mortal (newSVGChar (full_path)));
if (full_path) g_free (full_path);
=for apidoc __gerror__
Returns the key file as a string.
=cut
gchar_own *
g_key_file_to_data (key_file)
GKeyFile * key_file
PREINIT:
GError *err = NULL;
gsize len;
CODE:
RETVAL = g_key_file_to_data (key_file, &len, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
=for apidoc
Returns the first group inside a key file.
=cut
gchar_own *
g_key_file_get_start_group (key_file)
GKeyFile * key_file
=for apidoc
=signature list = $key_file->get_groups
Returns the list of groups inside the key_file.
=cut
void
g_key_file_get_groups (key_file)
GKeyFile * key_file
PREINIT:
gchar **groups;
gsize len, i;
PPCODE:
groups = g_key_file_get_groups (key_file, &len);
if (len != 0) {
EXTEND(SP, (long) len);
for (i = 0; i < len; i++)
PUSHs (sv_2mortal (newSVGChar (groups[i])));
}
g_strfreev (groups); /* otherwise, we leak */
=for apidoc __gerror__
=signature list = $key_file->get_keys ($group_name)
Returns the list of keys inside a group of the key file.
=cut
void
g_key_file_get_keys (key_file, group_name)
GKeyFile * key_file
const gchar * group_name
PREINIT:
GError *err = NULL;
gchar **keys;
gsize len, i;
PPCODE:
keys = g_key_file_get_keys (key_file, group_name, &len, &err);
if (err)
gperl_croak_gerror (NULL, err);
if (len != 0) {
for (i = 0; i < len; i++)
if (keys[i])
XPUSHs (sv_2mortal (newSVGChar (keys[i])));
}
g_strfreev (keys); /* otherwise, we leak */
=for apidoc
Checks whether $group_name is present in $key_file.
=cut
gboolean
g_key_file_has_group (key_file, group_name)
GKeyFile * key_file
const gchar * group_name
=for apidoc __gerror__
Checks whether $group_name has $key in it.
=cut
gboolean
g_key_file_has_key (key_file, group_name, key)
GKeyFile * key_file
const gchar * group_name
const gchar * key
PREINIT:
GError *err = NULL;
CODE:
RETVAL = g_key_file_has_key (key_file, group_name, key, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
=for apidoc __gerror__
Retrieves the literal value of $key inside $group_name.
=cut
gchar_own *
g_key_file_get_value (key_file, group_name, key)
GKeyFile * key_file
const gchar * group_name
const gchar * key
PREINIT:
GError *err = NULL;
CODE:
RETVAL = g_key_file_get_value (key_file, group_name, key, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
=for apidoc
Sets the literal value of $key inside $group_name.
If $key cannot be found, it is created.
If $group_name cannot be found, it is created.
=cut
void
g_key_file_set_value (key_file, group_name, key, value)
GKeyFile.xs view on Meta::CPAN
gdouble
g_key_file_get_double (key_file, group_name, key)
GKeyFile * key_file
const gchar * group_name
const gchar * key
PREINIT:
GError *err = NULL;
CODE:
RETVAL = g_key_file_get_double (key_file,
group_name, key, &err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
#endif
=for apidoc __gerror__
Returns the value associated with $key under $group_name translated in the
given $locale if available. If $locale is undef then the current locale is
assumed.
=cut
gchar_own *
g_key_file_get_locale_string (key_file, group_name, key, locale=NULL)
GKeyFile * key_file
const gchar * group_name
const gchar * key
const gchar_ornull * locale
PREINIT:
GError *err = NULL;
CODE:
RETVAL = g_key_file_get_locale_string (key_file,
group_name, key,
locale,
&err);
if (err)
gperl_croak_gerror (NULL, err);
OUTPUT:
RETVAL
void
g_key_file_set_locale_string (key_file, group_name, key, locale, string)
GKeyFile * key_file
const gchar * group_name
const gchar * key
const gchar * locale
const gchar * string
=for apidoc __gerror__
=cut
void
g_key_file_get_locale_string_list (key_file, group_name, key, locale);
GKeyFile * key_file
const gchar * group_name
const gchar * key
const gchar * locale
PREINIT:
gchar **retlist;
GError *err = NULL;
gsize retlen, i;
PPCODE:
retlist = g_key_file_get_locale_string_list (key_file,
group_name, key,
locale,
&retlen,
&err);
if (err)
gperl_croak_gerror (NULL, err);
for (i = 0; i < retlen; i++)
XPUSHs (sv_2mortal (newSVGChar (retlist[i])));
g_strfreev (retlist);
=for apidoc
Associates a list of string values for $key and $locale under $group_name.
If the translation for $key cannot be found then it is created.
=cut
void
g_key_file_set_locale_string_list (key_file, group_name, key, locale, ...)
GKeyFile * key_file
const gchar * group_name
const gchar * key
const gchar * locale
PREINIT:
gchar **list;
gsize list_len;
int i;
CODE:
list_len = (gsize) (items - 3);
list = g_new0 (gchar *, list_len);
for (i = 4; i < items; i++)
list[i - 4] = SvPV_nolen (ST (i));
g_key_file_set_locale_string_list (key_file,
group_name, key,
locale,
(const gchar * const *) list, list_len);
g_free (list);
=for apidoc Glib::KeyFile::get_string_list __gerror__
=signature list = $key_file->get_string_list ($group_name, $key)
Retrieves a list of strings from $key inside $group_name.
=cut
=for apidoc Glib::KeyFile::get_integer_list __gerror__
=signature list = $key_file->get_integer_list ($group_name, $key)
Retrieves a list of integers from $key inside $group_name.
=cut
=for apidoc Glib::KeyFile::get_boolean_list __gerror__
=signature list = $key_file->get_boolean_list ($group_name, $key)
Retrieves a list of booleans from $key inside $group_name.
=cut
void
g_key_file_get_string_list (key_file, group_name, key)
GKeyFile * key_file
const gchar * group_name
const gchar * key
ALIAS:
Glib::KeyFile::get_boolean_list = 1
Glib::KeyFile::get_integer_list = 2
PREINIT:
GError *err = NULL;
gsize retlen, i;
PPCODE:
switch (ix) {
#define CROAK_ON_GERROR(error) if (error) gperl_croak_gerror (NULL, error)
case 0:
{
gchar **retlist;
retlist = g_key_file_get_string_list (key_file,
group_name, key,
&retlen,
&err);
CROAK_ON_GERROR (err);
EXTEND (sp, (long) retlen);
for (i = 0; i < retlen; i++)
PUSHs (sv_2mortal (newSVGChar (retlist[i])));
g_strfreev (retlist);
break;
}
case 1:
{
gboolean *retlist;
retlist = g_key_file_get_boolean_list (key_file,
group_name, key,
&retlen,
&err);
CROAK_ON_GERROR (err);
EXTEND (sp, (long) retlen);
for (i = 0; i < retlen; i++)
PUSHs (sv_2mortal (boolSV (retlist[i])));
g_free (retlist);
break;
}
case 2:
{
gint *retlist;
retlist = g_key_file_get_integer_list (key_file,
group_name, key,
&retlen,
&err);
CROAK_ON_GERROR (err);
EXTEND (sp, (long) retlen);
for (i = 0; i < retlen; i++)
PUSHs (sv_2mortal (newSViv (retlist[i])));
g_free (retlist);
}
}
#if GLIB_CHECK_VERSION (2, 12, 0)
=for apidoc __gerror__
=signature list = $key_file->get_double_list ($group_name, $key)
Retrieves a list of doubles from $key inside $group_name.
=cut
void
g_key_file_get_double_list (key_file, group_name, key)
GKeyFile * key_file
const gchar * group_name
const gchar * key
PREINIT:
GError *err = NULL;
gsize retlen, i;
gdouble *retlist;
PPCODE:
retlist = g_key_file_get_double_list (key_file,
group_name, key,
&retlen,
&err);
if (err)
gperl_croak_gerror (NULL, err);
EXTEND (sp, (long) retlen);
for (i = 0; i < retlen; i++)
PUSHs (sv_2mortal (newSVnv (retlist[i])));
g_free (retlist);
#endif
=for apidoc Glib::KeyFile::set_string_list
=for arg ... list of strings
Sets a list of strings in $key inside $group_name. The strings will be escaped
if contain special characters. If $key cannot be found then it is created. If
$group_name cannot be found then it is created.
=cut
=for apidoc Glib::KeyFile::set_boolean_list
=for arg ... list of booleans
Sets a list of booleans in $key inside $group_name. If $key cannot be found
then it is created. If $group_name cannot be found then it is created.
=cut
=for apidoc Glib::KeyFile::set_integer_list
=for arg ... list of integers
Sets a list of doubles in $key inside $group_name. If $key cannot be found
then it is created. If $group_name cannot be found then it is created.
=cut
void
g_key_file_set_string_list (key_file, group_name, key, ...)
GKeyFile * key_file
const gchar * group_name
const gchar * key
ALIAS:
Glib::KeyFile::set_boolean_list = 1
Glib::KeyFile::set_integer_list = 2
PREINIT:
gsize list_len;
int i;
CODE:
switch (ix) {
case 0:
{
gchar **list;
list_len = (gsize) (items - 3);
list = g_new0 (gchar *, list_len);
for (i = 3; i < items; i++)
list[i - 3] = SvPV_nolen (ST (i));
g_key_file_set_string_list (key_file,
group_name, key,
(const gchar * const *) list, list_len);
g_free (list);
break;
}
case 1:
{
( run in 0.796 second using v1.01-cache-2.11-cpan-5511b514fd6 )