From: MINAMI H. <mi...@ch...> - 2001-12-27 18:31:39
|
On 27 Dec 2001 22:28:14 +0900 Araki Ken <j00...@ip...> wrote: > terminfo でしたか。 > わたしの手許では、termcap を使っておりますので、こちらで問題が再現できな > い原因は其の辺にありそうですね。 mlterm --term=xterm と mlterm --term=kterm で LANG,LC_ALL を ともに ja_JP.eucJP として lynx の吐くシーケンスを比べてみました。 画面最下行の書き換えで term=xterm(横幅73)では RECEIVED ESCAPE SEQUENCE: ESC - [ - 30 - m RECEIVED ESCAPE SEQUENCE: ESC - [ - 47 - m RECEIVED ESCAPE SEQUENCE: ESC - [ - K flushing chars(73)...==> [h]%X%%W[o]@ D[p]0:[g]0\F0[m]%%$%2 LL[q]=*N; /=8!: [Delete]=M <=== DEBUG: [ml_image_overwrite_chars()] overwriting 73 chars at char index 0 col 0 row 29(30/30 len 1) -> -> char index 73 col 73 row 29(30/30 len 74) となっているところが term=kterm(横幅80) では RECEIVED ESCAPE SEQUENCE: ESC - [ - 30 - m RECEIVED ESCAPE SEQUENCE: ESC - [ - 47 - m DEBUG: [parse_vt100_escape_sequence()] receiving BS flushing chars(59)...==> [h]ヘルプ[o]設定[p]印刷[g]移動[m]メイン画面[q]終了 /=検索 [Delete]=履歴 <=== DEBUG: [ml_image_overwrite_chars()] overwriting 59 chars at char index 0 col 0 row 29(30/30 len 80) -> -> char index 59 col 79 row 29(30/30 len 60) DEBUG: [ml_cursor_go_back()] going back from 59 29, then -> -> char index 58 col 78 row 29 DEBUG: [parse_vt100_escape_sequence()] receiving BS flushing chars(1)...==> <=== DEBUG: [ml_image_overwrite_chars()] overwriting 1 chars at char index 58 col 78 row 29(30/30 len 60) -> -> char index 59 col 79 row 29(30/30 len 60) DEBUG: [ml_cursor_go_back()] going back from 59 29, then -> -> char index 58 col 78 row 29 RECEIVED ESCAPE SEQUENCE: ESC - [ - 4 - h RECEIVED ESCAPE SEQUENCE: ESC - [ - 4 - l flushing chars(1)...==> <=== DEBUG: [insert_chars_intern()] inserting 1 chars at char index 58 row 29(30/30 len 60) -> -> char index 59 row 28(29/30 len 60) となっていました。 どうやら term=xterm では ESC-[-K で行を空白にしているところを term=kterm ではスペースを上書きしているようです。 この辺りの処理は追いきれていないのですが、画面の右下角(term=ktermの結果では79,29) に文字(空白)が描かれたときには無条件で改行されるように処理されてますか? |