From 487242f925770752107ca356f3cdb5ca75e9bed1 Mon Sep 17 00:00:00 2001 From: ddouthitt Date: Mon, 1 Oct 2001 21:53:27 +0000 Subject: [PATCH] Fixed bug that caused anything beyond the heartbeat not to get updated properly. Only affected optimized MtxOrb driver. --- server/drivers/lcd_lib.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server/drivers/lcd_lib.c b/server/drivers/lcd_lib.c index 9f46682..fd99995 100644 --- a/server/drivers/lcd_lib.c +++ b/server/drivers/lcd_lib.c @@ -14,6 +14,10 @@ // Drawn from the "base driver" which really was the precursor // to this library.... +// TODO: What should this really be? Probably should be in the +// driver code or headers or something... +#define MAX_CUSTOM_CHARS 16 + void free_framebuf (struct lcd_logical_driver *driver) { if (!driver) @@ -38,11 +42,20 @@ clear_framebuf (struct lcd_logical_driver *driver) { int new_framebuf (struct lcd_logical_driver *driver, char *oldbuf) { + int i; + if (driver->framebuf == NULL) return 1; if (oldbuf == NULL) return 1; - return (strncmp(driver->framebuf, oldbuf, driver->wid * driver->hgt) != 0); + + for (i = 0; i < driver->wid * driver->hgt; i++) { + if (driver->framebuf[i] < MAX_CUSTOM_CHARS) + return 1; + if (driver->framebuf[i] != oldbuf[i]) + return 1; + } + return 0; } void