diff --git a/ChangeLog b/ChangeLog index 1234eb3f4d39a67ba4983b6f0bfb89e29ea6cb19..977886985641ae32642cb59593b960d0472229cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -44,6 +44,9 @@ CVS code - (Meta-9), Meta-) (Meta-0), and Meta-J, respectively. Also add these functions to the main shortcut list, as Pico's practice of putting them in the search menu is rather odd. (DLR) + - Turn off extended input processing (the IEXTEN termios flag) + as nano 1.2.x does. New function disable_extended_input(); + changes to terminal_init(). (DLR) - files.c: do_insertfile() - Readd the NANO_SMALL #ifdef around the start_again: label to diff --git a/src/nano.c b/src/nano.c index 6941da63ef1e709dd384f9a7328c0c263c73e481..6b20c227c75390feb5b5bff120c2b73a242eae46 100644 --- a/src/nano.c +++ b/src/nano.c @@ -2917,6 +2917,15 @@ void do_toggle(const toggle *which) } #endif /* !NANO_SMALL */ +void disable_extended_input(void) +{ + struct termios term; + + tcgetattr(0, &term); + term.c_lflag &= ~IEXTEN; + tcsetattr(0, TCSANOW, &term); +} + void disable_signals(void) { struct termios term; @@ -2959,15 +2968,16 @@ void enable_flow_control(void) * character at a time and interpret the special control keys), disable * translation of carriage return (^M) into newline (^J) so that we can * tell the difference between the Enter key and Ctrl-J, and disable - * echoing of characters as they're typed. Finally, disable - * interpretation of the special control keys, and if we're not in - * preserve mode, disable interpretation of the flow control characters - * too. */ + * echoing of characters as they're typed. Finally, disable extended + * input processing, disable interpretation of the special control keys, + * and if we're not in preserve mode, disable interpretation of the flow + * control characters too. */ void terminal_init(void) { cbreak(); nonl(); noecho(); + disable_extended_input(); disable_signals(); if (!ISSET(PRESERVE)) disable_flow_control(); diff --git a/src/proto.h b/src/proto.h index d41fa5f9a74a571aee7fc1fcce5cf2ae34e3fdea..0a0068304f35b10b55370c2debcb4c2431afbada 100644 --- a/src/proto.h +++ b/src/proto.h @@ -363,6 +363,7 @@ void allow_pending_sigwinch(bool allow); #ifndef NANO_SMALL void do_toggle(const toggle *which); #endif +void disable_extended_input(void); void disable_signals(void); #ifndef NANO_SMALL void enable_signals(void);