mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 08ec02b92b
			
		
	
	
		08ec02b92b
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			838 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			838 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| #!/usr/bin/env ruby
 | |
| 
 | |
| if ARGV[0] == "-c"
 | |
|   out_stdout = 1
 | |
|   ARGV.shift
 | |
| end
 | |
| 
 | |
| $sawbegin = 0
 | |
| $sawend = 0
 | |
| 
 | |
| while line = gets()
 | |
|   if /^begin\s*(\d*)\s*(\S*)/ =~ line
 | |
|     $mode, $file = $1, $2
 | |
|     $sawbegin+=1
 | |
|     if out_stdout
 | |
|       out = STDOUT
 | |
|     else
 | |
|       out = open($file, "w") if $file != ""
 | |
|     end
 | |
|     out.binmode
 | |
|     break
 | |
|   end
 | |
| end
 | |
| 
 | |
| raise "missing begin" unless $sawbegin
 | |
| 
 | |
| out.binmode
 | |
| while line = gets()
 | |
|   if /^end/ =~ line
 | |
|     $sawend+=1
 | |
|     out.close unless out_stdout
 | |
|     File.chmod $mode.oct, $file unless out_stdout
 | |
|     next
 | |
|   end
 | |
|   line.sub!(/[a-z]+$/, "")	# handle stupid trailing lowercase letters
 | |
|   next if /[a-z]/ =~ line
 | |
|   next if !(((($_[0] - 32) & 077) + 2) / 3 == $_.length / 4)
 | |
|   out << $_.unpack("u") if $sawbegin > $sawend
 | |
| end
 | |
| 
 | |
| raise "missing end" if $sawbegin > $sawend
 | |
| raise "missing begin" if ! $sawbegin
 | |
| exit 0
 | |
|  |