コード例 #1
0
ファイル: resize.c プロジェクト: amade/screen
void CheckScreenSize(int change_flag)
{
    int wi, he;

    if (display == 0) {
        return;
    }

    if (ioctl(D_userfd, TIOCGWINSZ, (char *)&glwz) != 0) {
        wi = D_CO;
        he = D_LI;
    } else {
        wi = glwz.ws_col;
        he = glwz.ws_row;
        if (wi == 0)
            wi = D_CO;
        if (he == 0)
            he = D_LI;
    }

    if (D_width == wi && D_height == he) {
        return;
    }
    KillBlanker();
    ResetIdle();
    ChangeScreenSize(wi, he, change_flag);
}
コード例 #2
0
ファイル: resize.c プロジェクト: skoneka/screen
void
CheckScreenSize(int change_flag)
{
  int wi, he;

  if (display == 0)
    {
      debug("CheckScreenSize: No display -> no check.\n");
      return;
    }
#ifdef TIOCGWINSZ
  if (ioctl(D_userfd, TIOCGWINSZ, (char *)&glwz) != 0)
    {
      debug2("CheckScreenSize: ioctl(%d, TIOCGWINSZ) errno %d\n", D_userfd, errno);
      wi = D_CO;
      he = D_LI;
    }
  else
    {
      wi = glwz.ws_col;
      he = glwz.ws_row;
      if (wi == 0)
        wi = D_CO;
      if (he == 0)
        he = D_LI;
    }
#else
  wi = D_CO;
  he = D_LI;
#endif
  
  debug2("CheckScreenSize: screen is (%d,%d)\n", wi, he);

  if (D_width == wi && D_height == he)
    {
      debug("CheckScreenSize: No change -> return.\n");
      return;
    }
  KillBlanker();
  ResetIdle();
  ChangeScreenSize(wi, he, change_flag);
}