Authentic Personal message at 10:10:10 on Wed May 23 1990
From: Chris VanHaren <vanharen>
in your "main" or something, do:
    signal(SIGWINCH, handle_resize_event);
then:
int handle_resize_event( )
{
    struct winsize ws;
    int lines;
    int cols;
    signal(SIGWINCH, SIG_IGN);
    delete_windows();
    /*  Find out the new size.  */
    if (ioctl(fileno(stdout), TIOCGWINSZ, &ws) != -1)
      {
          if (ws.ws_row != 0)
            lines = ws.ws_row;
          if (ws.ws_col != 0)
            cols = ws.ws_col;
      }
    /*  Check that it is large enough  */
    if ((lines < MIN_LINES) || (cols < MIN_COLS))
      {
          curses_shutdown();
          printf("\n\nYou have made the window too small.\n\n");
          printf("Please enlarge it to %d columns by %d lines (or larger)\n",
                  MIN_COLS, MIN_LINES);
          printf("and start the On-Line Help program again.\n\n");
          exit(-2);
      }
    if ((lines > max_lines) || (cols > max_cols))
      {
          curses_shutdown();
          LINES = lines;
          COLS = cols;
          if (! curses_init())
            exit(-2);
      }
    else
      {
          LINES = lines;
          COLS = cols;
      }
    /*  Refresh everything  */
    create_windows();
    paint_windows();
    set_current_screen(current_screen);
    signal(SIGWINCH, handle_resize_event);
