[gnome-builder/wip/gtk4-port: 1637/1774] libide/foundry: handle merging environment layers
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/gtk4-port: 1637/1774] libide/foundry: handle merging environment layers
- Date: Mon, 11 Jul 2022 22:31:52 +0000 (UTC)
commit 9fabb136f74482fb02c6fcd659635876306a3d66
Author: Christian Hergert <chergert redhat com>
Date: Fri Jun 24 00:02:48 2022 -0700
libide/foundry: handle merging environment layers
If environment was set without an argument vector, then what we wanted was
to just merge the environments. Do that instead.
src/libide/foundry/ide-run-context.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
---
diff --git a/src/libide/foundry/ide-run-context.c b/src/libide/foundry/ide-run-context.c
index 0a8fae32d..b67b9fdce 100644
--- a/src/libide/foundry/ide-run-context.c
+++ b/src/libide/foundry/ide-run-context.c
@@ -822,16 +822,17 @@ ide_run_context_default_handler (IdeRunContext *self,
if (!ide_unix_fd_map_steal_from (layer->unix_fd_map, unix_fd_map, error))
return FALSE;
- /* Replace environment for this layer to use "env FOO=Bar" style subcommand
- * so that it's evironment doesn't attach to the parent program.
- */
- ide_run_context_environ_to_argv (self);
-
- /* Then make sure the higher layer's environment has higher priority */
- ide_run_context_set_environ (self, env);
-
- /* Now append the arguments */
- ide_run_context_append_args (self, argv);
+ if (argv != NULL && argv[0] != NULL)
+ {
+ /* Convert environment into "env FOO=BAR subcommand" style */
+ ide_run_context_environ_to_argv (self);
+ ide_run_context_append_args (self, argv);
+ }
+ else
+ {
+ /* No argv was provided, just merge environments */
+ ide_run_context_add_environ (self, env);
+ }
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]