ckw 卒業

ckw をいじりだして 2 週間。

最初は WM_COPYDATA を実装して、秀丸からコマンドが送れるようにする、ぐらいだけで済まそうと思ってたんだけど、やっぱり起動時のちらつきが気になるので毎晩試行錯誤を繰り返し、原因がわかってしまった。

ckw は引数で起動するシェルを選べるようになっている一方、設定ファイルにもデフォルトのシェルを記述しておける。設定ファイルに書かれてなくて、引数でも渡されない場合は環境変数 COMSPEC を引っ張ってくる。

で、コンソールそのものが一瞬表示されてしまうのは、起動引数を渡したとき、という条件だった。たとえば gosh.exe を起動したい場合は

ckw.exe -e "C:\Program Files\Gauche\gosh.exe"

みたいに起動するんだけど、そうではなく、ckw.cfg に

Ckw*exec:  C:\Progra~1\Gauche\bin\gosh.exe
Ckw*chdir: C:\Progra~1\Gauche\bin

と書いておくとちらつかない。

じゃあ起動前にこの設定ファイルを書き換えてあげるプリプロセスを作ればよいわけで、でも今のところ Gauche 以外を起動する必要がないので、ひとつの設定ファイルで何とかなっている。

コンソールアプリ(コンソール上で動くアプリではない)をはじめてじっくり調べたけど、奥が深い。ソースコードを公開された原作者殿に感謝。

今度は ckw が参考にしたという Console を見てみようと思う。

http://sourceforge.net/projects/console/

なんというか、本来は秀丸上で編集中の S 式を簡単に評価したい、という目的だったのに、コンソールアプリをいじることに目覚めてしまって Scheme の勉強がまったく進まない。