libiconv 方面
いろいろ不安なので、OS/2 版 iconv の他のビルド例を探してみました。
- GNU intl library of gettext 0.10.40 and libiconv 1.7
ファイル名 iconv.dll、emx + emxlibcm。 - wvware-1.0.0
ファイル名 iconv.dll、emx + emxlibcs。付属の iconv.exe は iconv.dll のエントリを序数でインポートしている。
_libiconv_version を確認したところ、wvware に入っている iconv.dll はバージョン 1.9。_iconv_verison だとメジャーとマイナーのバージョン番号しか取れないが、(日付から考えるに)たぶん 1.9.1 だと思う。
wvware についてる iconv.dll は lxlite 解除すると1M超えてる。どういう感じでビルドしたのか知りたい…。
ところで、libcharset の下に lib/localcharset.c とかいうのがあって、そこで文字セットのエイリアス名とかをファイルから読み込んだりするところ(get_charset_aliases だったかな?)があるのですが、OS/2 上でエイリアスのファイルとかどういう扱いにしたらいいんですかね。いや、私が自前で作ったときは外部ファイル読み込み部分を潰してしまったのですが、上のふたつはどっちもソレっぽいコードが入っているような気がするので。
もし本気で OS/2 的に対処するなら、
- OS/2 固有っぽい文字セットエイリアス名をハードコーディング(%ULSPATH%\CODEPAGE\UCSTBL.LST あたりを横目でにらみつつ)
- (沢田石さんの Unix 系ツールのように)%UNIXROOT% を調べ、設定されている場合は Unix っぽい流儀で charset.alias を読み込むようにする
- (ja-1 パッチで Win32 のみ有効となっている)%CHARSET_ALIAS% を有効にする
とかいう感じになるでしょうか。自分で書いててちょっと気が遠くなってきました(おい)。