about summary refs log tree commit diff
path: root/library/std/src/sys/unix/process/process_common.rs
diff options
context:
space:
mode:
authorThe Miri Conjob Bot <miri@cron.bot>2023-09-23 05:17:05 +0000
committerThe Miri Conjob Bot <miri@cron.bot>2023-09-23 05:17:05 +0000
commit3ca49cfe9d0ab73f3ee33f6f216b1d001f7cd073 (patch)
tree8981d23317d71c12ac7a3e1241f1fed1fee34d41 /library/std/src/sys/unix/process/process_common.rs
parent68706342323af86d58595d43a725637b42783675 (diff)
parent79d685325c170f0aed483e4c50c1f2b7d5b2bdc1 (diff)
downloadrust-3ca49cfe9d0ab73f3ee33f6f216b1d001f7cd073.tar.gz
rust-3ca49cfe9d0ab73f3ee33f6f216b1d001f7cd073.zip
Merge from rustc
Diffstat (limited to 'library/std/src/sys/unix/process/process_common.rs')
-rw-r--r--library/std/src/sys/unix/process/process_common.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/library/std/src/sys/unix/process/process_common.rs b/library/std/src/sys/unix/process/process_common.rs
index f729da44774..1ca11a7f9d7 100644
--- a/library/std/src/sys/unix/process/process_common.rs
+++ b/library/std/src/sys/unix/process/process_common.rs
@@ -586,6 +586,23 @@ impl fmt::Debug for Command {
             if let Some(ref cwd) = self.cwd {
                 write!(f, "cd {cwd:?} && ")?;
             }
+            if self.env.does_clear() {
+                write!(f, "env -i ")?;
+                // Altered env vars will be printed next, that should exactly work as expected.
+            } else {
+                // Removed env vars need the command to be wrapped in `env`.
+                let mut any_removed = false;
+                for (key, value_opt) in self.get_envs() {
+                    if value_opt.is_none() {
+                        if !any_removed {
+                            write!(f, "env ")?;
+                            any_removed = true;
+                        }
+                        write!(f, "-u {} ", key.to_string_lossy())?;
+                    }
+                }
+            }
+            // Altered env vars can just be added in front of the program.
             for (key, value_opt) in self.get_envs() {
                 if let Some(value) = value_opt {
                     write!(f, "{}={value:?} ", key.to_string_lossy())?;