[glib] Revert addition of g_key_file_has_key_full
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Revert addition of g_key_file_has_key_full
- Date: Fri, 22 Jul 2011 14:56:35 +0000 (UTC)
commit 8b061e023ce97171d817e07ea7068f567129ae8a
Author: Colin Walters <walters verbum org>
Date: Fri Jul 22 10:31:27 2011 -0400
Revert addition of g_key_file_has_key_full
Per IRC discussion, we can just ask bindings to use
g_key_file_get_value() to test for the existence of a key.
I left the "fixed" code in the source tree as static because it makes
more sense to me.
glib/gkeyfile.c | 90 +++++++++++++++++++++-----------------------------
glib/gkeyfile.h | 5 ---
glib/tests/keyfile.c | 16 ---------
3 files changed, 38 insertions(+), 73 deletions(-)
---
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index da0bc2e..3463488 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -3136,6 +3136,42 @@ g_key_file_has_group (GKeyFile *key_file,
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
@@ -3151,8 +3187,8 @@ g_key_file_has_group (GKeyFile *key_file,
* 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.
@@ -3179,56 +3215,6 @@ g_key_file_has_key (GKeyFile *key_file,
}
}
-/**
- * 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)
diff --git a/glib/gkeyfile.h b/glib/gkeyfile.h
index e89edaa..e16dc61 100644
--- a/glib/gkeyfile.h
+++ b/glib/gkeyfile.h
@@ -94,11 +94,6 @@ gboolean g_key_file_has_key (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
-gboolean g_key_file_has_key_full (GKeyFile *key_file,
- const gchar *group_name,
- const gchar *key,
- gboolean *has_key,
- GError **error);
gchar *g_key_file_get_value (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
diff --git a/glib/tests/keyfile.c b/glib/tests/keyfile.c
index c30921d..aecef83 100644
--- a/glib/tests/keyfile.c
+++ b/glib/tests/keyfile.c
@@ -444,7 +444,6 @@ test_listing (void)
gsize len;
gchar *start;
GError *error = NULL;
- gboolean has_key;
const gchar *data =
"[group1]\n"
@@ -497,21 +496,6 @@ test_listing (void)
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);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]