Skip to content

Instantly share code, notes, and snippets.

Created January 23, 2013 00:12
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save anonymous/4600268 to your computer and use it in GitHub Desktop.
unicode-to-cp1251/koi8-r mapping for syscons (kfreebsd)
#! /usr/bin/env python
# A script that prints extra characters in each mapping table
# in order to check how they're rendered on screen. Works only
# in unicode locales.
from __future__ import unicode_literals, print_function
cp437_added_in_r226888 = [
'\u00c0', '\u00c1', '\u00c2', '\u00c8',
'\u00ca', '\u00cb', '\u00cc', '\u00cd',
'\u00ce', '\u00cf', '\u00d2', '\u00d3',
'\u00d4', '\u00d9', '\u00da', '\u00db',
'\u013f', '\u0140', '\u25ae', ]
cp1251_extras = [
'\u00cb', '\u2032', '\u00eb', '\u2501', ]
koi8r_extras = [
'\u00ab', '\u2039', '\u00bb', '\u203a',
'\u00cb', '\u2116', '\u00eb', '\u2501',
'\u2013', '\u25a1', '\u2026', '\u25cf',
'\u2032', '\u2606', '\u25ae' ]
print("New chars to cp437 in r226888:")
for c in cp437_added_in_r226888:
print(c, end=', ')
print()
print("Extra chars in CP1251 table:")
for c in cp1251_extras:
print(c, end=', ')
print()
print("Extra chars in KOI8-R table:")
for c in koi8r_extras:
print(c, end=', ')
print()
Index: sys/dev/syscons/scterm-teken.c
===================================================================
--- sys/dev/syscons/scterm-teken.c (revision 245825)
+++ sys/dev/syscons/scterm-teken.c (working copy)
@@ -414,7 +414,138 @@ struct unicp437 {
uint8_t length;
};
+#define TEKEN_UNICP1251
+//#define TEKEN_UNIKOI8R
+
static const struct unicp437 cp437table[] = {
+#ifdef TEKEN_UNICP1251
+ { 0x0020, 0x20, 0x5e }, { 0x00a0, 0x20, 0x00 },
+ { 0x00a4, 0xa4, 0x00 }, { 0x00a6, 0xa6, 0x01 },
+ { 0x00a7, 0xa7, 0x00 }, { 0x00a9, 0xa9, 0x00 },
+ { 0x00ab, 0xab, 0x00 }, { 0x00ac, 0xac, 0x02 },
+ { 0x00b0, 0xb0, 0x01 }, { 0x00b5, 0xb5, 0x00 },
+ { 0x00b6, 0xb6, 0x01 }, { 0x00bb, 0xbb, 0x00 },
+ { 0x00c0, 0x41, 0x00 }, { 0x00c1, 0x41, 0x00 },
+ { 0x00c2, 0x41, 0x00 }, { 0x00c8, 0x45, 0x00 },
+ { 0x00ca, 0x45, 0x00 }, { 0x00cb, 0x45, 0x00 },
+ { 0x00cc, 0x49, 0x00 }, { 0x00cd, 0x49, 0x00 },
+ { 0x00ce, 0x49, 0x00 }, { 0x00cf, 0x49, 0x00 },
+ { 0x00d2, 0x4f, 0x00 }, { 0x00d3, 0x4f, 0x00 },
+ { 0x00d4, 0x4f, 0x00 }, { 0x00d9, 0x55, 0x00 },
+ { 0x00da, 0x55, 0x00 }, { 0x00db, 0x55, 0x00 },
+ { 0x00eb, 0xb8, 0x00 }, { 0x013f, 0x4c, 0x00 },
+ { 0x0140, 0x6c, 0x00 }, { 0x03bc, 0xb5, 0x00 },
+ { 0x0401, 0xa8, 0x00 }, { 0x0402, 0x80, 0x01 },
+ { 0x0404, 0xaa, 0x00 }, { 0x0405, 0xbd, 0x00 },
+ { 0x0406, 0xb2, 0x00 }, { 0x0407, 0xaf, 0x00 },
+ { 0x0408, 0xa3, 0x00 }, { 0x0409, 0x8a, 0x00 },
+ { 0x040a, 0x8c, 0x00 }, { 0x040b, 0x8e, 0x00 },
+ { 0x040c, 0x8d, 0x00 }, { 0x040e, 0xa1, 0x00 },
+ { 0x040f, 0x8f, 0x00 }, { 0x0410, 0xc0, 0x3f },
+ { 0x0451, 0xb8, 0x00 }, { 0x0452, 0x90, 0x00 },
+ { 0x0453, 0x83, 0x00 }, { 0x0454, 0xba, 0x00 },
+ { 0x0455, 0xbe, 0x00 }, { 0x0456, 0xb3, 0x00 },
+ { 0x0457, 0xbf, 0x00 }, { 0x0458, 0xbc, 0x00 },
+ { 0x0459, 0x9a, 0x00 }, { 0x045a, 0x9c, 0x00 },
+ { 0x045b, 0x9e, 0x00 }, { 0x045c, 0x9d, 0x00 },
+ { 0x045e, 0xa2, 0x00 }, { 0x045f, 0x9f, 0x00 },
+ { 0x0490, 0xa5, 0x00 }, { 0x0491, 0xb4, 0x00 },
+ { 0x2010, 0x2d, 0x00 }, { 0x2013, 0x96, 0x00 },
+ { 0x2014, 0x97, 0x00 }, { 0x2018, 0x91, 0x01 },
+ { 0x201a, 0x82, 0x00 }, { 0x201c, 0x93, 0x01 },
+ { 0x201e, 0x84, 0x00 }, { 0x2020, 0x86, 0x01 },
+ { 0x2022, 0x95, 0x00 }, { 0x2026, 0x85, 0x00 },
+ { 0x2030, 0x89, 0x00 }, { 0x2032, 0x27, 0x00 },
+ { 0x2039, 0x8b, 0x00 }, { 0x203a, 0x9b, 0x00 },
+ { 0x203c, 0x13, 0x00 }, { 0x20ac, 0x88, 0x00 },
+ { 0x2116, 0xb9, 0x00 }, { 0x2122, 0x99, 0x00 },
+ { 0x2190, 0x1b, 0x00 }, { 0x2191, 0x18, 0x00 },
+ { 0x2192, 0x1a, 0x00 }, { 0x2193, 0x19, 0x00 },
+ { 0x2194, 0x1d, 0x00 }, { 0x2195, 0x12, 0x00 },
+ { 0x21a8, 0x17, 0x00 }, { 0x2212, 0x2d, 0x00 },
+ { 0x221f, 0x1c, 0x00 }, { 0x2302, 0x7f, 0x00 },
+ { 0x2501, 0x96, 0x00 }, { 0x25ac, 0x16, 0x00 },
+ { 0x25b2, 0x1e, 0x00 }, { 0x25ba, 0x10, 0x00 },
+ { 0x25bc, 0x1f, 0x00 }, { 0x25c4, 0x11, 0x00 },
+ { 0x25cb, 0x09, 0x00 }, { 0x25d8, 0x08, 0x00 },
+ { 0x25d9, 0x0a, 0x00 }, { 0x263a, 0x01, 0x01 },
+ { 0x263c, 0x0f, 0x00 }, { 0x2640, 0x0c, 0x00 },
+ { 0x2642, 0x0b, 0x00 }, { 0x2660, 0x06, 0x00 },
+ { 0x2663, 0x05, 0x00 }, { 0x2665, 0x03, 0x01 },
+ { 0x266a, 0x0d, 0x01 },
+#elif defined(TEKEN_UNIKOI8R)
+ { 0x0020, 0x20, 0x5e }, { 0x00a0, 0x9a, 0x00 },
+ { 0x00a7, 0x15, 0x00 }, { 0x00a9, 0xbf, 0x00 },
+ { 0x00ab, 0x22, 0x00 }, { 0x00b0, 0x9c, 0x00 },
+ { 0x00b2, 0x9d, 0x00 }, { 0x00b6, 0x14, 0x00 },
+ { 0x00b7, 0x9e, 0x00 }, { 0x00bb, 0x22, 0x00 },
+ { 0x00c0, 0x41, 0x00 }, { 0x00c1, 0x41, 0x00 },
+ { 0x00c2, 0x41, 0x00 }, { 0x00c8, 0x45, 0x00 },
+ { 0x00ca, 0x45, 0x00 }, { 0x00cb, 0xb3, 0x00 },
+ { 0x00cc, 0x49, 0x00 }, { 0x00cd, 0x49, 0x00 },
+ { 0x00ce, 0x49, 0x00 }, { 0x00cf, 0x49, 0x00 },
+ { 0x00d2, 0x4f, 0x00 }, { 0x00d3, 0x4f, 0x00 },
+ { 0x00d4, 0x4f, 0x00 }, { 0x00d9, 0x55, 0x00 },
+ { 0x00da, 0x55, 0x00 }, { 0x00db, 0x55, 0x00 },
+ { 0x00eb, 0xa3, 0x00 }, { 0x00f7, 0x9f, 0x00 },
+ { 0x013f, 0x4c, 0x00 }, { 0x0140, 0x6c, 0x00 },
+ { 0x0401, 0xb3, 0x00 }, { 0x0410, 0xe1, 0x01 },
+ { 0x0412, 0xf7, 0x00 }, { 0x0413, 0xe7, 0x00 },
+ { 0x0414, 0xe4, 0x01 }, { 0x0416, 0xf6, 0x00 },
+ { 0x0417, 0xfa, 0x00 }, { 0x0418, 0xe9, 0x07 },
+ { 0x0420, 0xf2, 0x03 }, { 0x0424, 0xe6, 0x00 },
+ { 0x0425, 0xe8, 0x00 }, { 0x0426, 0xe3, 0x00 },
+ { 0x0427, 0xfe, 0x00 }, { 0x0428, 0xfb, 0x00 },
+ { 0x0429, 0xfd, 0x00 }, { 0x042a, 0xff, 0x00 },
+ { 0x042b, 0xf9, 0x00 }, { 0x042c, 0xf8, 0x00 },
+ { 0x042d, 0xfc, 0x00 }, { 0x042e, 0xe0, 0x00 },
+ { 0x042f, 0xf1, 0x00 }, { 0x0430, 0xc1, 0x01 },
+ { 0x0432, 0xd7, 0x00 }, { 0x0433, 0xc7, 0x00 },
+ { 0x0434, 0xc4, 0x01 }, { 0x0436, 0xd6, 0x00 },
+ { 0x0437, 0xda, 0x00 }, { 0x0438, 0xc9, 0x07 },
+ { 0x0440, 0xd2, 0x03 }, { 0x0444, 0xc6, 0x00 },
+ { 0x0445, 0xc8, 0x00 }, { 0x0446, 0xc3, 0x00 },
+ { 0x0447, 0xde, 0x00 }, { 0x0448, 0xdb, 0x00 },
+ { 0x0449, 0xdd, 0x00 }, { 0x044a, 0xdf, 0x00 },
+ { 0x044b, 0xd9, 0x00 }, { 0x044c, 0xd8, 0x00 },
+ { 0x044d, 0xdc, 0x00 }, { 0x044e, 0xc0, 0x00 },
+ { 0x044f, 0xd1, 0x00 }, { 0x0451, 0xa3, 0x00 },
+ { 0x2010, 0x2d, 0x00 }, { 0x2013, 0x2d, 0x00 },
+ { 0x2014, 0x2d, 0x00 }, { 0x2018, 0x60, 0x00 },
+ { 0x2019, 0x27, 0x00 }, { 0x201c, 0x22, 0x00 },
+ { 0x201d, 0x22, 0x00 }, { 0x2022, 0x07, 0x00 },
+ { 0x2026, 0x5f, 0x00 }, { 0x2032, 0x27, 0x00 },
+ { 0x2039, 0x3c, 0x00 }, { 0x203a, 0x3e, 0x00 },
+ { 0x203c, 0x13, 0x00 }, { 0x2116, 0x23, 0x00 },
+ { 0x2190, 0x1b, 0x00 }, { 0x2191, 0x18, 0x00 },
+ { 0x2192, 0x1a, 0x00 }, { 0x2193, 0x19, 0x00 },
+ { 0x2194, 0x1d, 0x00 }, { 0x2195, 0x12, 0x00 },
+ { 0x21a8, 0x17, 0x00 }, { 0x2212, 0x2d, 0x00 },
+ { 0x2219, 0x95, 0x01 }, { 0x221f, 0x1c, 0x00 },
+ { 0x2248, 0x97, 0x00 }, { 0x2264, 0x98, 0x01 },
+ { 0x2302, 0x7f, 0x00 }, { 0x2320, 0x93, 0x00 },
+ { 0x2321, 0x9b, 0x00 }, { 0x2500, 0x80, 0x00 },
+ { 0x2501, 0x80, 0x01 }, { 0x250c, 0x82, 0x00 },
+ { 0x2510, 0x83, 0x00 }, { 0x2514, 0x84, 0x00 },
+ { 0x2518, 0x85, 0x00 }, { 0x251c, 0x86, 0x00 },
+ { 0x2524, 0x87, 0x00 }, { 0x252c, 0x88, 0x00 },
+ { 0x2534, 0x89, 0x00 }, { 0x253c, 0x8a, 0x00 },
+ { 0x2550, 0xa0, 0x02 }, { 0x2553, 0xa4, 0x0e },
+ { 0x2562, 0xb4, 0x0a }, { 0x2580, 0x8b, 0x00 },
+ { 0x2584, 0x8c, 0x00 }, { 0x2588, 0x8d, 0x00 },
+ { 0x258c, 0x8e, 0x00 }, { 0x2590, 0x8f, 0x03 },
+ { 0x25a0, 0x94, 0x00 }, { 0x25a1, 0x94, 0x00 },
+ { 0x25ac, 0x16, 0x00 }, { 0x25ae, 0x8d, 0x00 },
+ { 0x25b2, 0x1e, 0x00 }, { 0x25ba, 0x10, 0x00 },
+ { 0x25bc, 0x1f, 0x00 }, { 0x25c4, 0x11, 0x00 },
+ { 0x25cb, 0x09, 0x00 }, { 0x25cf, 0x95, 0x00 },
+ { 0x25d8, 0x08, 0x00 }, { 0x25d9, 0x0a, 0x00 },
+ { 0x2606, 0x09, 0x00 }, { 0x263a, 0x01, 0x01 },
+ { 0x263c, 0x0f, 0x00 }, { 0x2640, 0x0c, 0x00 },
+ { 0x2642, 0x0b, 0x00 }, { 0x2660, 0x06, 0x00 },
+ { 0x2663, 0x05, 0x00 }, { 0x2665, 0x03, 0x01 },
+ { 0x266a, 0x0d, 0x01 },
+#else
{ 0x0020, 0x20, 0x5e }, { 0x00a0, 0x20, 0x00 },
{ 0x00a1, 0xad, 0x00 }, { 0x00a2, 0x9b, 0x00 },
{ 0x00a3, 0x9c, 0x00 }, { 0x00a5, 0x9d, 0x00 },
@@ -509,6 +640,7 @@ static const struct unicp437 cp437table[] = {
{ 0x2640, 0x0c, 0x00 }, { 0x2642, 0x0b, 0x00 },
{ 0x2660, 0x06, 0x00 }, { 0x2663, 0x05, 0x00 },
{ 0x2665, 0x03, 0x01 }, { 0x266a, 0x0d, 0x01 },
+#endif
};
static void
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment