From aeca9cb7baa8ef044723c60a1bfcb1a4aa27fa3c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 11 Dec 2020 21:47:54 -0500 Subject: [PATCH] Avoid adding // to resource paths The GResource machinery is not forgiving about this sort of thing. Fixes: #3469 --- gtk/gtkapplication.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c index 7b438f1581..e3e4401ff5 100644 --- a/gtk/gtkapplication.c +++ b/gtk/gtkapplication.c @@ -191,19 +191,23 @@ gtk_application_load_resources (GtkApplication *application) { GtkApplicationPrivate *priv = gtk_application_get_instance_private (application); const char *base_path; + const char *optional_slash = "/"; base_path = g_application_get_resource_base_path (G_APPLICATION (application)); if (base_path == NULL) return; + if (base_path[strlen (base_path) - 1] == '/') + optional_slash = ""; + /* Expand the icon search path */ { GtkIconTheme *default_theme; char *iconspath; default_theme = gtk_icon_theme_get_for_display (gdk_display_get_default ()); - iconspath = g_strconcat (base_path, "/icons/", NULL); + iconspath = g_strconcat (base_path, optional_slash, "icons/", NULL); gtk_icon_theme_add_resource_path (default_theme, iconspath); g_free (iconspath); } @@ -212,7 +216,7 @@ gtk_application_load_resources (GtkApplication *application) { char *menuspath; - menuspath = g_strconcat (base_path, "/gtk/menus.ui", NULL); + menuspath = g_strconcat (base_path, optional_slash, "gtk/menus.ui", NULL); if (g_resources_get_info (menuspath, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL, NULL, NULL)) priv->menus_builder = gtk_builder_new_from_resource (menuspath); g_free (menuspath); @@ -231,7 +235,7 @@ gtk_application_load_resources (GtkApplication *application) { char *path; - path = g_strconcat (base_path, "/gtk/help-overlay.ui", NULL); + path = g_strconcat (base_path, optional_slash, "gtk/help-overlay.ui", NULL); if (g_resources_get_info (path, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL, NULL, NULL)) { const char * const accels[] = { "question", NULL };