about summary refs log tree commit diff
path: root/src/libstd/sys/unix/process/process_common.rs
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2019-12-10 23:32:52 -0800
committerJeremy Fitzhardinge <jsgf@fb.com>2019-12-16 14:44:16 -0800
commit232022ff176bc77d19137ba7b3a40b73b403df9b (patch)
tree2089af8e84817a7feedd9ce49b901815cc30edd8 /src/libstd/sys/unix/process/process_common.rs
parenta2333023594826dc5078ce7129fafb85471b7857 (diff)
downloadrust-232022ff176bc77d19137ba7b3a40b73b403df9b.tar.gz
rust-232022ff176bc77d19137ba7b3a40b73b403df9b.zip
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/unix/process/process_common.rs')
-rw-r--r--src/libstd/sys/unix/process/process_common.rs8
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(())