From: MINAMI H. <mi...@ch...> - 2001-12-11 05:31:36
|
vt100 escape seq. の "What are you?" (ESC [ c)への応答は 現在は未実装になっているのですが、場合によっては永遠に待つことになるので、 といあえず何か返した方が良いと思います。 #たぶん使われることはないのでしょうけど。 手持ちのターミナルエミュレータ-では rxvt, kterm, aterm, eterm => ESC [ ? 1 ; 2 c gnome-terminal, powershell => ESC [ ? 6 c konsole => ESC [ > 0 ; 1 1 5 ; 0 c が返されていたので、 ESC [ ? 1 ; 2 c を返すというのでどうでしょうか。 (AVOが何なのかは知らないのですが) diff -r -u2 ../../CVS-orig/mlterm/src/ml_term_screen.c src/ml_term_screen.c --- ../../CVS-orig/mlterm/src/ml_term_screen.c Mon Dec 10 12:39:57 2001 +++ src/ml_term_screen.c Tue Dec 11 14:20:54 2001 @@ -4233,4 +4233,13 @@ int +ml_term_screen_report_attributes( + ml_term_screen_t * termscr + ) +{ + write_to_pty( termscr , "\x1b[?1;2c" , 7 , NULL) ; + return 1 ; +} + +int ml_term_screen_report_cursor_position( ml_term_screen_t * termscr diff -r -u2 ../../CVS-orig/mlterm/src/ml_term_screen.h src/ml_term_screen.h --- ../../CVS-orig/mlterm/src/ml_term_screen.h Mon Dec 10 12:39:57 2001 +++ src/ml_term_screen.h Tue Dec 11 14:16:18 2001 @@ -268,4 +268,6 @@ int ml_term_screen_report_device_status( ml_term_screen_t * termscr) ; +int ml_term_screen_report_attributes( ml_term_screen_t * termscr) ; + int ml_term_screen_report_cursor_position( ml_term_screen_t * termscr) ; diff -r -u2 ../../CVS-orig/mlterm/src/ml_vt100_parser.c src/ml_vt100_parser.c --- ../../CVS-orig/mlterm/src/ml_vt100_parser.c Mon Dec 10 12:39:57 2001 +++ src/ml_vt100_parser.c Tue Dec 11 14:27:16 2001 @@ -1227,10 +1227,7 @@ else if( *str_p == 'c') { - /* send device attributes */ + /* send device attributes as AVO */ - #ifdef DEBUG - kik_warn_printf( KIK_DEBUG_TAG - " ESC - [ - c is not implemented.\n") ; - #endif + ml_term_screen_report_attributes( vt100_parser->termscr ); } else if( *str_p == 'd') |