秀丸 4.04 での文字コード表示のバグNo.16212
efialtes さん 03/12/20 13:34
 
以下の処理時に、文字コード表示コマンドが正しく動作しないようです。

(1) EUC コードの日本語のテキストを開く。
(2) 一文字マウスで選択して、その他コマンドから文字コード表示を行う。
(3) OK で閉じる。
(4) マウスで一旦他の場所をクリックして、再度上記の文字をマウスで選択する。
(5) その他コマンドから文字コード表示を行う。このとき、選択した文字の一文字先
の文字コードが表示されるように見える。

上記の手順だとほぼ再現するようですが、現象は安定しません (最初の一回から壊れ
ている場合もある)。


OS: Windows XP (SP1) 日本語、 秀丸 4.03, 4.04

また、euc-cn で cp936 の文字コード出力が 1 大きく表示されているようですが、
上記の問題と同じものかどうかは不明。こちらの方は再現性は調べていません。


[ ]
RE:16212 秀丸 4.04 での文字コード表示のNo.16213
Iranoan さん 03/12/20 14:44
 
 efialtes さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> 以下の処理時に、文字コード表示コマンドが正しく動作しないようです。
 Windows98 ですが、再現しません。

> (2) 一文字マウスで選択して、その他コマンドから文字コード表示を行う。
> (3) OK で閉じる。
> (4) マウスで一旦他の場所をクリックして、再度上記の文字をマウスで選択する。
 一つ確認したいのですが、(2), (4) の時キャレットの位置は何処にありま
すか?
 キャレットを「カーソルの点滅表示」にしていないと解りにくいですが、
キャレット位置は選択方法によって、選択範囲の先頭/最後が異なります。マ
ウスで選択したのなら、
(1) マウス・カーソルを後ろから前
    →キャレットは選択範囲先頭
(2) マウス・カーソルを前から後ろ
    →キャレットは選択範囲最後
(3) その他ダブル・クリック等
    →キャレットは選択範囲先頭
という違いがあります。
 ですから時によっては、efialtes さんの仰るように、パッと見
> 選択した文字の一文字先
> の文字コードが表示されるように見える。
ということが起き得ますが、仕様ということがあり得ます。

 P.S マウス・カーソルと混同すると、話が通じなくなってしまうので、文字
カーソルは、原則「キャレット」としました。

[ ]
RE:16213 秀丸 4.04 での文字コード表示のNo.16214
efialtes さん 03/12/20 14:56
 
> 一つ確認したいのですが、(2), (4) の時キャレットの位置は何処にありま
>すか?

うん、どうやら私の勘違いのようです。ただし、ヘルプでは「カーソル位置のコード
を表示する」となっているので、多分私と同じように誤解する人が多いかと思う。

[ ]
RE:16212 秀丸 4.04 での文字コード表示のNo.16216
秀まるお2 さん 03/12/20 21:49
 
 別件の、「オーバーラインが表示されない」については、もしかすると、「そ
の他・動作環境」の「トラブル対策」ページ中の「テキスト描画時に常にクリッ
ピングをかけて描画する」をONにすると直るかもしれません。

 以前、Terminalでの特定サイズの場合や、某フォントメーカーの特定フォント
の特定サイズで文字化けするというのがありまして、このオプションを追加しま
した。

 あと、カーソル位置の文字コード表示についてですが、一応、表示されたウィ
ンドウ上に、対象となった文字自体も表示されるので、それでカーソル縦線の右
側か左側かどっちが対象になってるか判断して欲しい、というか、そうやって
「カーソル位置の文字というのは、これのことだ」ってことを感覚的に理解して
いただくしか無いように思います。Windowsの文字カーソルが、文字と文字との
間の「I」の形である以上、仕方がないと思いますので…。

 「動作環境・カーソル」でカーソル形状をDOS風にすると、「カーソル位置の
文字がどれか」ってことがはっきり分かるようにはなると思います。

[ ]