gtk+ r20787 - in trunk: . gtk
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r20787 - in trunk: . gtk
- Date: Sun, 6 Jul 2008 05:34:03 +0000 (UTC)
Author: matthiasc
Date: Sun Jul 6 05:34:03 2008
New Revision: 20787
URL: http://svn.gnome.org/viewvc/gtk+?rev=20787&view=rev
Log:
2008-07-06 Matthias Clasen <mclasen redhat com>
Bug 541645 â gtkfilechooserdefault segfaults when bookmark does not
contain ://
* gtk/gtkfilechooserdefault.c (_gtk_file_chooser_label_for_file):
Be more robust. Reported by Jelte van der Hoek
Modified:
trunk/ChangeLog
trunk/gtk/gtkfilechooserdefault.c
Modified: trunk/gtk/gtkfilechooserdefault.c
==============================================================================
--- trunk/gtk/gtkfilechooserdefault.c (original)
+++ trunk/gtk/gtkfilechooserdefault.c Sun Jul 6 05:34:03 2008
@@ -1621,37 +1621,42 @@
uri = g_file_get_uri (file);
start = strstr (uri, "://");
- start += 3;
- path = strchr (start, '/');
-
- if (path)
- end = path;
- else
+ if (start)
{
- end = uri + strlen (uri);
- path = "/";
- }
+ start += 3;
+ path = strchr (start, '/');
+ if (path)
+ end = path;
+ else
+ {
+ end = uri + strlen (uri);
+ path = "/";
+ }
- /* strip username */
- p = strchr (start, '@');
- if (p && p < end)
+ /* strip username */
+ p = strchr (start, '@');
+ if (p && p < end)
+ start = p + 1;
+
+ p = strchr (start, ':');
+ if (p && p < end)
+ end = p;
+
+ host = g_strndup (start, end - start);
+
+ /* Translators: the first string is a path and the second string
+ * is a hostname. Nautilus and the panel contain the same string
+ * to translate.
+ */
+ label = g_strdup_printf (_("%1$s on %2$s"), path, host);
+
+ g_free (host);
+ }
+ else
{
- start = p + 1;
+ label = g_strdup (uri);
}
- p = strchr (start, ':');
- if (p && p < end)
- end = p;
-
- host = g_strndup (start, end - start);
-
- /* Translators: the first string is a path and the second string
- * is a hostname. Nautilus and the panel contain the same string
- * to translate.
- */
- label = g_strdup_printf (_("%1$s on %2$s"), path, host);
-
- g_free (host);
g_free (uri);
return label;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]