diff --git a/midori/midori-view.c b/midori/midori-view.c index aa49de77..934b68bb 100644 --- a/midori/midori-view.c +++ b/midori/midori-view.c @@ -4315,45 +4315,22 @@ midori_view_set_uri (MidoriView* view, WebKitWebFrame* web_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (view->web_view)); JSContextRef js_context = webkit_web_frame_get_global_context (web_frame); gchar* video_formats = list_video_formats (js_context); - GString* more = g_string_new (""); - list_netscape_plugins (more, js_context); - list_about_uris (more); - katze_assign (view->uri, g_strdup (uri)); - data = g_strdup_printf ( - "about:version" - "

about:version

" - "

%s

" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "
Command line%s
Midori%s (%s)
WebKitGTK+%d.%d.%d (%d.%d.%d)
GTK+%d.%d.%d (%d.%d.%d)
Glib%d.%d.%d (%d.%d.%d)
libsoup%s
cairo%s (%s)
granite%s
libnotify%s
single instance%s
Platform%s %s %s
Identification%s
Video Formats%s
" - "%s" - "", - _("Version numbers in brackets show the version used at runtime."), - command_line, - PACKAGE_VERSION, midori_app_get_name (NULL), - WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION, WEBKIT_MICRO_VERSION, - webkit_major_version (), - webkit_minor_version (), - webkit_micro_version (), - GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION, - gtk_major_version, gtk_minor_version, gtk_micro_version, - GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION, - glib_major_version, glib_minor_version, glib_micro_version, + /* FIXME: This is for workarounding a crash deeper down the callstack on some systems. */ + static char const * const version_format_strings[] = { + "libsoup%s", + "cairo%s ", + "(%s)", + "granite%s", + "libnotify%s", + "single instance%s", + "Platform%s ", + "%s ", + "%s", + "Identification%s", + "Video Formats%s", + }; + char const * version_strings[] = { LIBSOUP_VERSION, CAIRO_VERSION_STRING, cairo_version_string (), GRANITE_VERSION, @@ -4368,7 +4345,50 @@ midori_view_set_uri (MidoriView* view, "Sockets", #endif platform, sys_name, architecture ? architecture : "", ident, - video_formats, (gchar*)(more->str)); + video_formats, + }; + int i = 0; + GString * tmp = g_string_new("");; + + GString* more = g_string_new (""); + list_netscape_plugins (more, js_context); + list_about_uris (more); + + katze_assign (view->uri, g_strdup (uri)); + g_string_append_printf (tmp, + "about:version" + "

about:version

" + "

%s

" + "" + "" + "" + "" + "" + "" + "", + _("Version numbers in brackets show the version used at runtime."), + command_line, + PACKAGE_VERSION, midori_app_get_name (NULL), + WEBKIT_MAJOR_VERSION, WEBKIT_MINOR_VERSION, WEBKIT_MICRO_VERSION, + webkit_major_version (), + webkit_minor_version (), + webkit_micro_version (), + GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION, + gtk_major_version, gtk_minor_version, gtk_micro_version, + GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION, + glib_major_version, glib_minor_version, glib_micro_version); + + for (i = 0; + i < sizeof (version_format_strings) / sizeof (version_format_strings[0]); + ++i) + g_string_append_printf (tmp, version_format_strings[i], version_strings[i]); + + g_string_append_printf ( + tmp, "
Command line%s
Midori%s (%s)
WebKitGTK+%d.%d.%d (%d.%d.%d)
GTK+%d.%d.%d (%d.%d.%d)
Glib%d.%d.%d (%d.%d.%d)
%s", (gchar*)(more->str)); + + data = g_string_free (tmp, FALSE); + g_free (command_line); g_free (arguments); g_free (ident);