From: Araki K. <j00...@ip...> - 2001-12-27 20:15:02
|
荒木です:-) わたしも確認だけですが。 Subject: Re: [Mlterm-dev-ja] Re: excess linefeed with curses? From: MINAMI Hirokazu <mi...@ch...> Message-ID: <200...@ch...> Date: Fri, 28 Dec 2001 04:58:42 +0900 > 改行されてしまうときは > 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) > > が送られていたので、問題を起こすのがここだというのは間違っていないと思います。 はい、わたしもそう思います。 ここで、画面右下隅にカーソルがきた状態で、このあとに続く quoted from <200...@ch...> > 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 ここまではよいとして、 quoted from <200...@ch...> > 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) これがあきらかにおかしいのですよね。 row 29(30/30 len 60) -> -> row 28(29/30 len 60) になっているということは、insert_chars_intern() の間でスクロール処理が行 われてしまっているという気がするのですが、get_pos() 関数の、 ====== if( IMAGE_LINE(image,end_row).num_of_filled_cols == image->num_of_cols && *char_index > ml_imgline_end_char_index( &IMAGE_LINE(image,end_row))) { if( image->wraparound_ready_line == &IMAGE_LINE(image,end_row)) { IMAGE_LINE(image,*row).is_continued_to_next = 1 ; if( *row == image->num_of_rows - 1) { ml_imgscrl_scroll_upward( image , 1) ; <= ココ if( break_row_boundary( image , 1) != 1) { #ifdef DEBUG kik_warn_printf( KIK_DEBUG_TAG " it failed to break_row_boundary.\n") ; #endif return 0 ; } } else { if( ++ (*row) > END_ROW(image)) { if( break_row_boundary( image , 1) != 1) { #ifdef DEBUG kik_warn_printf( KIK_DEBUG_TAG " it failed to break_row_boundary.\n") ; #endif return 0 ; } } } ====== ml_imgscrl_scroll_upward( image , 1) が実行されてしまっているのではない か、と疑いました。 では -- kiken j00...@ip... |