Reverse (SGR 7) 属性の文字色と背景色が反転しない
r10203 で修正しました。
DECSCNM (echo -en "\033[?5h" と echo -en "\033[?5l") を使って動作をチェックしていました。
Tera Term 4 では、ANSI Color属性が入っているとDECSCNMでは反転しません。 マウスで文字を選択と SGR 7 では反転します。
修正前はANSI Color属性が入っていると反転しませんでした。
今回の修正で、DECSCNM ,マウスで文字選択, SGR 7 すべてで反転するようになりました。
反転するようになりました。ありがとうございます。
TODO
4仕様の反転ということで、いいかなと勝手に思っていました。
理想の反転属性がどんな表示であるのがよいか、 5は理想のどうさにしたい。 4はできればしたい、 という感じでしょうか。
反転の動作をまとめてみますね。
RLogin は結構ややこしいことやってるみたいですね。
パッと見では0-7,1-6,2-6,3-4を入れ替えているように見えるが、各RGB値の255-値
FG/BG | 反転時の色 | |||
standard | black | 0 | 0,0,0 | 255,255,255 |
red | 1 | 196,64,64 | 59,191,191 | |
green | 2 | 64,196,64 | 191,59,191 | |
yellow | 3 | 196,196,64 | 59,59,191 | |
blue | 4 | 64,64,196 | 191,59,59 | |
magenta | 5 | 196,64,196 | 59,191,59 | |
cyan | 6 | 64,196,196 | 191,59,59 | |
white | 7 | 196,196,196 | 59,59,59 | |
bright | black | 8 | 128,128,128 | 127,127,127 |
red | 9 | 255,96,96 | 0,159,159 | |
green | 10 | 96,255,96 | 159,0,159 | |
yellow | 11 | 255,255,96 | 0,0,159 | |
blue | 12 | 96,96,255 | 159,159,0 | |
magenta | 13 | 255,96,255 | 0,159,0 | |
cyan | 14 | 96,255,255 | 159,0,0 | |
white | 15 | 255,255,255 | 0,0,0 |
文字色と背景色を反転?
https://vt100.net/docs/vt510-rm/DECSCNM.html
dark characters on a light background
light characters on a dark background
この2つの切り替えなので「ANSI Color の設定があったらどうなるべき」のような仕様はなく、実装依存なのでしょうかね。
「DECSCNM してから ANSI Color を反映」あるいは「ANSI Color がある部分においては DECSCNM は無視する」と考えると xterm のようになる
「ANSI Color を反映してから DECSCNM」と考えると PuTTY のようになる
ここはいわもとさんのご意見を伺いたいところです。
rloginのマウスで選択時の反転は、(R,G,B)->(255-R,255-G,255-B)になっていて、 Win10_consoleと同じ感じがします。
zmatsuo への返信
rloginのマウスで選択時の反転は、(R,G,B)->(255-R,255-G,255-B)になっていて、
確かに255-値でした。RLoginのDECSCNM時ですね。
Win10_consoleと同じ感じがします。
松尾さんの gif を見ると、Win10 は DECSCNM に対応していないようで。こちらはマウス選択時ですね。
Tera Term 4 | Tera Term 5 | PuTTY | xterm | Win10(conhost) | RLogin | |
DECSCNM | *1ANSI色のまま | *2ANSI色反転 | *2 | *1 | 未対応 | *3(255-値) |
マウス選択 | *2 | *2 | *2 | *2 | *3 | *4(文字=背景・背景=文字*1/2) |
SGR 7 単体が動作しない問題は修正済みなので close します。
ANSI Color と DECSCNM が組み合わさったときの件は #45648 へ移行します。
DECSCNM set時は、カラー時でも前景色/背景色を入れ替える(PuTTY/Tera Term5の動作)でOKだと思います。
Tera Termの主なエミュレーション対象はDEC VTシリーズですが、VTシリーズでカラーが扱えるVT525の動作はDECSCNMで前景色と背景色が入れ替わります。
他に特別な理由が無い限りはVT525に合わせたいです。
文字色と背景色が反転しないので Normal と同じに見える。
https://osdn.net/ticket/download.php?group_id=1412&tid=45482&file_id=10189
手元のスナップショット r10185 では表示されて r10194 では表示されないので、r10192 の修正によるものと思われる。
4-stable では問題ない。https://mirrors.gigenet.com/OSDN//ticket/g/t/tt/ttssh2/45482/10188/4_106.png