mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* ext/pty/pty.c (pty_getpty): check dup failure.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									cadee06b2a
								
							
						
					
					
						commit
						c86115e996
					
				
					 2 changed files with 27 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,7 @@
 | 
			
		|||
Fri Jun 26 21:48:30 2009  Tanaka Akira  <akr@fsij.org>
 | 
			
		||||
 | 
			
		||||
	* ext/pty/pty.c (pty_getpty): check dup failure.
 | 
			
		||||
 | 
			
		||||
Fri Jun 26 17:33:46 2009  Yukihiro Matsumoto  <matz@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* test/ruby/test_rubyoptions.rb (TestRubyOptions#test_rubyopt):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -511,7 +511,27 @@ pty_detach_process(struct pty_info *info)
 | 
			
		|||
    return Qnil;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* ruby function: getpty */
 | 
			
		||||
/*
 | 
			
		||||
 * call-seq:
 | 
			
		||||
 *   PTY.spawn(command...) {|r, w, pid| ... }   => nil
 | 
			
		||||
 *   PTY.spawn(command...)                      => r, w, pid
 | 
			
		||||
 *   PTY.getpty(command...) {|r, w, pid| ... }  => nil
 | 
			
		||||
 *   PTY.getpty(command...)                     => r, w, pid
 | 
			
		||||
 *
 | 
			
		||||
 * spawns the specified command on a newly allocated pty.
 | 
			
		||||
 *
 | 
			
		||||
 * The command's controlling tty is set to the slave device of the pty.
 | 
			
		||||
 * Also its standard input/output/error is redirected to the slave device.
 | 
			
		||||
 *
 | 
			
		||||
 * PTY.spawn returns two IO objects and PID.
 | 
			
		||||
 * PID is the process ID of the command.
 | 
			
		||||
 * The two IO objects are connected to the master device of the pty.
 | 
			
		||||
 * The first IO object is opened as read mode and
 | 
			
		||||
 * The second is opened as write mode.
 | 
			
		||||
 *
 | 
			
		||||
 * If a block is given, two IO objects and PID is yielded.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
static VALUE
 | 
			
		||||
pty_getpty(int argc, VALUE *argv, VALUE self)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -533,6 +553,8 @@ pty_getpty(int argc, VALUE *argv, VALUE self)
 | 
			
		|||
 | 
			
		||||
    wfptr->mode = rb_io_mode_flags("w") | FMODE_SYNC;
 | 
			
		||||
    wfptr->fd = dup(info.fd);
 | 
			
		||||
    if (wfptr->fd == -1)
 | 
			
		||||
        rb_sys_fail("dup()");
 | 
			
		||||
    wfptr->pathv = rfptr->pathv;
 | 
			
		||||
 | 
			
		||||
    res = rb_ary_new2(3);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue