7.12 【むしとり】 暑い。 3連敗は痛い。痛すぎる。。昨日はこのままいけるのかと思ったのに……。 Geneva2Osakaのバグは……別に8.6でなくてもエラーになる可能性が十分にあるバグだった。しかも、、グローバル変数と同じ名前のローカル変数を定義していたというとんでもないバグ。うむむ……。最初はローカル変数で処理していたのをグローバル変数に変更した時に、面倒だから名前をそのままにしてローカル変数の方を削除し忘れたと。。教訓:ローカル変数をグローバル変数に変更する時は変数名も変更すること、かな(汗)。 それはそうと、キャレットずれの問題に対処するために、新たにFMSwapFont()を引っ掛けてみることにした。IMのFont Managerを読むと、描画の前にこのルーチンが呼ばれてフォントに関する情報を得るというようなことが書かれていたため。これでGenevaの情報を得ようとした時にOsakaの情報を渡してやればよくなるかも知れない……、、と、多少はましになったけれどまだなんかおかしい。キャレットが表示される位置が文字とずれるということはなくなったが、行が折り返される位置とかマウスでクリックした時に選択される位置とかがずれてしまっている。ん〜、なかなか一筋縄ではいかないもんだ。 QT-QでAppleScriptで保存した場合のファイル名……というのは原因はよくわからないが、一応修正できた。保存先に指定されたファイルがすでに存在するかどうかを調べるのにFSMakeFSSpec()を使用したのだが、その時に
というようなルーチンを書いたら、8.5以前の環境では(少なくとも8.0、8.1では)theFileの内容がおかしくなってしまった(vRefNumとparIDは正しいのだが、nameがおかしい)。どうもこういうことはしてはいけないということのようなので、ダミーのFSSpec型変数を用意して対処。そんなややこしい方法をとらなくても素直にFSpGetFInfo()とかを使えばいいやんといわれそうだけど、ま、いいのだ(笑)。 Phutのメモリリークの原因はアイコンファミリハンドルをDisposeするのを忘れていたため。んー、凡ミス。ま、とりあえず問題なく動くようになってくれたようなので、そろそろ正式版といきたいところ。明日までにバグが見つからなければ明日リリースかな。例によって正式版にしたとたんにバグが……かも知れないけど。 |