#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/ioctl.h>
#include "sig.h"
#include "ftpcopy.h"

unsigned int window_x=80;
unsigned int window_y=24;

int 
inquire_window_size(void)
{
  const int fd=2;
#ifdef TIOCGSIZE
  struct ttysize win;
#elif defined(TIOCGWINSZ)
  struct winsize win;
#endif
#ifdef TIOCGSIZE
  if (ioctl (fd, TIOCGSIZE, &win))
    return -1;
  window_y=win.ts_lines;
  window_x=win.ts_cols;
#elif defined TIOCGWINSZ
  if (ioctl (fd, TIOCGWINSZ, &win))
    return -1;
  window_y=win.ws_row;
  window_x=win.ws_col;
#endif
  return 0;
}

static void
winch_handler(int sig)
{
  (void) sig;
  inquire_window_size();
} 

int
setup_window_size(void)
{
  if (isatty(0) && sig_winch) {
    sig_catch(sig_winch,winch_handler);
    winch_handler(27);
  } 
  return 0;
}



syntax highlighted by Code2HTML, v. 0.9.1