From: Martin Schulze (joey@infodrom.org)
Date: Sat Oct 19 2002 - 18:50:54 CEST
Moin Ralf,
please apply the patch below which will correct colour handling. The
outcome of this patch will only be visible with a monochrome graphics
card since they can see what is written on the screen again.
As you can see, not all occasions where the currently used colour is
changed, isn't protected by the 'if (can_do_color)' check. Some
occurrences though use it.
This patch is done basically by Thiemo Seufer during this years'
Oldenburg meeting.
Regards,
Joey
Index: console.c
===================================================================
RCS file: /home/cvs/linux/drivers/char/console.c,v
retrieving revision 1.37.2.2
diff -u -r1.37.2.2 console.c
--- console.c 26 Jun 2002 22:35:32 -0000 1.37.2.2
+++ console.c 19 Oct 2002 16:47:01 -0000
@@ -1046,7 +1046,8 @@
underline = 0;
reverse = 0;
blink = 0;
- color = def_color;
+ if (can_do_color)
+ color = def_color;
}
/* console_sem is held */
@@ -1119,7 +1120,8 @@
* with white underscore (Linux - use
* default foreground).
*/
- color = (def_color & 0x0f) | background;
+ if (can_do_color)
+ color = (def_color & 0x0f) | background;
underline = 1;
break;
case 39: /* ANSI X3.64-1979 (SCO-ish?)
@@ -1127,11 +1129,13 @@
* Reset colour to default? It did this
* before...
*/
- color = (def_color & 0x0f) | background;
+ if (can_do_color)
+ color = (def_color & 0x0f) | background;
underline = 0;
break;
case 49:
- color = (def_color & 0xf0) | foreground;
+ if (can_do_color)
+ color = (def_color & 0xf0) | foreground;
break;
default:
if (par[i] >= 30 && par[i] <= 37)
@@ -1274,9 +1278,11 @@
}
break;
case 8: /* store colors as defaults */
- def_color = attr;
- if (hi_font_mask == 0x100)
- def_color >>= 1;
+ if (can_do_color) {
+ def_color = attr;
+ if (hi_font_mask == 0x100)
+ def_color >>= 1;
+ }
default_attr(currcons);
update_attr(currcons);
break;
-- Every use of Linux is a proper use of Linux. -- Jon "Maddog" Hall
This archive was generated by hypermail 2.1.4 : Sat Oct 19 2002 - 18:57:10 CEST