From 7c0590b37b205f7d2920f43ed81978f425902e09 Mon Sep 17 00:00:00 2001 From: marschap Date: Fri, 7 Apr 2006 16:40:13 +0000 Subject: [PATCH] fix prev commit: correctly check on left side too --- server/drivers/debug.c | 9 ++++----- server/drivers/text.c | 12 ++++++------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/server/drivers/debug.c b/server/drivers/debug.c index 3fd2cde..5a1beec 100644 --- a/server/drivers/debug.c +++ b/server/drivers/debug.c @@ -145,13 +145,12 @@ debug_string (Driver *drvthis, int x, int y, char string[]) y --; x --; // Convert 1-based coords to 0-based... - if ((x < 0) || (y < 0) || (x >= width) || (y >= height)) + if ((y < 0) || (y >= height)) return; - for (i = 0; string[i] != '\0'; i++) { - if (x + i >= width) - break; - framebuf[(y * width) + x + i] = string[i]; + for (i = 0; (string[i] != '\0') && (x < width); i++, x++) { + if (x >= 0) // no write left of left border + framebuf[(y * width) + x] = string[i]; } } diff --git a/server/drivers/text.c b/server/drivers/text.c index fe3daff..6fdcc22 100644 --- a/server/drivers/text.c +++ b/server/drivers/text.c @@ -174,13 +174,12 @@ text_string (Driver *drvthis, int x, int y, char string[]) x--; y--; // Convert 1-based coords to 0-based... - if ((x < 0) || (y < 0) || (x >= width) || (y >= height)) + if ((y < 0) || (y >= height)) return; - for (i = 0; string[i] != '\0'; i++) { - if (x + i >= width) // no write over right border - break; - framebuf[(y * width) + x + i] = string[i]; + for (i = 0; (string[i] != '\0') && (x < width); i++, x++) { + if (x >= 0) // no write left of left border + framebuf[(y * width) + x] = string[i]; } } @@ -193,7 +192,8 @@ text_chr (Driver *drvthis, int x, int y, char c) { y--; x--; - framebuf[(y * width) + x] = c; + if ((x >= 0) && (y >= 0) && (x < width) && (y < height)) + framebuf[(y * width) + x] = c; } /////////////////////////////////////////////////////////////////