PCreateFile() 関数の引数の不定要素を排除してほしい
修正しました。
r10289 です。
修正ありがとうございます。
一応確認。PCreateFile() 関数の、引数 FName は、Unicode化の対象外でしょうか。
プラグイン呼び出し時にコード的に固定されていないと扱いにくいと思いチケットを登録しましたが、
自分は、この関数の引数 FName で何かをしたことはなく、char* がいいのか wchar_t* がいいのかは わかっておりません。
Unicode化の対象なら、commlib.c のPCreateFile() 関数の呼び出し箇所3か所前で、Unicode化し、
PCreateFile() 関数処理後割り当てメモリを破棄すればいいように思えますがいかがでしょうか。
デバイスファイル名(\\.\COM%d のようなファイル)だったら よさそうと思ったのですが、ログファイル名を引数に取るなら Unicode化したほうがよさそうです。
まだこのあたりの動作はよく見ていなくて、 どうするのがよさそうかまだ見えていません。
Unicode化は後回しにさせてもらって、とりあえず、不定要素を排除できたと いうことでこのチケットをクローズしようかと思います。
わかりました。とりあえず ASCII/MBCS で進めます。
Teraterm 5.0 が正式リリースされてから Unicode化する場合は、 ts->RunningVersion か、TTXBind() のバージョン引数で認識できれば良いかと思います。
trunk/r10289 で UNICODE 設定でビルドしても、しなくても PCreateFile() の引数FNameは char* として認識されることを確認しました。
プラグインでフックできる TTXFileHooks.PCreateFile の定義は、以下である。
typedef HANDLE (PASCAL *TCreateFile)
FName の型は、 LPCTSTR となっている。
LPCTSTR は、const char * に変換されるか const wchar_t * に変換されるかビルドオプションによる。 現状は、 const char* に変換される。
可能なら、どちらかに固定化してほしい。
確認: trunk/r10245