diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2006-08-06 16:00:47 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2006-08-06 16:00:47 +0000 |
commit | d8887d8611b9f20645651e1a659fad201cbab8d7 (patch) | |
tree | 26c73a3abeffdff828b80bcd1703d29a7a9052f3 /sys/dev/wsfont/wsfont.c | |
parent | d96598e887c131b0c998a828c237d992881de300 (diff) |
Convert the Sony wsfonts to ISO-Latin1 encoding, and drop the Sony encoding
conversion tables; from NetBSD.
Diffstat (limited to 'sys/dev/wsfont/wsfont.c')
-rw-r--r-- | sys/dev/wsfont/wsfont.c | 75 |
1 files changed, 12 insertions, 63 deletions
diff --git a/sys/dev/wsfont/wsfont.c b/sys/dev/wsfont/wsfont.c index f2f99947274..35fcafa5880 100644 --- a/sys/dev/wsfont/wsfont.c +++ b/sys/dev/wsfont/wsfont.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wsfont.c,v 1.19 2006/08/06 13:04:33 miod Exp $ */ +/* $OpenBSD: wsfont.c,v 1.20 2006/08/06 16:00:46 miod Exp $ */ /* $NetBSD: wsfont.c,v 1.17 2001/02/07 13:59:24 ad Exp $ */ /*- @@ -817,65 +817,14 @@ static struct wsfont_level2_glyphmap *iso7_level1[] = { }; -/* - * SONY maps - */ - -static u_int8_t -sony_chars_0[] = { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100,101,102,103,104,105,106,107,108,109,110,111, - 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, - 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, - 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, - 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, - 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207, - 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223 -}; -static u_int16_t -sony_chars_255[] = { - 225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240, - 241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256, - 257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272, - 273,274,275,276,277,278,279,280,281,282,283,284,285,286,287 -}; - -static struct wsfont_level2_glyphmap -sony_level2_0 = { 0, 256, sony_chars_0, 1 }, -sony_level2_255 = { 97, 63, sony_chars_255, 2 }; - -static struct wsfont_level2_glyphmap *sony_level1[] = { - &sony_level2_0, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - null16, null16, null16, null16, - null16, null16, null16, null16, - null16, null16, null16, null16, - null16, null16, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, - NULL, NULL, NULL, &sony_level2_255 -}; - static struct wsfont_level1_glyphmap encodings[] = { { NULL, 0, 0 }, /* WSDISPLAY_FONTENC_ISO */ { ibm437_level1, 0, 38 }, /* WSDISPLAY_FONTENC_IBM */ { NULL, 0, 0 }, /* WSDISPLAY_FONTENC_PCVT */ { iso7_level1, 0, 33 }, /* WSDISPLAY_FONTENC_ISO7 */ - { sony_level1, 0, 256 }, /* WSDISPLAY_FONTENC_SONY */ }; -#define MAX_ENCODING WSDISPLAY_FONTENC_SONY +#define MAX_ENCODING (sizeof(encodings) / sizeof(encodings[0])) #endif /* !SMALL_KERNEL */ @@ -903,20 +852,20 @@ wsfont_map_unichar(font, c) map1->level2[hi - map1->base]; if (map2 != NULL && - lo >= map2->base && hi < map2->base + map2->size) { + lo >= map2->base && lo < map2->base + map2->size) { lo -= map2->base; switch(map2->width) { - case 1: - c = (((u_int8_t *)map2->chars)[lo]); - break; - case 2: - c = (((u_int16_t *)map2->chars)[lo]); - break; - case 4: - c = (((u_int32_t *)map2->chars)[lo]); - break; + case 1: + c = (((u_int8_t *)map2->chars)[lo]); + break; + case 2: + c = (((u_int16_t *)map2->chars)[lo]); + break; + case 4: + c = (((u_int32_t *)map2->chars)[lo]); + break; } if (c == 0 && lo != 0) |