Ada.Directories Windows(MinGW)特別版

http://d.hatena.ne.jp/ytqwerty/20060713#p1へんの流れで──ついにgccに文句を言う→AdaCoreのひと曰くGNAT Proなら対応済みだから買え(GPLじゃ無いのかよ)→GNAT GPL 2006は一見対応している風に見えて変なのでGNAT Proでも直ってるとは思えない!文句たらたら→AdaCoreのひと曰くレポートくれ&gccにパッチを送ってもどうせGNAT Proに取り込むんでOK──ということがありまして、手始めにAda.Directoriesを作り直しています。
どうせWindows以外でも不具合あるに決まってるんですが、テスト環境がWindowsしかないのと、Windowsのパスの表記はUNIX系のそれとかけ離れているので、この際OS別のつもりでとりあえずW版API使用バージョンです。送りつける前に一旦ここで晒しておきますので規格と違うところやまずい動作がありましたら教えてくださいおねがいします。(←人頼み)
http://panathenaia.halfmoon.jp/alang/gcc-private-build/patches/
gnatmake -a -gnat05でコンパイルして、全部カレントディレクトリに入れておけば優先して使われますし、Ada.DirectoriesはAda2005の新設パッケージですのでまだ他で使われていないため他のパッケージまで巻き込んで再コンパイルする必要も無いため、手軽に試していただける筈です。
8ビットのStringにファイル名を入れる時は、(実際のところRTL全般に渡って全然そうなってないのは別にして)常にUTF-8が意図した仕様のようなので、そのようにしたつもり。A版はこれから作りますが、Win95は無視したい……CP_UTF8とかGetFileAttributesExとかWin98以降ですもん。
Windows以外はまるで目処が立って無いんですが……Linuxのようなwchar_tはUTF-32系と、FreeBSDのようなwchar_tのエンコーディングも可変系で違うだろうしなあ。そこの先生Linux版作りませんか。(←人頼み)
あと、GNATでSJISEUC-JPのWide周りの扱いが、UTF-16ではなくてJISコード生値になってしまうのは、日本企業がそれを必要としているかららしいです。世の中資本があれば狂った仕様を通せる例。