紅皿のサポートブログ

キーボード配列エミュレーションソフトウェア「紅皿」の不具合や要望はこちらに

benizara ver.0.1.4.712 のリリース

benizara ver.0.1.4.712 をリリースしました。

 

osdn.net

 

とるさんにご指摘いただいた、秀丸エディタ+編集モード2での不具合に対処しました。

 

紅皿を使って不具合に気がついたソフトは、今のところ秀丸エディタだけです。(旧MS-IMEATOKともに)
それも、薙刀式の編集モード2にある M+Comma+F、M+Comma+V の2つで、あと一文字が入力されないというもの

 

 

この症状が発生する (m.f) の3キー同時打鍵は、以下のように定義されています。

 ]入入[入

 つまり、] enter enter [ enter です。

(m.v) の3キー同時打鍵は以下のように定義されています。

 ]入入空

 つまり、] enter enter space です。

何れも Enter が連続しています。1つ目のEnterはローマ字変換の確定で、2つ目の Enter は改行です。もしかすると、ここが問題なのではないかと推測しました。

 よって、enter を含む出力要素があったならば、すぐさま10mSEC の Sleep を実行するように修正しました。この修正により、文字抜けは発生しなくなりました。おそらく、この10mSECのSleep により、秀丸が画面更新処理を行えるようになったのだと推定します。

 

 また、秀丸エディタでキーリピートで各記号などを出力していると、動作が不安定になり、やはり文字コードの出力抜けが発生することに気付きました。

 この不具合の原因は、キーオンイベントが短時間に連続して発生すると、秀丸エディタの画面処理が追い付かなくなる問題ではないかと推定しました。よって、キーオンのイベントを抜けるときに、sleep,-1 を実行しないようにしました。これにより次のイベントまでに5mSECの待ち時間が生じ、秀丸エディタにも処理が回るようになる筈です。

 この修正により意図したとおり、 文字コードの出力抜けは発生しなくなりました。