]> spindle.queued.net Git - midori/commitdiff
Dont unescape URIs which are not escaped
authorAlexander Butenko <a.butenka@gmail.com>
Fri, 23 Jul 2010 13:48:45 +0000 (09:48 -0400)
committerChristian Dywan <christian@twotoasts.de>
Fri, 23 Jul 2010 19:38:07 +0000 (21:38 +0200)
sokoke_uri_unescape_string handles that and handles '+'
the way we want.

midori/midori-locationaction.c
midori/sokoke.c
midori/sokoke.h

index 34772b24f5cd5406c963cd153a047df5bde26e29..29484d9e61fb2b80ec7068ff856decc5f816c10f 100644 (file)
@@ -455,7 +455,8 @@ midori_location_action_popup_timeout_cb (gpointer data)
             icon = action->default_icon;
         if (type == 1 /* history_view */)
         {
-            unescaped_uri = g_uri_unescape_string ((const char*)uri, "");
+            unescaped_uri = sokoke_uri_unescape_string ((const char*)uri);
+
             gtk_list_store_insert_with_values (store, NULL, matches,
                 URI_COL, unescaped_uri, TITLE_COL, title, YALIGN_COL, 0.25,
                 FAVICON_COL, icon, -1);
index 99bc96ecef116dd4048bef92bdb85a2c68df01ba..909f71139f6a6e59e7e4a91223b61dbfb2649647 100644 (file)
@@ -737,6 +737,22 @@ sokoke_magic_uri (const gchar* uri)
     return NULL;
 }
 
+/**
+ * sokoke_uri_unescape_string:
+ * @uri: an URI string
+ *
+ * Unescape @uri if needed, and pass through '+'.
+ *
+ * Return value: a newly allocated URI
+ **/
+gchar*
+sokoke_uri_unescape_string (const gchar* uri)
+{
+    if (strchr (uri,'%'))
+        return g_uri_unescape_string (uri, "+");
+    return g_strdup (uri);
+}
+
 /**
  * sokoke_format_uri_for_display:
  * @uri: an URI string
@@ -749,9 +765,10 @@ sokoke_magic_uri (const gchar* uri)
 gchar*
 sokoke_format_uri_for_display (const gchar* uri)
 {
+    gchar* unescaped;
     if (uri && g_str_has_prefix (uri, "http://"))
     {
-        gchar* unescaped = g_uri_unescape_string (uri, "+");
+        gchar* unescaped = sokoke_uri_unescape_string (uri);
         #ifdef HAVE_LIBSOUP_2_27_90
         gchar* path = NULL;
         gchar* hostname;
index 99d91e01dea61cf638749b76bd8eeda219640349..105aed0ca081ad634f37fbc96b20263785660496 100644 (file)
@@ -113,6 +113,9 @@ sokoke_uri_to_ascii                     (const gchar*    uri);
 gchar*
 sokoke_magic_uri                        (const gchar*    uri);
 
+gchar*
+sokoke_uri_unescape_string              (const gchar*    uri);
+
 gchar*
 sokoke_format_uri_for_display           (const gchar*    uri);