前田です。 In message "[ruby-list:6442] Re: rgrep (Re: call for scripts)" Shugo Maeda <shugo / po.aianet.ne.jp> wrote: |typeを使っているので1.1でないと動きませんが、1.0でも動かないと |まずいでしょうか。 すみません、修行不足でした、typeを使う必要は全然ありませんでした。 正規表現ってえらいですね。 # 「えらい」といっても「疲れた」という意味ではないです:-) というわけで1.0でも動くようにしました。 -- 前田 修吾
--- rgrep.rb.orig Mon Feb 16 20:18:22 1998 +++ rgrep.rb Mon Feb 16 20:44:39 1998 @@ -6,19 +6,15 @@ $filename = nil $exit_status = 1 -ERROR_MSG_TABLE = { - Errno::ENOENT => "No such file or directory", - Errno::EACCES => "Permission denied" -} +FILE_ERROR_MSG = /^(No such file or directory|Permission denied) - (.*)$/ def handle_file begin yield rescue Errno::ENOENT, Errno::EACCES unless $OPT_s - errmsg = ERROR_MSG_TABLE[$!.type] - $!.scan(/#{errmsg} - (.*)$/) do |filename| - $stderr.puts("rgrep: #{filename}: #{errmsg}") + $!.scan(FILE_ERROR_MSG) do |msg, file| + $stderr.printf("rgrep: #{file}: #{msg}\n") end end end @@ -45,7 +41,7 @@ end def print_usage - $stderr.puts("usage: rgrep [-[hinqs]] <expr> [<files...>]") + $stderr.printf("usage: rgrep [-[hinqs]] <expr> [<files...>]\n") end def grep(file) @@ -66,7 +62,7 @@ end unless getopts("hinqs") - $stderr.puts("rgrep: illegal option") + $stderr.printf("rgrep: illegal option\n") print_usage exit(2) end