Implement SIGWINCH handler so that Edwin console screens can resize
authorTaylor R. Campbell <net/mumble/campbell>
Sun, 25 Dec 2005 17:04:39 +0000 (17:04 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Sun, 25 Dec 2005 17:04:39 +0000 (17:04 +0000)
commit0ab5dd5794f6e28092053af7c97d62cbd3ea0f50
treea11cf1654a6a4d0060d9fd583240724c127406aa
parentf81f0d1afce8921a4cd4fc380eda35a837ae9c4d
Implement SIGWINCH handler so that Edwin console screens can resize
themselves if their enclosing terminals are resized.  This is
accomplished by:

  - allocating a new interrupt, INT_Global_3, to mean that the
    console was resized;
  - installing a SIGWINCH handler to request an INT_Global_3
    interrupt;
  - introducing a new event distributor, EVENT:CONSOLE-RESIZE, which
    the run-time system's INT_Global_3 handler invokes; and
  - adding edwin/tterm.scm's RESIZE-SCREEN as an event receiver to
    EVENT:CONSOLE-RESIZE whenever an Edwin console screen is entered,
    and removing it whenever a console screen is exited.
v7/src/edwin/tterm.scm
v7/src/microcode/osscheme.c
v7/src/microcode/osscheme.h
v7/src/microcode/uxsig.c
v7/src/runtime/intrpt.scm
v7/src/runtime/runtime.pkg