diff options
| author | The Miri Conjob Bot <miri@cron.bot> | 2023-09-23 05:17:05 +0000 |
|---|---|---|
| committer | The Miri Conjob Bot <miri@cron.bot> | 2023-09-23 05:17:05 +0000 |
| commit | 3ca49cfe9d0ab73f3ee33f6f216b1d001f7cd073 (patch) | |
| tree | 8981d23317d71c12ac7a3e1241f1fed1fee34d41 /library/std/src/sys/unix/process/process_common.rs | |
| parent | 68706342323af86d58595d43a725637b42783675 (diff) | |
| parent | 79d685325c170f0aed483e4c50c1f2b7d5b2bdc1 (diff) | |
| download | rust-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.rs | 17 |
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())?; |
