summaryrefslogtreecommitdiff
path: root/sys/dev/wsfont/wsfont.c
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2006-08-06 16:00:47 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2006-08-06 16:00:47 +0000
commitd8887d8611b9f20645651e1a659fad201cbab8d7 (patch)
tree26c73a3abeffdff828b80bcd1703d29a7a9052f3 /sys/dev/wsfont/wsfont.c
parentd96598e887c131b0c998a828c237d992881de300 (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.c75
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)