タイプ別設定の拡張子にワイルドカード( * ?)を使用できるようにします。
例)log, * .log_ * , * .log.????-??-??
#Wiki記法のせいで*が消えてしまうので前後に無駄に空白を入れています
ワイルドカードを含まない場合は従来通り、拡張子とファイル名全体にマッチします。
ワイルドカードを含む場合、ファイル名全体にマッチします。
upatchid:262から2重拡張子に対応していますが、このパッチで対応をやめました。
これまで tar.gz のように設定していたところは *.tar.gz に改めてください。
おいしそうなパッチです。
http://sakura.qp.land.to/?Request%2F443
で、いまのところ実際にGrepできる(正しく動作してるかは不明)けど、
PathMatchSpecにMAX_PATH制限がある。
ぐぬぬ。対応どうします?
通常のパターンは使えるから、機能制限にしちゃおうか
タイプ別1に「cs」、タイプ別2に「*.xaml.cs」がある場合、
いままでは、タイプ別1に「cs」、タイプ別2に「xaml.cs」だったらタイプ2が選択されたけど、
このパッチを眺めた感じではタイプ1になるっぽいですね。
いままではマッチ長の最長一致優先だったけど、今度はタイプ別番号優先になります。
タイプ別をマッチ順に並び替えないといけない。
ヘルプ行きかな。
訂正。
よく考えたら、PathMatchSpecに渡されるのはフルパスではなく、
ファイル名部分のみなので、長いパスでもMAX_PATH制限があり問題ありませんでした。
おっしゃる通りIsFileNameMatchの引数はファイル名を受け取る想定です。引数名がパスになっているのは紛らわしいので直します
2重拡張子についてはご認識の通りです。タイプ別の拡張子はかぶらないよう設定するのが基本で、もしかぶった場合はリストの上位にあるものが勝つ、というのがシンプルかなと思いました。
Diff:
リビジョン3886,3887でコミットしました。