File.expand_pathがシフトJISのパスを返せない
応急処置ですが、RubyのFile.expand_pathを再定義して、中でWin32API "GetFullPathName" を呼んでみました。
module K32 extend DL::Importable dlload "kernel32.dll" extern 'long GetFullPathName(char *,long, char *, char **)' end class File def self.expand_path(path, dir=nil) path = [dir, path].join('\\') if dir size=1000 expand="\0"*size size=K32.getFullPathName(path, size, expand, "") expand[0...size].gsub(/\\/, '/') end end
dl/import.rbが早速役に立ったよ!!
将来このバグが修正されたら、この部分はさっくり削除しましょう。