From: Christian Dywan <christian@twotoasts.de>
Date: Sun, 19 Feb 2012 21:57:45 +0000 (+0100)
Subject: Pick fallback extension based on MIME type
X-Git-Url: https://spindle.queued.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b20a1e7efd101df88f562c24f8fa40c2175bc1d9;p=midori

Pick fallback extension based on MIME type
---

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 11431cc4..77b32737 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -5008,6 +5008,23 @@ midori_view_get_uri_extension (const gchar* uri)
     return g_strdup (period);
 }
 
+static const gchar*
+midori_view_fallback_extension (MidoriView* view,
+                                const gchar* extension)
+{
+    if (!view->mime_type)
+        extension = "";
+    if (extension && *extension)
+        return extension;
+    if (strstr (view->mime_type, "css"))
+        return ".css";
+    if (strstr (view->mime_type, "javascript"))
+        return ".js";
+    if (strstr (view->mime_type, "html"))
+        return ".htm";
+    return "";
+}
+
 /**
  * midori_view_save_source:
  * @view: a #MidoriView
@@ -5044,7 +5061,7 @@ midori_view_save_source (MidoriView* view,
     {
         gchar* extension = midori_view_get_uri_extension (uri);
         gchar* filename = g_strdup_printf ("%uXXXXXX%s",
-            g_str_hash (uri), extension && *extension ? extension : ".htm");
+            g_str_hash (uri), midori_view_fallback_extension (view, extension));
         g_free (extension);
         fd = g_file_open_tmp (filename, &unique_filename, NULL);
         g_free (filename);