From: Araki K. <j00...@ip...> - 2001-12-27 19:02:03
|
荒木です:-) Subject: Re: [Mlterm-dev-ja] Re: excess linefeed with curses? From: MINAMI Hirokazu <mi...@ch...> Message-ID: <200...@ch...> Date: Fri, 28 Dec 2001 03:31:34 +0900 > mlterm --term=xterm と > mlterm --term=kterm で LANG,LC_ALL を ともに ja_JP.eucJP として > lynx の吐くシーケンスを比べてみました。 ありがとうございます。ご面倒おかけします_o_ > となっているところが term=kterm(横幅80) では > .... > > 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) > に文字(空白)が描かれたときには無条件で改行されるように処理されてますか? 無条件というわけではないのですが、このようなシーケンスでは、確かに改行( スクロール)されてしまうと思います。 添付のパッチを src/ml_image.c にあてるとどうなりますでしょうか? では -- kiken j00...@ip... Index: ml_image.c =================================================================== RCS file: /home/ken/cvsroot/mlterm/src/ml_image.c,v retrieving revision 1.197 diff -u -r1.197 ml_image.c --- ml_image.c 2001/12/24 17:24:50 1.197 +++ ml_image.c 2001/12/27 18:51:07 @@ -639,22 +642,12 @@ overwrite_lines( image , buffer , filled_len , 1) ; + /* this is necessary since insert_chars_intern() should affect only this line */ + reset_wraparound_checker( image) ; + /* wraparound_ready_line member is set in this function */ get_pos( image , &new_row , &new_char_index , image->cursor.row , 0 , ml_get_num_of_lines_by_hints( &image->line_hints) + image->cursor.row - 1 , cursor_index) ; - - /* for wraparound line checking */ - if( image->wraparound_ready_line != NULL) - { - if( num_of_ins_chars == 1) - { - ml_char_copy( &image->prev_recv_ch , ins_chars) ; - } - else - { - reset_wraparound_checker( image) ; - } - } cursor_goto_by_char_index( image , new_char_index , new_row , BREAK_BOUNDARY) ; |