[#23168] File.fnmatch のリファクタリング — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

13 messages 2004/03/08

[#23192] File.fnmatch と Dir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

19 messages 2004/03/13
[#23194] Re: File.fnmatch と Dir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/13

まつもと ゆきひろです

[#23195] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23196] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/14

山本です。

[#23260] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23261] Re: File.fnmatch とDir.glob の非互換部分 — matz@... (Yukihiro Matsumoto) 2004/03/30

まつもと ゆきひろです

[#23265] Re: File.fnmatch とDir.glob の非互換部分 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/03/30

山本です。

[#23238] Re: [ruby-cvs] ruby, ruby/lib, ruby/lib/rss, ruby/sample/openssl: * lib/logger.rb: trim tail space of each line. no user visible change. — Kouhei Sutou <kou@...>

須藤です.

10 messages 2004/03/27

[ruby-dev:23273] Re: File.fnmatch とDir.glob の非互換部分

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2004-03-30 09:38:32 UTC
List: ruby-dev #23273
山本です。

>原則として一貫している(動作が理解できる)ことを希望しますが、
>「どうあるべきか」は断言しにくいですよね。
>
>考えてみると、このようなケースではエスケープをどこで処理する
>かによって意味が変わってきますよね。おそらくはglobで意味を持
>つ文字のエスケープはglob内で処理し、それ以外はそのまま
>fnmatchに渡るべきなのでしょう。
>
>で、/はglobで意味のある文字だと思うので、このエスケープは
>glob内で処理すべきなんでしょうね。とすると、その意味は「エス
>ケープされて特殊な意味をキャンセルされた/」つまり「パス区切
>りでない/」のような気がするので、少なくともUNIX的ファイルシ
>ステムでは見つけた瞬間にマッチしないことがわかるような気がし
>ます。って、そういうことではないのかな。

そういうことなら、今の glob は、無条件に '/' で区切ってしまっていますが、
これを '[' と ']' の間にある '/' と '\' の直後にある '/' はセパレータとして処理せず
スキップする、ということで実装できそうです。

となると、FNM_PATHNAME なときの fnmatch はどうあるべきでしょうか?

  File.fnmatch('a\/b', 'a/b', File::FNM_PATHNAME) #=> true or false ?

# glob と一貫性を持たせるなら、false のような気がします

In This Thread