[#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:23291] Re: File.fnmatch とDir.glob の非互換部分

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

>|>となると、FNM_PATHNAME なときの fnmatch はどうあるべきでしょうか?
>|>
>|>  File.fnmatch('a\/b', 'a/b', File::FNM_PATHNAME) #=> true or false ?
>|>
>|># glob と一貫性を持たせるなら、false のような気がします
>
>決めてしまえばどちらでもよいように思いますが、FNM_PATHNAMEの
>役割は
>
>       FNM_PATHNAME
>
>              こ のフラグがセットされていると、 string 中の
>              スラッシュ (/) を pattern にあるスラッシュその
>              ものにだけマッチさせ、それ以外 (例えばスラッシュ
>              を含む [] シーケンスなど) にはマッチさせない。
>
>であり、「/」という文字そのものに特殊な意味を与えているわけ
>ではなさそうなので、trueじゃないか、という気がします。

非互換をなくす当初の目標からは false かなあ、と思いますが、私は true でもいいです。'\/' なんて、
どちらでもいいような気がするし・・・どうしても気になるようなら、改めて提案します。

結論が得られたようなので、パッチをつくろうと思います。

・閉じてない '[' は「マッチ失敗」に統一する(現在の File.fnmatch の挙動)
・不完全なエスケープは除去する(現在の remove_backslashes: Dir.glob with PLAIN の挙動)
・'[' と ']' の間にある '/' は、FNM_PATHNAME と Dir.glob で無視する(現在の File.fnmatch の挙動)
・'\/' は FNM_PATHNAME では '/' と同等、Dir.glob ではセパレータとしての機能を失う

ということでいいでしょうか?あと、次のは結論が出てなかったのですが、

・閉じてない ']' は通常文字の ']' として扱う

ということでいいでしょうか?


In This Thread