summaryrefslogtreecommitdiffstats
path: root/sample/uumerge.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-16 12:13:05 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-01-16 12:13:05 +0000
commit99d0354e89aefdb6373dbeb22506216b8790a0bd (patch)
treeb3c086e437cab449f90ba637710daed0ddfec4c4 /sample/uumerge.rb
parent502e7547b5c274c51365d11fdfe0e69ee9aa5a52 (diff)
downloadruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.tar.gz
ruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.tar.xz
ruby-99d0354e89aefdb6373dbeb22506216b8790a0bd.zip
Initial revision
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sample/uumerge.rb')
-rw-r--r--sample/uumerge.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/sample/uumerge.rb b/sample/uumerge.rb
new file mode 100644
index 000000000..297b08f26
--- /dev/null
+++ b/sample/uumerge.rb
@@ -0,0 +1,37 @@
+#!/usr/local/bin/ruby
+
+if ARGV[0] == "-c"
+ out_stdout = 1;
+ ARGV.shift
+end
+
+while gets()
+ if /^begin\s*(\d*)\s*(\S*)/
+ $mode, $file = $1, $2
+ $sawbegin+=1
+ break
+ end
+end
+
+fail "missing begin" if ! $sawbegin;
+
+if out_stdout
+ out = STDOUT
+else
+ out = open($file, "w") if $file != "";
+end
+
+while gets()
+ if /^end/
+ $sawend+=1
+ break
+ end
+ sub(/[a-z]+$/, ""); # handle stupid trailing lowercase letters
+ next if /[a-z]/
+ next if !(((($_[0] - 32) & 077) + 2) / 3 == $_.length / 4)
+ out << $_.unpack("u");
+end
+
+fail "missing end" if !$sawend;
+File.chmod $mode.oct, $file if ! out_stdout
+exit 0;