From 7ff541040edc3b3f8a25bb69e04ecb57cba12954 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sat, 24 Jan 2026 16:29:23 +0100 Subject: GTK: fixed --detach and support stdout/stderr redirections * We fork after command line arguments have been parsed, which is after gtk_get_option_group() has been called. This means that GTK was already initialized and it wasn't safe to continue after forking. * As a workaround, we now re-exec with the original argv array, so GTK can be properly reinitialized. Since we did not remove `--detach` from argv (and that would be nontrivial), it would fork again endlessly, so we use an environment variable $__SCITECO_DETACHED to guard against recursive forks. * Also, do not close stdin/stdout/stderr if has been redirected to a file, so you can now e.g. call `gsciteco -d >some-file`. * This was broken since v2.5.0. --- src/interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/interface.h') diff --git a/src/interface.h b/src/interface.h index f196a83..54f807b 100644 --- a/src/interface.h +++ b/src/interface.h @@ -51,7 +51,7 @@ extern teco_view_t *teco_interface_current_view; /** @pure */ -void teco_interface_init(void); +void teco_interface_init(gint argc, gchar **argv); /** @pure */ GOptionGroup *teco_interface_get_options(void); -- cgit v1.2.3