[glib] Revert addition of g_key_file_has_key_full



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]