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

Reply via email to