[Xfce4-commits] <midori:master> Clean up filename when saving enabled extensions
Christian Dywan
noreply at xfce.org
Sat Mar 30 00:38:01 CET 2013
Updating branch refs/heads/master
to 5162f1395e72c8f5d8216c10d831c6bdadd63962 (commit)
from 09c4fb29e9874ede60829af3b99e918a50df1c15 (commit)
commit 5162f1395e72c8f5d8216c10d831c6bdadd63962
Author: Paweł Forysiuk <tuxator at 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);
}
More information about the Xfce4-commits
mailing list