[glib] Be more careful about overwriting errors
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] Be more careful about overwriting errors
- Date: Mon, 1 Nov 2010 00:59:52 +0000 (UTC)
commit 9574dbd2282e1fcf7bb5836c85cfff536bf4a7cf
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Oct 31 20:58:15 2010 -0400
Be more careful about overwriting errors
When trying to parse again, we don't want to overwrite the exiting
error.
gio/gsettings-tool.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/gio/gsettings-tool.c b/gio/gsettings-tool.c
index e461925..a7447ae 100644
--- a/gio/gsettings-tool.c
+++ b/gio/gsettings-tool.c
@@ -399,7 +399,6 @@ gsettings_set (GSettings *settings,
existing = g_settings_get_value (settings, key);
type = g_variant_get_type (existing);
-parse:
new = g_variant_parse (type, value, NULL, NULL, &error);
/* A common error is to specify a string with single quotes
@@ -409,10 +408,12 @@ parse:
* To handle this case, try to parse again with an extra level
* of quotes.
*/
- if (new == NULL && !freeme && strstr (error->message, "unknown keyword"))
+ if (new == NULL && strstr (error->message, "unknown keyword"))
{
value = freeme = g_strdup_printf ("\"%s\"", value);
- goto parse;
+ new = g_variant_parse (type, value, NULL, NULL, NULL);
+ if (new != NULL)
+ g_clear_error (&error);
}
if (new == NULL)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]