[#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:23153] Re: File.fnmatchとDir.glob

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2004-03-06 12:39:22 UTC
List: ruby-dev #23153
山本です。

>  ・File.fnmatch の挙動は、世間に流通している fnmatch(3) と同一なので問題ない
>  ・fnmatch(3) は SUSv3 に準拠してない(涙)
>  ・むしろ Dir.glob の '[a/c]' の解釈が glob(3) と違う可能性がある
>
>ということですね。glob(3) についてよくわからないので、とりあえず
>
>  ・'*' の高速化
>  ・'**/' の実装
>  ・セパレータは '/' だけ
>
>だけ変更することにして、もう一度実装しなおします。(FNM_PERIOD 復活は議論待ち)

Dir.glob は、まつもとさんが仰っていたように、'[a/c]' 全体をエントリと比較することにしました。
glob(3) の動作も、たぶんこうなのだと思います。

これで OK と思ったのですが、また一貫性のない部分を発見してしまいました(涙)

E:\ruby-cvs>miniruby -ve "puts File.fnmatch('[ab', '[ab')"
ruby 1.9.0 (2004-02-24) [i386-bccwin32]
false

E:\ruby-cvs>touch [ab
Touch  Version 4.2  Copyright (c) 1998 Borland International


E:\ruby-cvs>miniruby -ve "puts Dir.glob('[ab')"
ruby 1.9.0 (2004-02-24) [i386-bccwin32]
[ab

has_magic では、閉じてない '[' は PLAIN として扱ってるのですが、File.fnmatch では単にマッチしないとして
いるためです。

fnmatch(3) ではどのような動作でしょうか?よろしくお願いします。

In This Thread