2005-07-07 [長年日記]

[Q3] IMEの状態保存

今まではエディットビュー全体でひとつのIMEの状態を保存していて、ウィンドウを閉じるとその状態を忘れるようになっていたのですが、エディットビューの各ウィンドウごとにIMEの状態を管理するようにして、ウィンドウを閉じた後も(アプリケーションが終了しても)忘れないようにしました。

ところで、ふと思ったのですが、WindowsではIMEの状態に応じてキャレットが変化しませんが*1、何か変わるとわかりやすくてよい気がします*2。確かkinput2ではキャレットの上にマークが出た気がします。あそこまで目立たなくても、色や太さが違うだけでもだいぶわかりやすいのではないかと思うのですが、どんなもんでしょう?

gccの-MM -MG

QMAIL3のビルドをするときに依存関係を生成するためだけにgccを使っていて、-MM -MG -nostdincを指定して依存情報を生成しています。こうすると、見つからなかったヘッダファイルの名前は依存情報に含まれなかったので重宝していた*3のですが、Cygwinのバージョンアップをした時にgccが3.4.4になったら、見つからなかったヘッダファイルも依存情報に含まれるようになってしまい、ビルドできなくなってしまいました。

-MPでうまくいくかと思ったのですが、今度はmakefileの再構築が無限ループしてしまうようになってしまいました*4。仕方が無いので、gccの出力をawkで加工してシステムヘッダなどは取り除くようにしてしまったのですが、もう少しまともなやり方があるような気がします。

*1  アプリ側で対処している場合は除いて

*2  IMEの状態を確認するためにタスクトレイを見ると視線の移動が多すぎるので

*3  gccでSDKのヘッダをそのままプリプロセスするとエラーになるので、-nostdincでシステムヘッダは全て除外して、-Iで必要なディレクトリを個別に指定しています

*4  どうMakefileが作り直されるかを読んでもどうなっているのかさっぱりわかりません

[]