From 994e742bb10537c47a31f5a3c7eb1762d553d28f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Paul=20H=C3=A4nsch?= Date: Thu, 16 Jul 2026 16:47:51 +0200 Subject: [PATCH] allow merging multiple glade files from command line --- glade2.glade | 2 +- gladerunner.c | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/glade2.glade b/glade2.glade index 847fa99..e1f9d38 100644 --- a/glade2.glade +++ b/glade2.glade @@ -216,7 +216,7 @@ True False - + True False B diff --git a/gladerunner.c b/gladerunner.c index fdc6d9e..3885279 100644 --- a/gladerunner.c +++ b/gladerunner.c @@ -297,23 +297,19 @@ int main(int argc, char *argv[]) { memcpy(gtkarg, argv, sizeof(char*) * argc); gtk_init(&arg, >karg); + builder = gtk_builder_new(); + GError *gerr = NULL; + for (arg = 1; arg < argc; arg++) { if (strcmp(argv[arg], "--") == 0) { printf("chldopen\n"); chldopen(&argv[arg + 1]); break; - } else if ( (testfd = open(argv[arg], O_RDONLY)) > 0 ) { - close(testfd); - builder = gtk_builder_new_from_file(argv[arg]); - } else { - dprintf(STDERR_FILENO, "Unknown argument: %s\n", argv[arg]); - exit(1); + } else if ( ! gtk_builder_add_from_file(builder, argv[arg], &gerr) ) { + dprintf(STDERR_FILENO, "%s\n", gerr->message); + free(gerr); } } - if (! builder) { - dprintf(STDERR_FILENO, "No .glade file given\n"); - exit(1); - } widgets = gtk_builder_get_objects(builder); g_slist_foreach(widgets, *init_widgets, NULL); g_slist_free(widgets); -- 2.47.3