summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/pty/pty.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/ext/pty/pty.c b/ext/pty/pty.c
index cb663ab2de..c85f1dcae3 100644
--- a/ext/pty/pty.c
+++ b/ext/pty/pty.c
@@ -539,10 +539,10 @@ pty_detach_process(VALUE v)
/*
* call-seq:
- * PTY.spawn(command_line) { |r, w, pid| ... }
- * PTY.spawn(command_line) => [r, w, pid]
- * PTY.spawn(command, arguments, ...) { |r, w, pid| ... }
- * PTY.spawn(command, arguments, ...) => [r, w, pid]
+ * PTY.spawn([env,] command_line) { |r, w, pid| ... }
+ * PTY.spawn([env,] command_line) => [r, w, pid]
+ * PTY.spawn([env,] command, arguments, ...) { |r, w, pid| ... }
+ * PTY.spawn([env,] command, arguments, ...) => [r, w, pid]
*
* Spawns the specified command on a newly allocated pty. You can also use the
* alias ::getpty.
@@ -550,6 +550,13 @@ pty_detach_process(VALUE v)
* The command's controlling tty is set to the slave device of the pty
* and its standard input/output/error is redirected to the slave device.
*
+ * +env+ is an optional hash that provides additional environment variables to the spawned pty.
+ *
+ * # sets FOO to "bar"
+ * PTY.spawn({"FOO"=>"bar"}, "printenv", "FOO") { |r,w,pid| p r.read } #=> "bar\r\n"
+ * # unsets FOO
+ * PTY.spawn({"FOO"=>nil}, "printenv", "FOO") { |r,w,pid| p r.read } #=> ""
+ *
* +command+ and +command_line+ are the full commands to run, given a String.
* Any additional +arguments+ will be passed to the command.
*