[vte] spawn: Use g_get_environ



commit bb873963040de80a86b94b8f0c2aec822b82d395
Author: Christian Persch <chpe src gnome org>
Date:   Fri May 1 11:05:04 2020 +0200

    spawn: Use g_get_environ

 src/spawn.cc | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
---
diff --git a/src/spawn.cc b/src/spawn.cc
index c766785a..e7188661 100644
--- a/src/spawn.cc
+++ b/src/spawn.cc
@@ -202,14 +202,18 @@ merge_environ(char** envp /* consumed */,
         auto table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
 
         if (inherit) {
-                auto parent_environ = g_listenv();
+                auto parent_environ = vte::glib::take_strv(g_get_environ());
                 if (parent_environ) {
-                        for (auto i = unsigned{0}; parent_environ[i] != NULL; ++i) {
-                                g_hash_table_replace(table,
-                                                     g_strdup(parent_environ[i]),
-                                                     g_strdup(g_getenv(parent_environ[i])));
+                        auto penvv = parent_environ.get();
+                        for (auto i = unsigned{0}; penvv[i] != NULL; ++i) {
+                                auto name = g_strdup(penvv[i]);
+                                auto value = strchr(name, '=');
+                                if (value) {
+                                        *value = '\0';
+                                        value = g_strdup(value + 1);
+                                }
+                                g_hash_table_replace(table, name, value); /* takes ownership of name and 
value */
                         }
-                        g_strfreev(parent_environ);
                 }
         }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]