Home | History | Annotate | Download | only in libcurses
History log of /src/lib/libcurses/tstp.c
RevisionDateAuthorComments
 1.45  06-Sep-2021  rin Expand __CTRACE() to __nothing #ifndef DEBUG.

Remove most of #ifdef DEBUG around __CTRACE() calls.

No binary changes, except for line numbers for assert().
 1.44  18-Oct-2018  roy curses: don't optimize stdout buffer for non BSD platforms

The way BSD setvbuf works is not portable and should not be relied on.
This is only important if curses is started, stopped and started in the
same session which is how portable applications handle terminal resizing.
 1.43  18-Sep-2018  rin PR lib/53615

Before invoking a previous signal handler, make sure it is not SIG_*.
Fix potential crash with SIGWINCH.

OK roy
 1.42  06-Jan-2017  roy branches: 1.42.6; 1.42.12; 1.42.14;
KNF.
Normalise coding style.
White space police.
Sprinkle some extra braces to make the flow more clear.

No functional changes.
 1.41  24-Nov-2016  christos don't coredump if we call endwin when initscr fails.
 1.40  15-Oct-2013  christos branches: 1.40.8;
Instead of turning off the 8th bit on resume, turn it on, as it is on by
default. Problem reported by atatat@ when suspending vi and resuming loses
the ability to use the alt key.
 1.39  29-Aug-2011  christos branches: 1.39.2; 1.39.8;
Fix for systems that don't have TCSASOFT as intended originally. Simplify.
 1.38  03-Feb-2010  roy Userland now builds and uses terminfo instead of termcap.

OK: core@, jdc@
 1.37  22-Jul-2009  roy Prepare curses for the possibility of changing from termcap to terminfo.
term.h #defines lines, pad_char and no_color_video macros which conflict
with existing curses code. We change lines to alines and nlines depending
on use, pad_char to padchar and no_color_video becomes no_color_attributes
but with a strong alias from no_color_video.
 1.36  27-Aug-2007  jdc Fix resizing bug where the values of LINES and/or COLS changed while we
were resizing windows, leading to inconsistencies between the sizes of
stdscr and curscr.

Should fix the curses part of PR lib/36702.
 1.35  21-Jan-2007  jdc branches: 1.35.4;
Add debug "areas" that allow selective debugging by setting the
"CURSES_TRACE_MASK" environment variable. Postive vales include
debug areas, negative values exclude them.
 1.34  25-Aug-2006  jdc branches: 1.34.2; 1.34.4; 1.34.6;
Handle cases where the application installs a SIGWINCH handler after the
curses one is installed by:

1. not reinstalling the curses one after restarting
2. not sending KEY_RESIZE

Also, update the size of curscr, stdscr and __virtscr to match the new
screen size, so that their sizes are always updated.

Fixes the cases where applications call endwin() and then refresh() in
their SIGWINCH handler (i.e. the resizing problems in PR pkg/27777).
 1.33  23-Aug-2006  jdc Add some more debugging information.
 1.32  25-Mar-2004  jdc branches: 1.32.12;
Change TSTP handler back to using signal().
This fixes a problem where vi would not suspend.
Also, make sure that the signal handlers aren't set or removed multiple times.
Finally, add debug output when the signal handlers are set and removed.
 1.31  22-Mar-2004  jdc Add KEY_RESIZE support and a SIGWINCH handler.
Fixes PR bin/20032.
This requires a change to KEY_MAX, which affects libform and libmenu, so we
need to change libcurses major number.
 1.30  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.29  10-Jul-2003  dsl Stop def_prog_mode() saving incorrect termio settings.
Make set_prog_mode() set the correct settings.
I'm not certain how much restoration set_prog_mode() should do, but it
definitely doesn't want to do all of __restartwin().
Maybe __restartwin() should be calling set_prog_mode()?
 1.28  28-May-2003  dsl Don't restartwin() if it isn't stopped.
