From: gotoken@... (GOTO Kentaro) Date: 1999-08-04T21:09:35+09:00 Subject: [ruby-list:15879] Re: cannot install ruby-gtk into FreeBSD 2.2.x --Multipart_Wed_Aug__4_21:08:55_1999-1 Content-Type: text/plain; charset=ISO-2022-JP ごとけんです In message "[ruby-list:15875] Re: cannot install ruby-gtk into FreeBSD 2.2.x" on 99/08/04, Katsuyuki Komatsu writes: >ruby.cの#include もio.cと同様に#if defined(HAVE_FCNTL_H) >で囲む必要があると思います……とruby.cの別の問題を書いておいて、 >「ruby.cをさわるならごいっしょに[ruby-list:15843]もいかがですか?」 >とお願いしてみましょうか。 おお、それは気づきませんでした。とにかくお願いしましょう ^^;;; >|それは気になってはいましたが、UNIXモデルでは実行ファイルが自 >|身の場所を知る方法ってないと思うです、たぶん。ってわけで書い >|てみました。File::which("ls") => ["/bin/ls"] というものです。 > >相対パス指定がちょっと (^^; レポートどうもです。あうー。これは修正しました。んが、 >忘れてましたが、これはCOMMAND.COMあるいはCMD.EXEの機能なので >cygwinのbashでmswin32の./rubyを起動した場合のケースではUNIX >と同様の対処が必要です。 > >すると、which.rbにもdosishの対策が必要かも。 dosish対策ってよく分からないのです…セパレータを切り替えれば いいんでしょうか?? 勘違いしてたら教えて下さい。 -- gotoken --Multipart_Wed_Aug__4_21:08:55_1999-1 Content-Type: application/octet-stream Content-Disposition: attachment; filename="which.rb" Content-Transfer-Encoding: 7bit #!/usr/local/bin/ruby class << File def which(target, all = false) path = ENV['PATH'].split (":") #(File::PATH_SEPARATOR) res = [] for prog in target if (prog =~ File::SEPARATOR) res.push prog if test(?x, prog) && test(?f, prog) else for e in path cmd = e + File::SEPARATOR + prog if test(?x, cmd) && test(?f, cmd) res.push cmd break unless all end end end end res end end if __FILE__ == $0 all = silent = found = false if ARGV[0] == '-a' all = true; ARGV.shift elsif ARGV[0] == '-s' silent = true; ARGV.shift elsif ARGV[0] =~ /^-(h|help|\?)$/ STDERR.puts "usage: which [-a] [-s] program ..." exit end res = File::which(ARGV, all) puts res unless silent exit (res.empty? ? 1 : 0) end --Multipart_Wed_Aug__4_21:08:55_1999-1--