tty_startup(wid, hgt)
int *wid, *hgt;
{
- int twid = origcsbi.dwSize.X;
+/* int twid = origcsbi.dwSize.X; */
+ int twid = origcsbi.srWindow.Right - origcsbi.srWindow.Left;
if (twid > 80) twid = 80;
*wid = twid;
- *hgt = origcsbi.dwSize.Y;
+ *hgt = origcsbi.srWindow.Bottom - origcsbi.srWindow.Top;
}
void
newcoord.Y = 0;
FillConsoleOutputAttribute(hConOut,
FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
- CO * LI,
+ csbi.dwSize.X * csbi.dwSize.Y,
newcoord, &ccnt);
newcoord.X = 0;
newcoord.Y = 0;
void
cl_eos()
{
-
- register int cy = ttyDisplay->cury+1;
+ register int cy = ttyDisplay->cury+1;
+#if 0
while(cy <= LI-2) {
cl_end();
xputc('\n');
cy++;
}
cl_end();
+#else
+ if (GetConsoleScreenBufferInfo(hConOut,&csbi)) {
+ int ccnt;
+ COORD newcoord;
+
+ newcoord.X = 0;
+ newcoord.Y = ttyDisplay->cury;
+ FillConsoleOutputAttribute(hConOut,
+ FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
+ csbi.dwSize.X * csbi.dwSize.Y - cy,
+ newcoord, &ccnt);
+ newcoord.X = 0;
+ newcoord.Y = ttyDisplay->cury;
+ FillConsoleOutputCharacter(hConOut,' ',
+ csbi.dwSize.X * csbi.dwSize.Y - cy,
+ newcoord, &ccnt);
+ }
+ colorchange = TRUE;
+#endif
tty_curs(BASE_WINDOW, (int)ttyDisplay->curx+1,
(int)ttyDisplay->cury);
}