From: Paul Hänsch Date: Thu, 16 Jul 2026 14:47:51 +0000 (+0200) Subject: allow merging multiple glade files from command line X-Git-Url: https://git.plutz.net/?a=commitdiff_plain;h=994e742bb10537c47a31f5a3c7eb1762d553d28f;p=gladerunner allow merging multiple glade files from command line --- 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);