From: Nobuyoshi N. <nob...@so...> - 2002-03-03 05:55:03
|
なかだです。 INSERT_SELECTIONなどにModモディファイア付きのキーを指定している と、余分なESCが入力されます。Meta+特殊キーでのESCは、kterm、 gnome-terminalなどでは一つ、rxvt、Etermなどでは二つ入力されるの ですが、どちらに合わせたものやら。 Index: ml_term_screen.c =================================================================== RCS file: /cvsroot/mlterm/mlterm/src/ml_term_screen.c,v retrieving revision 1.66 diff -u -r1.66 ml_term_screen.c --- ml_term_screen.c 22 Feb 2002 08:31:33 -0000 1.66 +++ ml_term_screen.c 2 Mar 2002 17:55:07 -0000 @@ -1706,21 +1706,6 @@ } else { - if( termscr->mod_meta_mask & event->state) - { - if( termscr->mod_meta_mode == MOD_META_OUTPUT_ESC) - { - write_to_pty( termscr , "\x1b" , 1 , NULL) ; - } - else if( termscr->mod_meta_mode == MOD_META_SET_MSB) - { - if( 0x20 <= *seq && *seq <= 0x7e) - { - (*seq) |= 0x80 ; - } - } - } - if( ml_keymap_match( termscr->keymap , PAGE_UP , ksym , event->state)) { enter_backscroll_mode( termscr) ; @@ -1801,6 +1786,21 @@ } else if( size > 0) { + if( termscr->mod_meta_mask & event->state) + { + if( termscr->mod_meta_mode == MOD_META_OUTPUT_ESC) + { + write_to_pty( termscr , "\x1b" , 1 , NULL) ; + } + else if( termscr->mod_meta_mode == MOD_META_SET_MSB) + { + if( 0x20 <= *seq && *seq <= 0x7e) + { + (*seq) |= 0x80 ; + } + } + } + if( termscr->iscii_state) { size = ml_convert_ascii_to_iscii( @@ -2079,6 +2079,14 @@ else { return ; + } + + if( termscr->mod_meta_mask & event->state) + { + if( termscr->mod_meta_mode == MOD_META_OUTPUT_ESC) + { + write_to_pty( termscr , "\x1b" , 1 , NULL) ; + } } write_to_pty( termscr , buf , strlen(buf) , NULL) ; -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 |