diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-12-20 12:17:22 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-20 12:17:22 +0100 |
| commit | b779cbbe6806caccb73f21ac6aeba99316ca8900 (patch) | |
| tree | 1e0df416d7841096d632bd247f17c05b7abf0f9f /src/libstd/sys | |
| parent | f0eb4b4752424233e64b19ae242c052eaa65e1ce (diff) | |
| parent | ce56e7528359b9581cac0b59080d25468d60de20 (diff) | |
| download | rust-b779cbbe6806caccb73f21ac6aeba99316ca8900.tar.gz rust-b779cbbe6806caccb73f21ac6aeba99316ca8900.zip | |
Rollup merge of #67219 - jsgf:command-argv0-debug, r=joshtriplett
Fix up Command Debug output when arg0 is specified. PR https://github.com/rust-lang/rust/pull/66512 added the ability to set argv[0] on Command. As a side effect, it changed the Debug output to print both the program and argv[0], which in practice results in stuttery output (`"echo" "echo" "foo"`). This PR reverts the behaviour to the the old one, so that the command is only printed once - unless arg0 has been set. In that case it emits `"[command]" "arg0" "arg1" ...`.
Diffstat (limited to 'src/libstd/sys')
| -rw-r--r-- | src/libstd/sys/unix/process/process_common.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libstd/sys/unix/process/process_common.rs b/src/libstd/sys/unix/process/process_common.rs index c9109b0c9d4..e66d6fdc56a 100644 --- a/src/libstd/sys/unix/process/process_common.rs +++ b/src/libstd/sys/unix/process/process_common.rs @@ -375,8 +375,12 @@ impl ChildStdio { impl fmt::Debug for Command { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{:?}", self.program)?; - for arg in &self.args { + if self.program != self.args[0] { + write!(f, "[{:?}] ", self.program)?; + } + write!(f, "{:?}", self.args[0])?; + + for arg in &self.args[1..] { write!(f, " {:?}", arg)?; } Ok(()) |
