mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 af2009a58f
			
		
	
	
		af2009a58f
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			560 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			560 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| require 'pty'
 | |
| 
 | |
| if ARGV.size == 0 then
 | |
|   ofile = "typescript"
 | |
| else
 | |
|   ofile = ARGV[0]
 | |
| end
 | |
| 
 | |
| logfile = File.open(ofile,"a")
 | |
| 
 | |
| system "stty -echo raw lnext ^_"
 | |
| 
 | |
| PTY.spawn("/bin/csh") do |r_pty,w_pty,pid|
 | |
| 
 | |
|   Thread.new do
 | |
|     while true
 | |
|       w_pty.print STDIN.getc.chr
 | |
|       w_pty.flush
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   begin
 | |
|     while true
 | |
|       c = r_pty.sysread(512)
 | |
|       break if c.nil?
 | |
|       print c
 | |
|       STDOUT.flush
 | |
|       logfile.print c
 | |
|     end
 | |
|   rescue
 | |
|   #  print $@,':',$!,"\n"
 | |
|     logfile.close
 | |
|   end
 | |
| end
 | |
| 
 | |
| system "stty echo -raw lnext ^v"
 |