]> spindle.queued.net Git - midori/commitdiff
Handle missing speedial.json and missing shortcuts array
authorChristian Dywan <christian@twotoasts.de>
Fri, 20 May 2011 19:58:35 +0000 (21:58 +0200)
committerChristian Dywan <christian@twotoasts.de>
Fri, 20 May 2011 19:58:35 +0000 (21:58 +0200)
midori/main.c

index 007b03f90f44a6ef7564aecd1e3117d9c1c36c30..c6b8568f2a78fe973a57064823008ec3ef41fc9f 100644 (file)
@@ -1605,7 +1605,12 @@ speeddial_new_from_file (const gchar* config,
     }
 
     katze_assign (config_file, g_build_filename (config, "speeddial.json", NULL));
-    g_file_get_contents (config_file, &json_content, &json_length, NULL);
+    if (!g_file_get_contents (config_file, &json_content, &json_length, NULL))
+    {
+        katze_assign (json_content, g_strdup ("'{}'"));
+        json_length = strlen ("'{}'");
+    }
+
     script = g_string_sized_new (json_length);
     g_string_append (script, "var json = JSON.parse (");
     g_string_append_len (script, json_content, json_length);
@@ -1619,7 +1624,7 @@ speeddial_new_from_file (const gchar* config,
         "        +  'title=' + tile['title'] + '\\n\\n';"
         "} "
         "var columns = json['width'] ? json['width'] : 3;"
-        "var rows = json['shortcuts'].length / columns;"
+        "var rows = json['shortcuts'] ? json['shortcuts'].length / columns : 0;"
         "keyfile += '[settings]\\n'"
         "        +  'columns=' + columns + '\\n'"
         "        +  'rows=' + (rows > 3 ? rows : 3) + '\\n\\n';"