Ensures we don't save the modified tty flags (as well as doing all the
initialisation twice) if the application (eg systat) calls curses functions
in its own restart code.
 1.27  18-May-2003  dsl Don't do __stopwin() if it is already stopped.
Allows error messages from programs like sysinst() to be seen.
(There is an explicit stopwin() before the error message is output,
and a second in the atexit() called cleanup() routine)
 1.26  04-Aug-2002  jdc Reset cursor visibility after restarting the screen, as the cursor visibility
setting can be changed when the screen is restarted.
 1.25  02-Jan-2002  blymn Remove extraneous tabs from blank lines.
 1.24  02-Dec-2001  blymn * Major change to add support for the newterm/set_term functions.
* Added fix to getch.c suggested by Gabriel Rosenkoetter (thanks :-)
 1.23  14-Jan-2001  blymn There was a missing check for curscr != NULL, fixed.
 1.22  19-Dec-2000  jdc Rename variables refering to termcap capabilities from NN to __tc_nn. Case
adjusted to match termcap capability. A few other variable names renamed too
(ones related to or derived from termcap variables).
 1.21  15-Jun-2000  jdc Move setting of __endwin so that we also change it from the stop handler.
 1.20  22-May-2000  jdc branches: 1.20.2;
Use __restartwin() in reset_prog_mode() and __stopwin() in
reset_shell_mode().
 1.19  17-May-2000  jdc Send, if necessary, 'ks' or 'ke' sequences from keypad() and wgetch().
Fixes PR 10116.
 1.18  27-Apr-2000  jdc Use __unsetattr() to unset attributes on 'curscr'.
 1.17  24-Apr-2000  blymn * Added rcs id line to files missing it.
* Added code to __restartwin to restore meta and cursor visibility states
* Added code to __stopwin to disable meta.
* Added the *line group of functions for drawing character lines.
 1.16  15-Apr-2000  blymn Added functions to replace what were previously macros in curses.h
(this is a requirement of SUSv2) - the old macro behaviour can be
restored by defining _CURSES_USE_MACROS.
Changed function prototypes to use ANSI style.
All externally visible functions now have ANSI style declarations.
 1.15  12-Apr-2000  jdc Replace __TERMATTR with __ATTRIBUTES (includes colour).
Add def_prog_mode() and reset_prog_mode().
 1.14  11-Apr-2000  blymn Made data structures opaque
 1.13  13-Apr-1999  mrg branches: 1.13.6;
Upgrades the standard NetBSD curses library to provide some
of the SYSV curses facilities. The added features are the collapsing
of arrow and function keysequences (as defined by termcap for the
terminal) into symbolic code returns thus relieving the application of
recognising multi-character key sequences. Other features are the
capability to perform a timed wait for a key (good for when you are
not sure if there is a keypress ready or not) and the capability for
turning off the inter-key timeout when assembling multi-character
function keys.

this work was done by Julian Coleman <J.D.Coleman@newcastle.ac.uk>
and blymn@baea.com.au (Brett Lymn). i'm just integrating it. thanks
HEAPS guys!
 1.12  30-Jan-1998  perry merge with lite-2
 1.11  13-Nov-1997  phil Changes to make endwin() act like a SIGSTP in terms of nicely restarting
curses mode. Taken from e-mail about PR 3981. (Still some stuff left
in PR3981 to deal with.)
 1.10  12-Sep-1997  phil branches: 1.10.2;
Make endwin() save state so a subsequent call to wrefresh restores curses
and makes endwin()/wrefresh() act like a SIGTSTP.
 1.9  22-Jul-1997  mikel RCSid police, fix warnings
 1.8  17-Aug-1994  cgd branches: 1.8.2;
clean up import
 1.7  24-Jan-1994  cgd changes from branch
 1.6  09-Nov-1993  cgd repeat after me: "I hate rcs ids"
 1.5  09-Nov-1993  cgd branches: 1.5.2;
