fix cl_eos() in NT tty port.

This commit is contained in:
nethack.allison
2002-02-05 02:43:55 +00:00
parent 151f27e0c5
commit 7637374948
+25 -5
View File
@@ -121,11 +121,12 @@ void
tty_startup(wid, hgt) tty_startup(wid, hgt)
int *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; if (twid > 80) twid = 80;
*wid = twid; *wid = twid;
*hgt = origcsbi.dwSize.Y; *hgt = origcsbi.srWindow.Bottom - origcsbi.srWindow.Top;
} }
void void
@@ -589,7 +590,7 @@ clear_screen()
newcoord.Y = 0; newcoord.Y = 0;
FillConsoleOutputAttribute(hConOut, FillConsoleOutputAttribute(hConOut,
FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
CO * LI, csbi.dwSize.X * csbi.dwSize.Y,
newcoord, &ccnt); newcoord, &ccnt);
newcoord.X = 0; newcoord.X = 0;
newcoord.Y = 0; newcoord.Y = 0;
@@ -655,14 +656,33 @@ tty_delay_output()
void void
cl_eos() cl_eos()
{ {
register int cy = ttyDisplay->cury+1;
register int cy = ttyDisplay->cury+1; #if 0
while(cy <= LI-2) { while(cy <= LI-2) {
cl_end(); cl_end();
xputc('\n'); xputc('\n');
cy++; cy++;
} }
cl_end(); 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, tty_curs(BASE_WINDOW, (int)ttyDisplay->curx+1,
(int)ttyDisplay->cury); (int)ttyDisplay->cury);
} }