tRefuse to move to a non-existent screen location (default to 0,0). Don't bother moving the cursor position every time information is written to the screen buffer - just update it when refresh() is called. - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 92d42d07ec56b85a978130f527a091ed40106a03
(DIR) parent 88b462fb366969ddcb78b437c260d0c6dd4d5ff8
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Wed, 5 Feb 2003 15:56:35 +0000
Refuse to move to a non-existent screen location (default to 0,0). Don't
bother moving the cursor position every time information is written to
tthe screen buffer - just update it when refresh() is called.
Diffstat:
M src/cursesport/cursesport.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/src/cursesport/cursesport.c b/src/cursesport/cursesport.c
t@@ -44,6 +44,7 @@ void refresh(void)
COORD size, offset;
SMALL_RECT screenpos;
+ move(CurY, CurX);
for (y = 0; y < Depth; y++) {
if (memcmp(&RealScreen[y][0], &VirtualScreen[y][0],
sizeof(CHAR_INFO) * Width) != 0) {
t@@ -91,6 +92,7 @@ SCREEN *newterm(void *a, void *b, void *c)
hOut = GetConHandle("CONOUT$");
hIn = GetConHandle("CONIN$");
SetConsoleMode(hIn, 0);
+ SetConsoleMode(hOut, 0);
return NULL;
}
t@@ -153,7 +155,6 @@ void curs_set(BOOL visible)
{
CONSOLE_CURSOR_INFO ConCurInfo;
- move(CurY, CurX);
ConCurInfo.dwSize = 10;
ConCurInfo.bVisible = visible;
SetConsoleCursorInfo(hOut, &ConCurInfo);
t@@ -170,6 +171,12 @@ void move(int y, int x)
{
COORD coord;
+ if (x >= Width) {
+ x = 0;
+ }
+ if (y >= Depth) {
+ y = 0;
+ }
CurX = x;
CurY = y;
coord.X = x;
t@@ -188,7 +195,6 @@ void addstr(const char *str)
for (i = 0; i < strlen(str); i++)
addch(str[i]);
- move(CurY, CurX);
}
void addch(int ch)