|
@@ -105,6 +105,7 @@
|
|
|
#include <asm/system.h>
|
|
|
#include <linux/uaccess.h>
|
|
|
#include <linux/kdb.h>
|
|
|
+#include <linux/ctype.h>
|
|
|
|
|
|
#define MAX_NR_CON_DRIVER 16
|
|
|
|
|
@@ -1796,8 +1797,8 @@ static void do_con_trol(struct tty_struct *tty, struct vc_data *vc, int c)
|
|
|
vc->vc_state = ESnormal;
|
|
|
return;
|
|
|
case ESpalette:
|
|
|
- if ( (c>='0'&&c<='9') || (c>='A'&&c<='F') || (c>='a'&&c<='f') ) {
|
|
|
- vc->vc_par[vc->vc_npar++] = (c > '9' ? (c & 0xDF) - 'A' + 10 : c - '0');
|
|
|
+ if (isxdigit(c)) {
|
|
|
+ vc->vc_par[vc->vc_npar++] = hex_to_bin(c);
|
|
|
if (vc->vc_npar == 7) {
|
|
|
int i = vc->vc_par[0] * 3, j = 1;
|
|
|
vc->vc_palette[i] = 16 * vc->vc_par[j++];
|