Siena. です。

》remove_backslashes(p)が動いていなかったので修正しました。あとはMBLEN("")==0に統一したので、CompareImplでその場合に対処。find_magicが前の'/'から検索しなおしていて非効率になっていたので、修正しました。
》
》[ruby-dev:22263]に対する差分です。

OS/2 with EMX で、それぞれ試してみました。
試した範囲では、[ruby-dev:22258] は今一歩で、改善された
[ruby-dev:22263] で期待通りに動くようになりました。
しかし、更に [ruby-dev:22270] を当てるとうまくありません。
例のテストコードですが、実行すると次のような違いが出ます。
原因の調査はまだですが、すぐには手を付けられそうにないので、
とりあえずご報告だけでも。


$ cat globtest.rb
#!ruby -Ks
require 'fileutils'
## "ー"[1] == '['
## "−"[1] == '|'  # ワイルドカードには関係ない
## "表"[1] == '\'
## "ソ"[1] == '\'

filelist = %w( ー − 表 表裏 ソフト てすと )
begin
  FileUtils.touch( filelist )
  %w( ? ?? ??? ー ー* − −* ?\\ ソフト ).each do |c|
    puts( c + "\t: " + Dir.glob( c ).join( ' ' ) )
  end
ensure
  FileUtils.rm( filelist )
end


$ for x in ruby-*.exe ; do 
|   echo ; echo -n "$x : " ; $x -v globtest.rb
| done

ruby-22258-baseline.exe : ruby 1.8.1 (2003-12-13) [i386-os2-emx]
?	: − ー 表
??	: 表裏
???	: てすと ソフト
ー	: ー
ー*	: ー
−	: −
−*	: −
?\	: − ー 表
ソフト	: ソフト

ruby-22263-nakada_improve.exe : ruby 1.8.1 (2003-12-13) [i386-os2-emx]
?	: − ー 表
??	: 表裏
???	: てすと ソフト
ー	: ー
ー*	: ー
−	: −
−*	: −
?\	: 
ソフト	: ソフト

ruby-22270-remove_backslashes.exe : ruby 1.8.1 (2003-12-13) [i386-os2-emx]
?	: 
??	: − ー 表
???	: 
ー	: ー
ー*	: 
−	: −
−*	: −
?\	: 
ソフト	: 

---
Siena. <mailto:siena / faculty.chiba-u.jp>