Commit f8f7163da34db629b8c349747d9444c0f7bfd015
1 parent
ba062e90
Exists in
master
and in
4 other branches
Adding method to set environment variables from session settings file
(allow use of an alternative openssl config file).
Showing
2 changed files
with
26 additions
and
3 deletions
Show diff stats
src/objects/window/header.c
... | ... | @@ -50,12 +50,14 @@ |
50 | 50 | g_autoptr(GtkBuilder) builder = pw3270_application_get_builder("window.xml"); |
51 | 51 | |
52 | 52 | if(!gtk_application_prefers_app_menu(GTK_APPLICATION(g_application_get_default()))) { |
53 | + | |
54 | + // No application menu, add view and help sections to open menu. | |
55 | + | |
53 | 56 | g_autoptr(GtkBuilder) app_builder = pw3270_application_get_builder("application.xml"); |
54 | 57 | |
55 | - g_menu_insert_submenu( | |
58 | + g_menu_append_section( | |
56 | 59 | G_MENU(gtk_builder_get_object(builder,"open-menu")), |
57 | - 0, | |
58 | - _("Help"), | |
60 | + NULL, | |
59 | 61 | G_MENU_MODEL(gtk_builder_get_object(app_builder,"help-menu-placeholder")) |
60 | 62 | ); |
61 | 63 | ... | ... |
src/objects/window/terminal.c
... | ... | @@ -34,6 +34,7 @@ |
34 | 34 | #include <fcntl.h> |
35 | 35 | #include <sys/types.h> |
36 | 36 | #include <sys/stat.h> |
37 | + #include <stdlib.h> | |
37 | 38 | |
38 | 39 | #include <pw3270/actions.h> |
39 | 40 | #include <lib3270/toggle.h> |
... | ... | @@ -261,9 +262,29 @@ |
261 | 262 | |
262 | 263 | } else { |
263 | 264 | |
265 | + // Got key file, load it. | |
264 | 266 | v3270_load_key_file(terminal,descriptor->key_file,NULL); |
265 | 267 | v3270_accelerator_map_load_key_file(terminal,descriptor->key_file,NULL); |
266 | 268 | |
269 | + if(g_key_file_has_group(descriptor->key_file,"environment")) { | |
270 | + | |
271 | + // Has environment group, set values. | |
272 | + gchar **keys = g_key_file_get_keys(descriptor->key_file,"environment",NULL,NULL); | |
273 | + | |
274 | + if(keys) { | |
275 | + size_t ix; | |
276 | + for(ix=0;keys[ix];ix++) { | |
277 | + g_autofree gchar * value = g_key_file_get_string(descriptor->key_file,"environment",keys[ix],NULL); | |
278 | + if(value) { | |
279 | + if(setenv(keys[ix],value,1)) { | |
280 | + g_warning("Can't set \"%s\" to \"%s\"",keys[ix],value); | |
281 | + } | |
282 | + } | |
283 | + } | |
284 | + | |
285 | + g_strfreev(keys); | |
286 | + } | |
287 | + } | |
267 | 288 | } |
268 | 289 | |
269 | 290 | // Setup signals. | ... | ... |