aboutsummaryrefslogtreecommitdiff
path: root/ctr-std/src/sys/redox/process.rs
diff options
context:
space:
mode:
authorFenrir <[email protected]>2018-08-19 17:48:00 -0600
committerFenrir <[email protected]>2018-08-19 17:56:18 -0600
commit5d28bfcfd6086c3328837de9695099ea39048d0d (patch)
treea514fde042ff2a504a03305bfe0894ff8cd8d47e /ctr-std/src/sys/redox/process.rs
parentUpdate for latest nightly 2018-06-09 (#70) (diff)
downloadctru-rs-5d28bfcfd6086c3328837de9695099ea39048d0d.tar.xz
ctru-rs-5d28bfcfd6086c3328837de9695099ea39048d0d.zip
Update for nightly-2018-08-18
Diffstat (limited to 'ctr-std/src/sys/redox/process.rs')
-rw-r--r--ctr-std/src/sys/redox/process.rs15
1 files changed, 8 insertions, 7 deletions
diff --git a/ctr-std/src/sys/redox/process.rs b/ctr-std/src/sys/redox/process.rs
index d0b94e1..2037616 100644
--- a/ctr-std/src/sys/redox/process.rs
+++ b/ctr-std/src/sys/redox/process.rs
@@ -13,6 +13,7 @@ use ffi::OsStr;
use os::unix::ffi::OsStrExt;
use fmt;
use io::{self, Error, ErrorKind};
+use iter;
use libc::{EXIT_SUCCESS, EXIT_FAILURE};
use path::{Path, PathBuf};
use sys::fd::FileDesc;
@@ -51,7 +52,7 @@ pub struct Command {
uid: Option<u32>,
gid: Option<u32>,
saw_nul: bool,
- closures: Vec<Box<FnMut() -> io::Result<()> + Send + Sync>>,
+ closures: Vec<Box<dyn FnMut() -> io::Result<()> + Send + Sync>>,
stdin: Option<Stdio>,
stdout: Option<Stdio>,
stderr: Option<Stdio>,
@@ -122,7 +123,7 @@ impl Command {
}
pub fn before_exec(&mut self,
- f: Box<FnMut() -> io::Result<()> + Send + Sync>) {
+ f: Box<dyn FnMut() -> io::Result<()> + Send + Sync>) {
self.closures.push(f);
}
@@ -296,11 +297,11 @@ impl Command {
t!(callback());
}
- let mut args: Vec<[usize; 2]> = Vec::new();
- args.push([self.program.as_ptr() as usize, self.program.len()]);
- for arg in self.args.iter() {
- args.push([arg.as_ptr() as usize, arg.len()]);
- }
+ let args: Vec<[usize; 2]> = iter::once(
+ [self.program.as_ptr() as usize, self.program.len()]
+ ).chain(
+ self.args.iter().map(|arg| [arg.as_ptr() as usize, arg.len()])
+ ).collect();
self.env.apply();