From: Chris Allegretta Date: Fri, 29 Mar 2002 16:00:59 +0000 (+0000) Subject: Bah, don't fix what isn't broken X-Git-Tag: v1.1.8~5 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=9b4055c4dadbe85faa61b561fa5843575085f6c1;p=nano.git Bah, don't fix what isn't broken git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1158 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index df089328..540ea9f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,8 +22,6 @@ CVS code - - Change input var to one char instead of array (David Benbennick). - Move NO_CONVERT check up so chars get read in properly (DLR). - nano.c: - - Move the termios things in main() up to signal_init(), where - they should probably be anyway. do_justify() - More fixes for indented justify (David Benbennick). do_int_speller() diff --git a/nano.c b/nano.c index caf9a30b..cfb666f3 100644 --- a/nano.c +++ b/nano.c @@ -2038,12 +2038,7 @@ void signal_init(void) #ifdef _POSIX_VDISABLE - tcgetattr(0, &oldterm); - - term = oldterm; - term.c_cc[VINTR] = _POSIX_VDISABLE; - term.c_cc[VQUIT] = _POSIX_VDISABLE; - term.c_lflag &= ~IEXTEN; + tcgetattr(0, &term); #ifdef VDSUSP term.c_cc[VDSUSP] = _POSIX_VDISABLE; @@ -2738,6 +2733,10 @@ int main(int argc, char *argv[]) toggle *t; #endif +#ifdef _POSIX_VDISABLE + struct termios term; +#endif + #ifdef HAVE_GETOPT_LONG int option_index = 0; struct option long_options[] = { @@ -2976,7 +2975,17 @@ int main(int argc, char *argv[]) filename = mallocstrcpy(filename, argv[optind]); } - signal_init(); + + /* First back up the old settings so they can be restored, duh */ + tcgetattr(0, &oldterm); + +#ifdef _POSIX_VDISABLE + term = oldterm; + term.c_cc[VINTR] = _POSIX_VDISABLE; + term.c_cc[VQUIT] = _POSIX_VDISABLE; + term.c_lflag &= ~IEXTEN; + tcsetattr(0, TCSANOW, &term); +#endif /* now ncurses init stuff... */ initscr(); @@ -2992,6 +3001,7 @@ int main(int argc, char *argv[]) init_help_msg(); help_init(); #endif + signal_init(); #ifdef DEBUG fprintf(stderr, _("Main: set up windows\n"));