* If this is Some(vec-of-names-and-values) then the new process will
* have an environment containing the given named values only.
*/
- env: Option<&'self [(~str, ~str)]>,
+ env: Option<~[(~str, ~str)]>,
/**
* If this is None then the new process will use the same initial working
Some(fd) => (None, fd)
};
- let res = spawn_process_os(prog, args, options.env, options.dir,
+ let res = spawn_process_os(prog, args, options.env.clone(), options.dir,
in_fd, out_fd, err_fd);
unsafe {
#[cfg(windows)]
fn spawn_process_os(prog: &str, args: &[~str],
- env: Option<&[(~str, ~str)]>,
+ env: Option<~[(~str, ~str)]>,
dir: Option<&Path>,
in_fd: c_int, out_fd: c_int, err_fd: c_int) -> SpawnProcessResult {
#[cfg(unix)]
fn spawn_process_os(prog: &str, args: &[~str],
- env: Option<&[(~str, ~str)]>,
+ env: Option<~[(~str, ~str)]>,
dir: Option<&Path>,
in_fd: c_int, out_fd: c_int, err_fd: c_int) -> SpawnProcessResult {
}
#[cfg(unix)]
-fn with_envp<T>(env: Option<&[(~str, ~str)]>, cb: &fn(*c_void) -> T) -> T {
+fn with_envp<T>(env: Option<~[(~str, ~str)]>, cb: &fn(*c_void) -> T) -> T {
use vec;
// On posixy systems we can pass a char** for envp, which is a
}
#[cfg(windows)]
-fn with_envp<T>(env: Option<&[(~str, ~str)]>, cb: &fn(*mut c_void) -> T) -> T {
+fn with_envp<T>(env: Option<~[(~str, ~str)]>, cb: &fn(*mut c_void) -> T) -> T {
// On win32 we pass an "environment block" which is not a char**, but
// rather a concatenation of null-terminated k=v\0 sequences, with a final
// \0 to terminate.
}
#[cfg(unix,not(target_os="android"))]
- fn run_env(env: Option<&[(~str, ~str)]>) -> run::Process {
+ fn run_env(env: Option<~[(~str, ~str)]>) -> run::Process {
run::Process::new("env", [], run::ProcessOptions {
env: env,
.. run::ProcessOptions::new()
})
}
#[cfg(unix,target_os="android")]
- fn run_env(env: Option<&[(~str, ~str)]>) -> run::Process {
+ fn run_env(env: Option<~[(~str, ~str)]>) -> run::Process {
run::Process::new("/system/bin/sh", [~"-c",~"set"], run::ProcessOptions {
env: env,
.. run::ProcessOptions::new()
}
#[cfg(windows)]
- fn run_env(env: Option<&[(~str, ~str)]>) -> run::Process {
+ fn run_env(env: Option<~[(~str, ~str)]>) -> run::Process {
run::Process::new("cmd", [~"/c", ~"set"], run::ProcessOptions {
env: env,
.. run::ProcessOptions::new()
let mut new_env = os::env();
new_env.push((~"RUN_TEST_NEW_ENV", ~"123"));
- let mut prog = run_env(Some(new_env.slice(0, new_env.len())));
+ let mut prog = run_env(Some(new_env));
let output = str::from_bytes(prog.finish_with_output().output);
assert!(output.contains("RUN_TEST_NEW_ENV=123"));