return g_key_file_lookup_group (key_file, group_name) != NULL;
}
+/* This code remains from a historical attempt to add a new public API
+ * which respects the GError rules.
+ */
+static gboolean
+g_key_file_has_key_full (GKeyFile *key_file,
+ const gchar *group_name,
+ const gchar *key,
+ gboolean *has_key,
+ GError **error)
+{
+ GKeyFileKeyValuePair *pair;
+ GKeyFileGroup *group;
+
+ g_return_val_if_fail (key_file != NULL, FALSE);
+ g_return_val_if_fail (group_name != NULL, FALSE);
+ g_return_val_if_fail (key != NULL, FALSE);
+
+ group = g_key_file_lookup_group (key_file, group_name);
+
+ if (!group)
+ {
+ g_set_error (error, G_KEY_FILE_ERROR,
+ G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
+ _("Key file does not have group '%s'"),
+ group_name ? group_name : "(null)");
+
+ return FALSE;
+ }
+
+ pair = g_key_file_lookup_key_value_pair (key_file, group, key);
+
+ if (has_key)
+ *has_key = pair != NULL;
+ return TRUE;
+}
+
/**
* g_key_file_has_key: (skip)
* @key_file: a #GKeyFile
* this function, you must pass a #GError pointer in @error, and check
* whether it is not %NULL to see if an error occurred.</note>
*
- * See g_key_file_has_key_full() for a replacement function which does
- * follow the #GError rules.
+ * Language bindings should use g_key_file_get_value() to test whether
+ * or not a key exists.
*
* Return value: %TRUE if @key is a part of @group_name, %FALSE
* otherwise.
}
}
-/**
- * g_key_file_has_key_full:
- * @key_file: a #GKeyFile
- * @group_name: a group name
- * @key: a key name
- * @has_key: (out) (allow-none): Return location for whether or not key exists
- * @error: return location for a #GError
- *
- * Looks whether the key file has the key @key in the group
- * @group_name.
- *
- * Return value: %TRUE if a group with the name @group_name
- * exists. Otherwise, @error is set and %FALSE is returned.
- *
- * Rename to: g_key_file_has_key
- * Since: 2.30
- */
-gboolean
-g_key_file_has_key_full (GKeyFile *key_file,
- const gchar *group_name,
- const gchar *key,
- gboolean *has_key,
- GError **error)
-{
- GKeyFileKeyValuePair *pair;
- GKeyFileGroup *group;
-
- g_return_val_if_fail (key_file != NULL, FALSE);
- g_return_val_if_fail (group_name != NULL, FALSE);
- g_return_val_if_fail (key != NULL, FALSE);
-
- group = g_key_file_lookup_group (key_file, group_name);
-
- if (!group)
- {
- g_set_error (error, G_KEY_FILE_ERROR,
- G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
- _("Key file does not have group '%s'"),
- group_name ? group_name : "(null)");
-
- return FALSE;
- }
-
- pair = g_key_file_lookup_key_value_pair (key_file, group, key);
-
- if (has_key)
- *has_key = pair != NULL;
- return TRUE;
-}
-
static void
g_key_file_add_group (GKeyFile *key_file,
const gchar *group_name)
gsize len;
gchar *start;
GError *error = NULL;
- gboolean has_key;
const gchar *data =
"[group1]\n"
g_key_file_has_key (keyfile, "no-such-group", "key", &error);
check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
- g_assert (g_key_file_has_key_full (keyfile, "group1", "key1", &has_key, &error));
- check_no_error (&error);
- g_assert (has_key);
-
- g_assert (g_key_file_has_key_full (keyfile, "group2", "key3", &has_key, &error));
- check_no_error (&error);
- g_assert (has_key);
-
- g_assert (g_key_file_has_key_full (keyfile, "group2", "no-such-key", &has_key, &error));
- g_assert (!has_key);
- check_no_error (&error);
-
- g_assert (!g_key_file_has_key_full (keyfile, "no-such-group", "key", &has_key, &error));
- check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);
-
g_key_file_free (keyfile);
}