X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftty%2Flib_tstp.c;h=42d5ccb41522e068e7fc29cfdb18b5b07fbac26d;hp=029f3dc06eb3d6562d2075977a80e44ba11667e1;hb=9208e1bde56ebb9cc550fd93034f1d4650518b11;hpb=6c611e66965f5a8fb1a6696611f18441132852a2 diff --git a/ncurses/tty/lib_tstp.c b/ncurses/tty/lib_tstp.c index 029f3dc0..42d5ccb4 100644 --- a/ncurses/tty/lib_tstp.c +++ b/ncurses/tty/lib_tstp.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * Copyright (c) 1998-2014,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -42,7 +42,7 @@ #include -MODULE_ID("$Id: lib_tstp.c,v 1.46 2012/08/25 19:52:47 tom Exp $") +MODULE_ID("$Id: lib_tstp.c,v 1.49 2017/07/22 23:29:58 tom Exp $") #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC) #define USE_SIGTSTP 1 @@ -155,8 +155,10 @@ handle_SIGTSTP(int dummy GCC_UNUSED) * taken ownership of the tty and modified the settings when our * parent was stopped before us, and we would likely pick up the * settings already modified by the shell. + * + * Don't do this if we're not in curses - */ - if (sp != 0 && !sp->_endwin) /* don't do this if we're not in curses */ + if (sp != 0 && (sp->_endwin == ewRunning)) #if HAVE_TCGETPGRP if (tcgetpgrp(STDIN_FILENO) == getpgrp()) #endif @@ -267,13 +269,13 @@ handle_SIGINT(int sig) SCREEN *scan; for (each_screen(scan)) { if (scan->_ofp != 0 - && isatty(fileno(scan->_ofp))) { + && NC_ISATTY(fileno(scan->_ofp))) { scan->_outch = NCURSES_SP_NAME(_nc_outch); } set_term(scan); NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG); if (sp) - sp->_endwin = FALSE; /* in case of reuse */ + sp->_endwin = ewInitial; /* in case of reuse */ } } } @@ -300,7 +302,7 @@ handle_SIGWINCH(int sig GCC_UNUSED) * handler. */ static int -CatchIfDefault(int sig, RETSIGTYPE (*handler) (int)) +CatchIfDefault(int sig, void (*handler) (int)) { int result; #if HAVE_SIGACTION || HAVE_SIGVEC @@ -330,7 +332,7 @@ CatchIfDefault(int sig, RETSIGTYPE (*handler) (int)) result = FALSE; } #else /* !HAVE_SIGACTION */ - RETSIGTYPE (*ohandler) (int); + void (*ohandler) (int); ohandler = signal(sig, SIG_IGN); if (ohandler == SIG_DFL