From f8f7163da34db629b8c349747d9444c0f7bfd015 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Tue, 12 May 2020 13:55:02 -0300 Subject: [PATCH] Adding method to set environment variables from session settings file (allow use of an alternative openssl config file). --- src/objects/window/header.c | 8 +++++--- src/objects/window/terminal.c | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/objects/window/header.c b/src/objects/window/header.c index ffaf81c..cb543c1 100644 --- a/src/objects/window/header.c +++ b/src/objects/window/header.c @@ -50,12 +50,14 @@ g_autoptr(GtkBuilder) builder = pw3270_application_get_builder("window.xml"); if(!gtk_application_prefers_app_menu(GTK_APPLICATION(g_application_get_default()))) { + + // No application menu, add view and help sections to open menu. + g_autoptr(GtkBuilder) app_builder = pw3270_application_get_builder("application.xml"); - g_menu_insert_submenu( + g_menu_append_section( G_MENU(gtk_builder_get_object(builder,"open-menu")), - 0, - _("Help"), + NULL, G_MENU_MODEL(gtk_builder_get_object(app_builder,"help-menu-placeholder")) ); diff --git a/src/objects/window/terminal.c b/src/objects/window/terminal.c index a7a4312..d7881f6 100644 --- a/src/objects/window/terminal.c +++ b/src/objects/window/terminal.c @@ -34,6 +34,7 @@ #include #include #include + #include #include #include @@ -261,9 +262,29 @@ } else { + // Got key file, load it. v3270_load_key_file(terminal,descriptor->key_file,NULL); v3270_accelerator_map_load_key_file(terminal,descriptor->key_file,NULL); + if(g_key_file_has_group(descriptor->key_file,"environment")) { + + // Has environment group, set values. + gchar **keys = g_key_file_get_keys(descriptor->key_file,"environment",NULL,NULL); + + if(keys) { + size_t ix; + for(ix=0;keys[ix];ix++) { + g_autofree gchar * value = g_key_file_get_string(descriptor->key_file,"environment",keys[ix],NULL); + if(value) { + if(setenv(keys[ix],value,1)) { + g_warning("Can't set \"%s\" to \"%s\"",keys[ix],value); + } + } + } + + g_strfreev(keys); + } + } } // Setup signals. -- libgit2 0.21.2