Updating branch refs/heads/master to 5162f1395e72c8f5d8216c10d831c6bdadd63962 (commit) from 09c4fb29e9874ede60829af3b99e918a50df1c15 (commit)
commit 5162f1395e72c8f5d8216c10d831c6bdadd63962 Author: Paweł Forysiuk <tuxa...@o2.pl> Date: Sat Feb 23 20:25:30 2013 +0100 Clean up filename when saving enabled extensions midori/midori-extension.c | 21 ++++++++++++++++----- midori/midori-websettings.c | 27 ++++++++------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/midori/midori-extension.c b/midori/midori-extension.c index afab7ea..92c6bb7 100644 --- a/midori/midori-extension.c +++ b/midori/midori-extension.c @@ -684,18 +684,29 @@ midori_extension_activate (GObject* extension, } else if (KATZE_IS_ARRAY (extension)) { + gboolean success = FALSE; MidoriExtension* extension_item; KATZE_ARRAY_FOREACH_ITEM (extension_item, KATZE_ARRAY (extension)) if (MIDORI_IS_EXTENSION (extension_item)) { - midori_extension_add_to_list (app, extension_item, filename); - if (activate) + gchar* key = extension_item->priv->key; + g_return_if_fail (key != NULL); + if (filename != NULL && strchr (filename, '/')) { - gchar* key = extension_item->priv->key; - if (key && filename && strstr (filename, key)) - g_signal_emit_by_name (extension_item, "activate", app); + gchar* clean = g_strndup (filename, strchr (filename, '/') - filename); + midori_extension_add_to_list (app, extension_item, clean); + g_free (clean); + } + else + midori_extension_add_to_list (app, extension_item, filename); + if (activate && filename && strstr (filename, key)) + { + g_signal_emit_by_name (extension_item, "activate", app); + success = TRUE; } } + /* Passed a multi extension w/o key or non-existing key */ + g_warn_if_fail (!activate || success); } } diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c index ba7a6c3..dd1a85b 100644 --- a/midori/midori-websettings.c +++ b/midori/midori-websettings.c @@ -1552,32 +1552,21 @@ midori_settings_save_to_file (MidoriWebSettings* settings, { i = 0; while (_extensions[i]) - { - g_key_file_set_boolean (key_file, "extensions", _extensions[i], TRUE); - i++; - } + g_key_file_set_boolean (key_file, "extensions", _extensions[i++], TRUE); } else if (extensions) { KATZE_ARRAY_FOREACH_ITEM (extension, extensions) if (midori_extension_is_active (extension)) { - const gchar* filename = g_object_get_data ( - G_OBJECT (extension), "filename"); - - gchar* key; - gchar* term; - - key = katze_object_get_string (extension, "key"); - if (key && *key) - term = g_strdup_printf ("%s/%s", filename, key); - else - term = g_strdup (filename); - - g_key_file_set_boolean (key_file, "extensions", term, TRUE); - + const gchar* filename = g_object_get_data (G_OBJECT (extension), "filename"); + if (filename && strchr (filename, '/')) + g_warning ("%s: %s unexpected /", G_STRFUNC, filename); + gchar* key = katze_object_get_string (extension, "key"); + gchar* subname = key ? g_strdup_printf ("%s/%s", filename, key) : g_strdup (filename); + g_key_file_set_boolean (key_file, "extensions", subname, TRUE); g_free (key); - g_free (term); + g_free (subname); } g_object_unref (extensions); } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits