From 1dc3d6f0882e557d110980159cdadb75ac596dd1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 8 Nov 2007 03:19:37 +0000 Subject: [PATCH] Make some functions that take a GError return boolean instead of void. 2007-11-07 Matthias Clasen * glib/gkeyfile.[hc]: Make some functions that take a GError return boolean instead of void. (#375651, Matt Barnes) svn path=/trunk/; revision=5815 --- ChangeLog | 5 ++ glib/gkeyfile.c | 173 +++++++++++++++++++++++++++++++++----------------------- glib/gkeyfile.h | 8 +-- 3 files changed, 110 insertions(+), 76 deletions(-) diff --git a/ChangeLog b/ChangeLog index c47ca24..fd57c2d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ 2007-11-07 Matthias Clasen + + * glib/gkeyfile.[hc]: Make some functions that take + a GError return boolean instead of void. (#375651, Matt Barnes) + +2007-11-07 Matthias Clasen * autogen.sh: Use automake 1.9 diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c index 0e144c0..a7e72d6 100644 --- a/glib/gkeyfile.c +++ b/glib/gkeyfile.c @@ -2436,12 +2436,12 @@ g_key_file_set_double_list (GKeyFile *key_file, g_string_free (values, TRUE); } -static void -g_key_file_set_key_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *comment, - GError **error) +static gboolean +g_key_file_set_key_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *comment, + GError **error) { GKeyFileGroup *group; GKeyFileKeyValuePair *pair; @@ -2455,7 +2455,7 @@ g_key_file_set_key_comment (GKeyFile *key_file, _("Key file does not have group '%s'"), group_name ? group_name : "(null)"); - return; + return FALSE; } /* First find the key the comments are supposed to be @@ -2469,7 +2469,7 @@ g_key_file_set_key_comment (GKeyFile *key_file, G_KEY_FILE_ERROR_KEY_NOT_FOUND, _("Key file does not have key '%s' in group '%s'"), key, group->name); - return; + return FALSE; } /* Then find all the comments already associated with the @@ -2492,7 +2492,7 @@ g_key_file_set_key_comment (GKeyFile *key_file, } if (comment == NULL) - return; + return TRUE; /* Now we can add our new comment */ @@ -2501,17 +2501,19 @@ g_key_file_set_key_comment (GKeyFile *key_file, pair->value = g_key_file_parse_comment_as_value (key_file, comment); key_node = g_list_insert (key_node, pair, 1); + + return TRUE; } -static void -g_key_file_set_group_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *comment, - GError **error) +static gboolean +g_key_file_set_group_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *comment, + GError **error) { GKeyFileGroup *group; - g_return_if_fail (g_key_file_is_group_name (group_name)); + g_return_val_if_fail (g_key_file_is_group_name (group_name), FALSE); group = g_key_file_lookup_group (key_file, group_name); if (!group) @@ -2521,7 +2523,7 @@ g_key_file_set_group_comment (GKeyFile *key_file, _("Key file does not have group '%s'"), group_name ? group_name : "(null)"); - return; + return FALSE; } /* First remove any existing comment @@ -2533,19 +2535,21 @@ g_key_file_set_group_comment (GKeyFile *key_file, } if (comment == NULL) - return; + return TRUE; /* Now we can add our new comment */ group->comment = g_slice_new (GKeyFileKeyValuePair); group->comment->key = NULL; group->comment->value = g_key_file_parse_comment_as_value (key_file, comment); + + return TRUE; } -static void -g_key_file_set_top_comment (GKeyFile *key_file, - const gchar *comment, - GError **error) +static gboolean +g_key_file_set_top_comment (GKeyFile *key_file, + const gchar *comment, + GError **error) { GList *group_node; GKeyFileGroup *group; @@ -2572,7 +2576,7 @@ g_key_file_set_top_comment (GKeyFile *key_file, } if (comment == NULL) - return; + return TRUE; pair = g_slice_new (GKeyFileKeyValuePair); pair->key = NULL; @@ -2580,6 +2584,8 @@ g_key_file_set_top_comment (GKeyFile *key_file, group->key_value_pairs = g_list_prepend (group->key_value_pairs, pair); + + return TRUE; } /** @@ -2591,38 +2597,51 @@ g_key_file_set_top_comment (GKeyFile *key_file, * @error: return location for a #GError * * Places a comment above @key from @group_name. - * @group_name. If @key is %NULL then @comment will - * be written above @group_name. If both @key - * and @group_name are NULL, then @comment will - * be written above the first group in the file. + * If @key is %NULL then @comment will be written + * above @group_name. If both @key and @group_name + * are NULL, then @comment will be written above + * the first group in the file. + * + * Returns: %TRUE if the comment was written, %FALSE otherwise * * Since: 2.6 **/ -void -g_key_file_set_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - const gchar *comment, - GError **error) +gboolean +g_key_file_set_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *comment, + GError **error) { - g_return_if_fail (key_file != NULL); + g_return_val_if_fail (key_file != NULL, FALSE); - if (group_name != NULL && key != NULL) - g_key_file_set_key_comment (key_file, group_name, key, comment, error); - else if (group_name != NULL) - g_key_file_set_group_comment (key_file, group_name, comment, error); - else - g_key_file_set_top_comment (key_file, comment, error); + if (group_name != NULL && key != NULL) + { + if (!g_key_file_set_key_comment (key_file, group_name, key, comment, error)) + return FALSE; + } + else if (group_name != NULL) + { + if (!g_key_file_set_group_comment (key_file, group_name, comment, error)) + return FALSE; + } + else + { + if (!g_key_file_set_top_comment (key_file, comment, error)) + return FALSE; + } if (comment != NULL) key_file->approximate_size += strlen (comment); + + return TRUE; } static gchar * -g_key_file_get_key_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) +g_key_file_get_key_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) { GKeyFileGroup *group; GKeyFileKeyValuePair *pair; @@ -2760,9 +2779,9 @@ get_group_comment (GKeyFile *key_file, } static gchar * -g_key_file_get_group_comment (GKeyFile *key_file, - const gchar *group_name, - GError **error) +g_key_file_get_group_comment (GKeyFile *key_file, + const gchar *group_name, + GError **error) { GList *group_node; GKeyFileGroup *group; @@ -2788,8 +2807,8 @@ g_key_file_get_group_comment (GKeyFile *key_file, } static gchar * -g_key_file_get_top_comment (GKeyFile *key_file, - GError **error) +g_key_file_get_top_comment (GKeyFile *key_file, + GError **error) { GList *group_node; GKeyFileGroup *group; @@ -2823,10 +2842,10 @@ g_key_file_get_top_comment (GKeyFile *key_file, * Since: 2.6 **/ gchar * -g_key_file_get_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) +g_key_file_get_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) { g_return_val_if_fail (key_file != NULL, NULL); @@ -2851,23 +2870,25 @@ g_key_file_get_comment (GKeyFile *key_file, * and @group_name are NULL, then @comment will * be written above the first group in the file. * + * Returns: %TRUE if the comment was removed, %FALSE otherwise + * * Since: 2.6 **/ -void -g_key_file_remove_comment (GKeyFile *key_file, - const gchar *group_name, - const gchar *key, - GError **error) +gboolean +g_key_file_remove_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) { - g_return_if_fail (key_file != NULL); + g_return_val_if_fail (key_file != NULL, FALSE); if (group_name != NULL && key != NULL) - g_key_file_set_key_comment (key_file, group_name, key, NULL, error); + return g_key_file_set_key_comment (key_file, group_name, key, NULL, error); else if (group_name != NULL) - g_key_file_set_group_comment (key_file, group_name, NULL, error); + return g_key_file_set_group_comment (key_file, group_name, NULL, error); else - g_key_file_set_top_comment (key_file, NULL, error); + return g_key_file_set_top_comment (key_file, NULL, error); } /** @@ -3087,17 +3108,19 @@ g_key_file_remove_group_node (GKeyFile *key_file, * Removes the specified group, @group_name, * from the key file. * + * Returns: %TRUE if the group was removed, %FALSE otherwise + * * Since: 2.6 **/ -void +gboolean g_key_file_remove_group (GKeyFile *key_file, const gchar *group_name, GError **error) { GList *group_node; - g_return_if_fail (key_file != NULL); - g_return_if_fail (group_name != NULL); + g_return_val_if_fail (key_file != NULL, FALSE); + g_return_val_if_fail (group_name != NULL, FALSE); group_node = g_key_file_lookup_group_node (key_file, group_name); @@ -3107,10 +3130,12 @@ g_key_file_remove_group (GKeyFile *key_file, G_KEY_FILE_ERROR_GROUP_NOT_FOUND, _("Key file does not have group '%s'"), group_name); - return; + return FALSE; } - g_key_file_remove_group_node (key_file, group_node); + g_key_file_remove_group_node (key_file, group_node); + + return TRUE; } static void @@ -3140,9 +3165,11 @@ g_key_file_add_key (GKeyFile *key_file, * * Removes @key in @group_name from the key file. * + * Returns: %TRUE if the key was removed, %FALSE otherwise + * * Since: 2.6 **/ -void +gboolean g_key_file_remove_key (GKeyFile *key_file, const gchar *group_name, const gchar *key, @@ -3151,9 +3178,9 @@ g_key_file_remove_key (GKeyFile *key_file, GKeyFileGroup *group; GKeyFileKeyValuePair *pair; - g_return_if_fail (key_file != NULL); - g_return_if_fail (group_name != NULL); - g_return_if_fail (key != NULL); + 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); pair = NULL; @@ -3164,7 +3191,7 @@ g_key_file_remove_key (GKeyFile *key_file, G_KEY_FILE_ERROR_GROUP_NOT_FOUND, _("Key file does not have group '%s'"), group_name ? group_name : "(null)"); - return; + return FALSE; } pair = g_key_file_lookup_key_value_pair (key_file, group, key); @@ -3175,7 +3202,7 @@ g_key_file_remove_key (GKeyFile *key_file, G_KEY_FILE_ERROR_KEY_NOT_FOUND, _("Key file does not have key '%s' in group '%s'"), key, group->name); - return; + return FALSE; } key_file->approximate_size -= strlen (pair->key) + strlen (pair->value) + 2; @@ -3183,6 +3210,8 @@ g_key_file_remove_key (GKeyFile *key_file, group->key_value_pairs = g_list_remove (group->key_value_pairs, pair); g_hash_table_remove (group->lookup_map, pair->key); g_key_file_key_value_pair_free (pair); + + return TRUE; } static GList * diff --git a/glib/gkeyfile.h b/glib/gkeyfile.h index d78dd7c..e7eadc6 100644 --- a/glib/gkeyfile.h +++ b/glib/gkeyfile.h @@ -192,7 +192,7 @@ void g_key_file_set_integer_list (GKeyFile *key_file, const gchar *key, gint list[], gsize length); -void g_key_file_set_comment (GKeyFile *key_file, +gboolean g_key_file_set_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, const gchar *comment, @@ -202,15 +202,15 @@ gchar *g_key_file_get_comment (GKeyFile *key_file, const gchar *key, GError **error) G_GNUC_MALLOC; -void g_key_file_remove_comment (GKeyFile *key_file, +gboolean g_key_file_remove_comment (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); -void g_key_file_remove_key (GKeyFile *key_file, +gboolean g_key_file_remove_key (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); -void g_key_file_remove_group (GKeyFile *key_file, +gboolean g_key_file_remove_group (GKeyFile *key_file, const gchar *group_name, GError **error); -- 2.7.4