nconfig - F2, F3 misbehaves..
Hi Nir.
When I press F2 at one of the top-level menus then nconfig exits and a '~' is written to stdout.
Same happens when I press F3.
If I press F2 or F3 at a submenu then I see only the README, and when I get back I am one level up in the menus.
I have not tried to debug this.
It happens with and without the search patch.
Sam
Quoted 9 lines · Sam Ravnborg
Hi Nir.
When I press F2 at one of the top-level menus then nconfig exits and a '~' is written to stdout.
Same happens when I press F3.
If I press F2 or F3 at a submenu then I see only the README, and when I get back I am one level up in the menus.
This implies that the function keys are not processed correctly by ncurses; e.g., they are seen as two characters, one of them is ESC. I believe this is the reason why you are getting one menu back.
Quoted 2 lines
I have not tried to debug this.
It happens with and without the search patch.
Can you please try with a different terminal emulator? Also check that you have a terminfo file which matches your terminal and TERM environment variable.
Quoted 3 lines
Sam
PATCH 1/1 nconfig: properly map function keys.
In reply to Sam RavnborgFrom: Nir Tzachar <[email protected]>
Hi Sam. Please try the following patch and see if it helps.
Subject: [PATCH] nconfig: properly map function keys. When $TERM=xterm,xterm-color,vt220 map function keys properly.
--- scripts/kconfig/nconf.c | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-)
scripts/kconfig/nconf.c +20 -3
@@ -1537,13 +1537,13 @@ int main(int ac, char **av)/* Initialize curses */ initscr (); -/* set color theme */ -set_colors (); -cbreak ();noecho ();keypad (stdscr, TRUE);curs_set (0 ); +/* set color theme */ +set_colors (); +if (COLS <75 ||LINES <20 ) {endwin ();
@@ -1552,6 +1552,23 @@ int main(int ac, char **av)return 1 ; } +const char *term =getenv ("TERM" ); +if (strcmp (term,"xterm" ) ==0 || +strcmp (term,"xterm-color" ) ==0 || +strcmp (term,"vt220" ) ==0 ) { +define_key ("\033[H" ,KEY_HOME ); +define_key ("\033[F" ,KEY_END ); +define_key ("\033OP" ,KEY_F (1 )); +define_key ("\033OQ" ,KEY_F (2 )); +define_key ("\033OR" ,KEY_F (3 )); +define_key ("\033OS" ,KEY_F (4 )); +define_key ("\033[16~" ,KEY_F (5 )); +define_key ("\033[17~" ,KEY_F (6 )); +define_key ("\033[18" ,KEY_F (7 )); +define_key ("\033[19~" ,KEY_F (8 )); +define_key ("\033[20~" ,KEY_F (9 )); + } +notimeout (stdscr, FALSE);ESCDELAY =1 ;
Signature · 1 line
1.6.4.4
resend [PATCH] nconfig: properly map function keys.
In reply to Sam RavnborgFrom: Nir Tzachar <[email protected]>
Previous patch was missing a '~' in F7.
When $TERM=xterm,xterm-color,vt220 map function keys properly.
--- scripts/kconfig/nconf.c | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-)
scripts/kconfig/nconf.c +20 -3
@@ -1537,13 +1537,13 @@ int main(int ac, char **av)/* Initialize curses */ initscr (); -/* set color theme */ -set_colors (); -cbreak ();noecho ();keypad (stdscr, TRUE);curs_set (0 ); +/* set color theme */ +set_colors (); +if (COLS <75 ||LINES <20 ) {endwin ();
@@ -1552,6 +1552,23 @@ int main(int ac, char **av)return 1 ; } +const char *term =getenv ("TERM" ); +if (strcmp (term,"xterm" ) ==0 || +strcmp (term,"xterm-color" ) ==0 || +strcmp (term,"vt220" ) ==0 ) { +define_key ("\033[H" ,KEY_HOME ); +define_key ("\033[F" ,KEY_END ); +define_key ("\033OP" ,KEY_F (1 )); +define_key ("\033OQ" ,KEY_F (2 )); +define_key ("\033OR" ,KEY_F (3 )); +define_key ("\033OS" ,KEY_F (4 )); +define_key ("\033[16~" ,KEY_F (5 )); +define_key ("\033[17~" ,KEY_F (6 )); +define_key ("\033[18~" ,KEY_F (7 )); +define_key ("\033[19~" ,KEY_F (8 )); +define_key ("\033[20~" ,KEY_F (9 )); + } +notimeout (stdscr, FALSE);ESCDELAY =1 ;
Signature · 1 line
1.6.4.4
Re: resend [PATCH] nconfig: properly map function keys.
Quoted 36 lines · On Sun, Aug 08, 2010 at 08:11:00PM +0300, [email protected] wrote:
From: Nir Tzachar <[email protected]>
Previous patch was missing a '~' in F7.
When $TERM=xterm,xterm-color,vt220 map function keys properly.
Signed-off-by Nir Tzachar <[email protected]>--- scripts/kconfig/nconf.c | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-)scripts/kconfig/nconf.c +3
-3@@ -1537,13 +1537,13 @@ int main(int ac, char **av)/* Initialize curses */ initscr (); -/* set color theme */ -set_colors (); -cbreak ();noecho ();keypad (stdscr, TRUE);curs_set (0 ); +/* set color theme */ +set_colors (); +if (COLS <75 ||LINES <20 ) {endwin ();@@ -1552,6 +1552,23 @@ int main(int ac, char **av)return 1 ; }
scripts/kconfig/nconf.c int main(int ac, char **av) · line 1564
Quoted 10 lines
scripts/kconfig/nconf.c +10
-0+const char *term =getenv ("TERM" ); +if (strcmp (term,"xterm" ) ==0 || +strcmp (term,"xterm-color" ) ==0 || +strcmp (term,"vt220" ) ==0 ) { +define_key ("\033[H" ,KEY_HOME ); +define_key ("\033[F" ,KEY_END ); +define_key ("\033OP" ,KEY_F (1 )); +define_key ("\033OQ" ,KEY_F (2 )); +define_key ("\033OR" ,KEY_F (3 )); +define_key ("\033OS" ,KEY_F (4 ));
I had to change the above to "\033[11~", "\033[12~" etc, then it worked. My terminal emulation is xterm and I did not try any other.
Sam