use strings instead of vecs to read childs stdio

This commit is contained in:
Abraham Toriz 2021-09-06 20:53:50 -05:00
parent b90400a1c7
commit 56e7c525a4
No known key found for this signature in database
GPG Key ID: D5B4A746DB5DD42A
1 changed files with 7 additions and 6 deletions

View File

@ -80,8 +80,8 @@ where
let mut stderr = child.stderr.take().expect("Failed to take stdout");
let mut wtr = Writer::from_writer(stdin);
let mut captured_out = Vec::new();
let mut captured_err = Vec::new();
let mut captured_out = String::new();
let mut captured_err = String::new();
for entry in entries {
// write to process' stdin
@ -92,14 +92,15 @@ where
entry.note.unwrap_or_else(|| "".into()),
entry.sheet,
])?;
wtr.flush()?;
// read process' stdout and stderr
stdout.read_to_end(&mut captured_out)?;
write!(out, "{}", String::from_utf8_lossy(&captured_out))?;
stdout.read_to_string(&mut captured_out)?;
write!(out, "{}", &captured_out)?;
captured_out.clear();
stderr.read_to_end(&mut captured_err)?;
write!(err, "{}", String::from_utf8_lossy(&captured_err))?;
stderr.read_to_string(&mut captured_err)?;
write!(err, "{}", &captured_err)?;
captured_err.clear();
}