mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 df2d69b49a
			
		
	
	
		df2d69b49a
		
	
	
	
	
		
			
			based on ruby_frame->iter altered by PUSH_ITER(). * eval.c (rb_thread_fd_close): should save current context before raising exception. * io.c (set_stdin): preserve original stdin. * io.c (set_outfile): preserve original stdout/stderr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			31 lines
		
	
	
	
		
			480 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			480 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # importenv.rb -- imports environment variables as global variables, Perlish ;(
 | |
| #
 | |
| # Usage:
 | |
| #
 | |
| #  require 'importenv'
 | |
| #  p $USER
 | |
| #  $USER = "matz"
 | |
| #  p ENV["USER"]
 | |
| 
 | |
| for k,v in ENV
 | |
|   next unless /^[a-zA-Z][_a-zA-Z0-9]*/ =~ k
 | |
|   eval <<EOS
 | |
|   $#{k} = v
 | |
|   trace_var "$#{k}", proc{|v|
 | |
|     ENV[%q!#{k}!] = v
 | |
|     $#{k} = v
 | |
|     if v == nil
 | |
|       untrace_var "$#{k}"
 | |
|     end
 | |
|   }
 | |
| EOS
 | |
| end
 | |
| 
 | |
| if __FILE__ == $0
 | |
|   p $TERM
 | |
|   $TERM = nil
 | |
|   p $TERM
 | |
|   p ENV["TERM"]
 | |
|   $TERM = "foo"
 | |
|   p ENV["TERM"]
 | |
| end
 |