[vte] spawn: Use g_get_environ
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] spawn: Use g_get_environ
- Date: Fri, 1 May 2020 09:05:15 +0000 (UTC)
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]