linux-mips
[Top] [All Lists]

[patch] Correct colour handling

To: Ralf Baechle <ralf@linux-mips.org>
Subject: [patch] Correct colour handling
From: Martin Schulze <joey@infodrom.org>
Date: Sat, 19 Oct 2002 18:50:54 +0200
Cc: linux-mips@linux-mips.org
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4i
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

<Prev in Thread] Current Thread [Next in Thread>