summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/sample/uumerge.rb
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-15 23:23:39 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-15 23:23:39 +0000
commit6175ca03be6d0d51359f9017123708987d0f5eb7 (patch)
treeecfcf6e79a21b1d25c3f6f42dd68ea0a14add89c /ruby_1_8_5/sample/uumerge.rb
parent80a56b248b2e9cfc95622aed98750df05a19f667 (diff)
add tag v1_8_5_91v1_8_5_91
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_91@13046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_5/sample/uumerge.rb')
-rw-r--r--ruby_1_8_5/sample/uumerge.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/ruby_1_8_5/sample/uumerge.rb b/ruby_1_8_5/sample/uumerge.rb
new file mode 100644
index 0000000000..2576bcb864
--- /dev/null
+++ b/ruby_1_8_5/sample/uumerge.rb
@@ -0,0 +1,43 @@
+#!/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