Shift-JISで、Unicodeの制御コードが入っ
No.07966
h-tom
さん 13/06/12 23:28
h-tom です。
秀丸エディタ Ver.8.31β1(32bit)
エンコードがShift-JISの場合に、制御コードのU+0092(PU2)がはいっていると、
変な動きになります。
//再現用マクロ
newfile;
gofiletop;
insert "can";
insert unichar(0x92);
insert "t";
insertreturn;
insert "xxxx";
gofiletop;
golineend2;
message "tの後ろになぜか空白が入っている。\n"
+"行末の改行を削除すると、カーソル位置がおかしい。";
delete;
endmacro;
//ここまで
エンコードが、Shift-JISだと、U+0092が表示されません。
その為、表示がずれてしまっているようです。
エンコードを、unicode系にすれば、問題はないです。
(U+0092が空白として表示される。)
[
△
]
RE:07966 Shift-JISで、Unicodeの制御コー
No.07969
秀まるお
さん 13/06/13 14:28
秀丸担当が調べた所、3Dグラフィックスアクセラレータを使った文字描画の方
のバグらしいということが分かり、僕の方で調べました。
そしたら、すみませんが僕の作った処理の方のバグでした。大変失礼しました。
U+0092の文字を描画する時に、フォントによって、これの「グリフ」というの
が存在しないことになって、それで内部的に想定してない事態が起きて、固定ピ
ッチフォントだけども文字幅0になって、それで「can」と「t」がくっついた描
画になってしまってました。
エンコードをUnicode系にすれば直るのは、フォントの種類のせいだと思いま
す。(Terminal / FixedSysだとダメで、MSゴシック等では起きない。プロポー
ショナルフォントだとそもそも大丈夫)
さっそくHmDWrite.dllを修正させていただきまして、次の秀丸エディタβ版に
添付させていただきます。
[
△
]
RE:07969 Shift-JISで、Unicodeの制御コー
No.07972
h-tom
さん 13/06/13 20:57
h-tom です。
> 秀丸担当が調べた所、3Dグラフィックスアクセラレータを使った文字描画の方
>のバグらしいということが分かり、僕の方で調べました。
<省 略>
> エンコードをUnicode系にすれば直るのは、フォントの種類のせいだと思いま
>す。(Terminal / FixedSysだとダメで、MSゴシック等では起きない。プロポー
>ショナルフォントだとそもそも大丈夫)
こちらので使っているフォントを、連絡し忘れました。FixedSys でした。
> さっそくHmDWrite.dllを修正させていただきまして、次の秀丸エディタβ版に
>添付させていただきます。
β2で、問題ありません。
[
△
]