update to new version from berkeley. doesn't compile yet, nor
does it have rcsid's. this is for diffs.
 1.4  10-Aug-1993  mycroft Actually use the signal number we're passed.
 1.3  07-Aug-1993  mycroft New version from uunet.
 1.2  01-Aug-1993  mycroft Add RCS identifiers.
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.2  17-Aug-1994  cgd new libcurses, from new nvi
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.5.2.1  24-Jan-1994  cgd minor fixups
 1.8.2.2  17-Aug-1994  cgd clean up import
 1.8.2.1  17-Aug-1994  cgd file tstp.c was added on branch netbsd-1-0 on 1994-08-17 21:52:53 +0000
 1.10.2.1  15-Nov-1997  mellon Pull rev 1.11 up from trunk (phil)
 1.13.6.1  09-Jan-2000  jdc Changes to make libcurses SUS v2 compatible.
 1.20.2.1  23-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.32.12.2  28-Aug-2006  tron Pull up following revision(s) (requested by jdc in ticket #76):
lib/libcurses/tstp.c: revision 1.34
Handle cases where the application installs a SIGWINCH handler after the
curses one is installed by:
1. not reinstalling the curses one after restarting
2. not sending KEY_RESIZE
Also, update the size of curscr, stdscr and __virtscr to match the new
screen size, so that their sizes are always updated.
Fixes the cases where applications call endwin() and then refresh() in
their SIGWINCH handler (i.e. the resizing problems in PR pkg/27777).
 1.32.12.1  28-Aug-2006  tron Pull up following revision(s) (requested by jdc in ticket #75):
lib/libcurses/tty.c: revision 1.38
lib/libcurses/tstp.c: revision 1.33
lib/libcurses/touchwin.c: revision 1.22
Add some more debugging information.
 1.34.6.1  03-Sep-2007  wrstuden Sync w/ NetBSD-4-RC_1
 1.34.4.1  21-Jan-2007  jdc Apply the changes that add debug "areas" on HEAD to the wcurses branch.
Add correspending changes to the debug code that is only present on the branch.
 1.34.2.1  28-Aug-2007  liamjfoy Pull up following revision(s) (requested by jdc in ticket #842):
lib/libcurses/tstp.c: revision 1.36
lib/libcurses/resize.c: revision 1.15
Fix resizing bug where the values of LINES and/or COLS changed while we
were resizing windows, leading to inconsistencies between the sizes of
stdscr and curscr.
Should fix the curses part of PR lib/36702.
 1.35.4.1  06-Nov-2007  matt sync with HEAD
 1.39.8.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.39.2.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.40.8.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.42.14.1  10-Jun-2019  christos Sync with HEAD
 1.42.12.2  20-Oct-2018  pgoyette Sync with head
 1.42.12.1  30-Sep-2018  pgoyette Ssync with HEAD
 1.42.6.1  27-Sep-2018  martin Pull up following revision(s) (requested by kamil in ticket #1039):

lib/libcurses/getch.c: revision 1.66
lib/libcurses/getch.c: revision 1.67
lib/libcurses/tstp.c: revision 1.43
lib/libcurses/get_wch.c: revision 1.15
lib/libcurses/get_wch.c: revision 1.16

PR lib/53615
getch() and get_wch() should return KEY_RESIZE when interrupted by SIGWIN=
CH.

OK roy

-

PR lib/53615
Before invoking a previous signal handler, make sure it is not SIG_*.
Fix potential crash with SIGWINCH.

OK roy

-

Correct detecting of terminal resize in curses(3) with keypad(,TRUE)
A previous change fixed only keypad(,FALSE) scenarios.

-

Handle catching terminal resize in INKEY_NORM and INKEY_ASSEMBLING (in the
middle of assembling a key code from passed codes) as both accept keys with
fgetc(3) and both can be in theory interrupted with a resize.

PR lib/53615

RSS XML Feed