diff --git a/buba/static/display.js b/buba/static/display.js index 50a29f4..53264ae 100644 --- a/buba/static/display.js +++ b/buba/static/display.js @@ -88,7 +88,9 @@ export default class { } applyCharacter(row, col, char) { - let f = this.font[char] + if (char === "\u00c7") + console.log("apply font[d]", char.codePointAt(0), this.font[char]) + let f = this.font[char]; if (f === undefined) return 0; for (let c of this.font[char]) { @@ -108,6 +110,7 @@ export default class { } applyText(row, col, text) { + // console.log("Applying text", row, text); for (let c of text) { col += this.applyCharacter(row, col, c) } @@ -133,54 +136,54 @@ export default class { */ let defs = {} // 0x00-0x0f - defs['\u0001'] = [] - defs['\u0002'] = [] - defs['\u0003'] = [] - defs['\u0004'] = [] - defs['\u0005'] = [] - defs['\u0006'] = [] - defs['\u0007'] = [] - defs['\u0008'] = [] - defs['\u0009'] = [] - defs['\u000a'] = [] - defs['\u000b'] = [] - defs['\u000c'] = [] - defs['\u000d'] = [] - defs['\u000e'] = [] - defs['\u000f'] = [] + defs['\u0001'] = []; + defs['\u0002'] = []; + defs['\u0003'] = []; + defs['\u0004'] = []; + defs['\u0005'] = []; + defs['\u0006'] = []; + defs['\u0007'] = []; + defs['\u0008'] = []; + defs['\u0009'] = []; + defs['\u000a'] = []; + defs['\u000b'] = []; + defs['\u000c'] = []; + defs['\u000d'] = []; + defs['\u000e'] = []; + defs['\u000f'] = []; // 0x10-0x1f - defs['\u0010'] = [] - defs['\u0011'] = [] - defs['\u0012'] = [] - defs['\u0013'] = [] - defs['\u0014'] = [] - defs['\u0015'] = [] - defs['\u0016'] = [] - defs['\u0017'] = [] - defs['\u0018'] = [] - defs['\u0019'] = [] - defs['\u001a'] = [] - defs['\u001b'] = [] - defs['\u001c'] = [] - defs['\u001d'] = [] - defs['\u001e'] = [] - defs['\u001f'] = [] + defs['\u0010'] = []; + defs['\u0011'] = []; + defs['\u0012'] = []; + defs['\u0013'] = []; + defs['\u0014'] = []; + defs['\u0015'] = []; + defs['\u0016'] = []; + defs['\u0017'] = []; + defs['\u0018'] = []; + defs['\u0019'] = []; + defs['\u001a'] = []; + defs['\u001b'] = []; + defs['\u001c'] = []; + defs['\u001d'] = []; + defs['\u001e'] = []; + defs['\u001f'] = []; // 0x20-0x2f defs['\u0020'] = [ // space '...... ...... ...... ......' - ] + ]; defs['\u0021'] = [ // ! '###### ###### ##.... ###...', '...... ...... ...... ......', - ] + ]; defs['\u0022'] = [ // " '###### ...... ...... ......', '...... ...... ...... ......', '###### ...... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0023'] = [ // # '...... ###... .#.... ......', '###### ###### ###### ###...', @@ -188,7 +191,7 @@ export default class { '###### ###### ###### ###...', '...... ###... .#.... ......', '...... ...... ...... ......', - ] + ]; defs['\u0024'] = [ // $ '.....# ####.# ..#.#. ......', '...### ...### #.#### ......', @@ -196,69 +199,69 @@ export default class { '...### ...### #.#### ......', '....#. ....#. ####.. ......', '...... ...... ...... ......', - ] + ]; defs['\u0025'] = [ // % '...### .....# ###### ......', '.....# .####. ...... ......', '...##. #..... ..#### ......', '...... ...... ...... ......', - ] + ]; defs['\u0026'] = [ // & '.###.# .#...# ###### #.#...', '###.## ###### ...... ###...', '#.###. #...#. ###.## ##....', '...... ...... ..##.# #.#...', '...... ...... ...... ......', - ] + ]; defs['\u0027'] = [ // ' '###### ...... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0028'] = [ // ( '.....# .##### ###.#. ......', '.####. #..... ...#.# #.#...', '#..... ...... ...... .#....', '...... ...... ...... ......', - ] + ]; defs['\u0029'] = [ // ) '.#.... ...... ...... ..#...', '#.##.# .#.... ....## ##....', '....#. #.#### ####.. ......', '...... ...... ...... ......', - ] + ]; defs['\u002a'] = [ // * '...... ...#.# .#..## ......', '...... ....## #####. ......', '...... ...##. .#.#.# ......', '...... ...... ...... ......', - ] + ]; defs['\u002b'] = [ // + '...... ...... .#.... ......', '...... ...### ###### ......', '...... ...... .#.... ......', '...... ...... ...... ......', - ] + ]; defs['\u002c'] = [ // , '...... ...... ...... .....#', '...... ...... ...... #####.', '...... ...... ...... ......', - ] + ]; defs['\u002d'] = [ // - '...... ...... .#.... ......', '...... ...... .#.... ......', '...... ...... .#.... ......', '...... ...... ...... ......', - ] + ]; defs['\u002e'] = [ // . '...... ...... ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u002f'] = [ // / '...... .....# ###### ###...', '.....# .####. ...... ......', '#####. ...... ...... ......', '...... ...... ...... ......', - ] + ]; // 0x30-0x3f defs['\u0030'] = [ // 0 @@ -266,94 +269,94 @@ export default class { '###... ...... ...... ###...', '#.#### ###### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0031'] = [ // 1 '.....# .#.... ...... ......', '.####. #..... ...... ......', '###### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0032'] = [ // 2 '.##... .....# ###### ###...', '###... ...### #..... ###...', '#.#### #####. ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u0033'] = [ // 3 '.##... ...... ...... #.#...', '###... ...### #..... ###...', '#.#### #####. ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0034'] = [ // 4 '###### ###### ##..........', '...... ...... .#.... ......', '...... ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0035'] = [ // 5 '###### ###... ..#### #.#...', '###... ###... ...... ###...', '###... #.#### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0036'] = [ // 6 '.##### ###### ###### #.#...', '###... ###... ...... ###...', '#.#... #.#### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0037'] = [ // 7 '###... .....# ###### ###...', '###..# .####. ...... ......', '#####. #..... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0038'] = [ // 8 '.##### ####.# ###### #.#...', '###... ...### #..... ###...', '#.#### #####. ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0039'] = [ // 9 '.##### ####.# ...... #.#...', '###... ...### #..... ###...', '#.#### ###### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u003a'] = [ // : '...... ###... ..#### ......', '...... ...... ...... ......', - ] + ]; defs['\u003b'] = [ // ; '...... ...... ...... .....#', '...... ...... .#.... #####.', '...... ...... ...... ......', - ] + ]; defs['\u003c'] = [ // < '...... .....# ###.#. ......', '...... .####. ...#.# #.#...', '...... #..... ...... .#...', '...... ...... ...... ......', - ] + ]; defs['\u003d'] = [ // = '...... ...### #.#### ......', '...... ...### #.#### ......', '...... ...### #.#### ......', '...... ...... ...... ......', - ] + ]; defs['\u003e'] = [ // > '...... .#.... ...... ..#...', '...... #.##.# ....## ##....', '...... ....#. ####.. ......', '...... ...... ...... ......', - ] + ]; defs['\u003f'] = [ // ? '.##### ...... ...... ......', '###... .....# ###### ....##', '#.#### #####. ...... ......', '...... ...... ...... ......', - ] + ]; // 0x40-0x4f defs['\u0040'] = [ // @ @@ -363,95 +366,95 @@ export default class { '...... ###... .#.... ##....', '...... #.#### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0041'] = [ // A '.##### ###### ###### ###...', '###... ...### #..... ......', '#.#### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0042'] = [ // B '###### ###### ###### ###...', '###... ...### #..... ###...', '#.#### #####. ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0043'] = [ // C '.##### ###### ###### #.#...', '###... ...... ...... ###...', '#.#... ...... ...... ##....', '...... ...... ...... ......', - ] + ]; defs['\u0044'] = [ // D '###### ###### ###### ###...', '###... ...... ...... ###...', '#.#### ###### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0045'] = [ // E '###### ###### ###### ###...', '###... ...### #..... ###...', '###... ...... ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u0046'] = [ // F '###### ###### ###### ###...', '###... ...### #..... ......', '###... ...... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0047'] = [ // G '.##### ###### ###### #.#...', '###... .....# ...... ###...', '#.#... ...### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0048'] = [ // H '###### ###### ###### ###...', '...... ...### #..... ......', '###### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0049'] = [ // I '###### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u004a'] = [ // J '###... ...... .....# #.#...', '###... ...... ...... ###...', '#.#### ###### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u004b'] = [ // K '###### ###### ###### ###...', '.....# .####. ###.#. ......', '.####. #..... ...#.# ###...', '...... ...... ...... ......', - ] + ]; defs['\u004c'] = [ // L '###### ###### ###### ###...', '...... ...... ...... ###...', '...... ...... ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u004d'] = [ // M '#.#### ###### ###### ###...', '....## ####.. ...... ......', '.##### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u004e'] = [ // N '#.#### ###### ###### ###...', '....#. #.##.# ...... ......', '###### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u004f'] = [ // O '.##### ###### ###### #.#...', '###... ...... ...... ###...', '#.#### ###### ###### ##....', '...... ...... ...... ......', - ] + ]; // 0x50-0x5f defs['\u0050'] = [ // P @@ -459,169 +462,169 @@ export default class { '###... ...### #..... ......', '#.#### #####. ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0051'] = [ // Q '.##### ###### ###### #.#...', '###... ...... ..#.#. ##....', '#.#### ###### ####.# #.#...', '...... ...... ...... ......', - ] + ]; defs['\u0052'] = [ // R '###### ###### ###### ###...', '###... ...### ###.#. ......', '#.#### #####. ...#.# #.#...', '...... ...... ...... ......', - ] + ]; defs['\u0053'] = [ // S '.##### ####.# ...... #.#...', '###... ...### #..... ###...', '#.#... ....#. ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0054'] = [ // T '###... ...... ...... ......', '###### ###### ###### ###...', '###... ...... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0055'] = [ // U '###### ###### ###### #.#...', '...... ...... ...... ###...', '###### ###### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0056'] = [ // V '###### ###### ###.#. ......', '...... ...... ...### #.....', '###### ###### ####.. ......', '...... ...... ...... ......', - ] + ]; defs['\u0057'] = [ // W '###### ###### ###### #.....', '...... ...... #####. ......', '###### ###### ###### #.....', '...... ...... ...... ......', - ] + ]; defs['\u0058'] = [ // X '####.# .#...# ###### ###...', '....## ###### ...... ......', '#####. #...#. ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0059'] = [ // Y '###### ####.# ...... ......', '...... ....## ###### ###...', '###### #####. ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u005a'] = [ // Z '###... .....# ###### ###...', '###..# .####. ...... ###...', '#####. #..... ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u005b'] = [ // [ '###### ###### ###### ###...', '###... ...... ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u005c'] = [ // \\ (defined like space in device font '...... ...... ...... ......', '...... ...... ...... ......', '...... ...... ...... ......', - ] - defs['\u005d'] = [ // ] + ]; + defs['\u005d'] = [ // ]; '###... ...... ...... ###...', '###### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u005e'] = [ // ^ '.....# .##... ...... ......', '..#### ##.... ...... ......', '....#. #.#... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u005f'] = [ // _ '...... ...... ...... ###...', '...... ...... ...... ###...', '...... ...... ...... ###...', '...... ...... ...... ......', - ] + ]; // 0x60-0x6f defs['\u0060'] = [ // ` '####.# .#.... ...... ......', '....#. #.... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0061'] = [ // a '...... .##... .##### #.#...', '...... ###... .#.... ##....', '...... #.#### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0062'] = [ // b '###### ###### ###### ###...', '...... ###... ...... ###...', '...... #.#### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0063'] = [ // c '...... .##### ###### #.#...', '...... ###... ...... ###...', '...... #.#... ...... ##....', '...... ...... ...... ......', - ] + ]; defs['\u0064'] = [ // d '...... .##### ###### #.#...', '...... ###... ...... ###...', '###### ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0065'] = [ // e '...... .##### ###### #.#...', '...... ###... .#.... ###...', '...... #.#### ##.... ##....', '...... ...... ...... ......', - ] + ]; defs['\u0066'] = [ // f '...... ###... ...... ......', '.##### ###### ###### ###...', '#.#... ###... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0067'] = [ // g '...... .##### ###### #.#.##', '...... ###... ...... ###.##', '...... #.#### ###### #####.', '...... ...... ...... ......', - ] + ]; defs['\u0068'] = [ // h '###### ###### ###### ###...', '...... ###... ...... ......', '...... #.#### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u0069'] = [ // i '###... ###### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u006a'] = [ // j '...... ...... ...... ....##', '###... ###### ###### #####.', '...... ...... ...... ......', - ] + ]; defs['\u006b'] = [ // k '###### ###### ###### ###...', '...... .....# ###.#. ......', '...... .####. ...#.# #.#...', '...... ...... ...... ......', - ] + ]; defs['\u006c'] = [ // l '###### ###### ###### #.#...', '...... ...... ...... ##....', '...... ...... ...... ......', - ] + ]; defs['\u006d'] = [ // m '...... ###### ###### ###...', '...... .##... ...... ......', @@ -629,19 +632,19 @@ export default class { '...... .##... ...... ......', '...... #.#### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u006e'] = [ // n '...... ###### ###### ###...', '...... .##... ...... ......', '...... #.#### ###### ###...', '...... ...... ...... ......', - ] + ]; defs['\u006f'] = [ // o '...... .##### ###### #.#...', '...... ###... ...... ###...', '...... #.#### ###### ##....', '...... ...... ...... ......', - ] + ]; // 0x70-0x7f defs['\u0070'] = [ // p @@ -649,82 +652,82 @@ export default class { '...... ###... ...... ###...', '...... #.#### ###### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0071'] = [ // q '...... .##### ###### #.#...', '...... ###... ...... ###...', '...... ###### ###### ######', '...... ...... ...... ......', - ] + ]; defs['\u0072'] = [ // r '...... ###### ###### ###...', '...... .##... ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u0073'] = [ // s '...... .##### ##.... #.#...', '...... ###... .#.... ###...', '...... #.#... .##### ##....', '...... ...... ...... ......', - ] + ]; defs['\u0074'] = [ // t '...... ###... ...... ......', '###### ###### ###### #.#...', '...... ###... ...... ##....', '...... ...... ...... ......', - ] + ]; defs['\u0075'] = [ // u '...... ###### ###### #.#...', '...... ...... ...... ###...', '...... ###### ###### #.#...', '...... ...... ...... ......', - ] + ]; defs['\u0076'] = [ // v '...... ###### ###.#. ......', '...... ...... ...### #.....', '...... ###### ####.. ......', '...... ...... ...... ......', - ] + ]; defs['\u0077'] = [ // w '...... ###### ###### #.....', '...... ...... #####. ......', '...... ###### ###### #.....', '...... ...... ...... ......', - ] + ]; defs['\u0078'] = [ // x '...... ####.# ....## ##....', '...... ....## #####. ......', '...... #####. ...#.# #.#...', '...... ...... ...... ......', - ] + ]; defs['\u0079'] = [ // y '...... ###### ###### #.#.##', '...... ...... ...... ###.##', '...... ###### ###### #####.', '...... ...... ...... ......', - ] + ]; defs['\u007a'] = [ // z '...... ###... ....## ###...', '...... ###..# ####.. ###...', '...... #####. ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u007b'] = [ // { '...... .....# ...... ......', '.##### #####. ###### #.#...', '###... ...... ...... ###...', '...... ...... ...... ......', - ] + ]; defs['\u007c'] = [ // | '###### ###### ###### ######', '...... ...... ...... ......', - ] + ]; defs['\u007d'] = [ // } '###... ...... ...... ###...', '#.#### ####.# ###### ##....', '...... ....#. ...... ......', '...... ...... ...... ......', - ] + ]; defs['\u007e'] = [ // ~ '...... ...... ...... ......', '...... .....# ##.... ......', @@ -733,166 +736,249 @@ export default class { '...... ...... ...### ......', '...... ...... .###.. ......', '...... ...... ...... ......', - ] + ]; defs['\u2302'] = [ // CP437 0x7f '.....# .##### ###### ###...', '..#### ...... ...... ###...', '....#. #.#### ###### ###...', '...... ...... ...... ......', - ] + ]; + defs['\u007f'] = defs['\u2302'] // Python codec incorrectly maps \u007f to 0x7f // 0x80-0x8f - defs['\u0080'] = [] - defs['\u0081'] = [] - defs['\u0082'] = [] - defs['\u0083'] = [] - defs['\u0084'] = [] - defs['\u0085'] = [] - defs['\u0086'] = [] - defs['\u0087'] = [] - defs['\u0088'] = [] - defs['\u0089'] = [] - defs['\u008a'] = [] - defs['\u008b'] = [] - defs['\u008c'] = [] - defs['\u008d'] = [] - defs['\u008e'] = [] - defs['\u008f'] = [] - + defs['\u00c7'] = [ // Ç + '.##### ###### ###### #.#..#', + '###... ...... ...... #####.', + '#.#... ...... ...... ##....', + '...... ...... ...... ......', + ]; + defs['\u00fc'] = [ // ü + '###... ###### ###### #.#...', + '...... ...... ...... ###...', + '###... ###### ###### #.#...', + '...... ...... ...... ......', + ]; + defs['\u00e9'] = [ // é + '...... .##### ###### #.#...', + '.##... ###... .#.... ###...', + '#..... #.#### ##.... ##....', + '...... ...... ...... ......', + ]; + defs['\u00e2'] = [ // â + '.##... .##... .##### #.#...', + '###... ###... .#.... ##....', + '#.#... #.#### ###### ###...', + '...... ...... ...... ......', + ]; + defs['\u00e4'] = [ // ä + '###... .##... .##### #.#...', + '...... ###... .#.... ##....', + '###... #.#### ###### ###...', + '...... ...... ...... ......', + ]; + defs['\u00e0'] = [ // à + '.#.... .##... .##### #.#...', + '###... ###... .#.... ##....', + '#.#... #.#### ###### ###...', + '...... ...... ...... ......', + ]; + defs['\u00e5'] = [ // å + '...... .##... .##### #.#...', + '###... ###... .#.... ##....', + '...... #.#### ###### ###...', + '...... ...... ...... ......', + ]; + defs['\u00e7'] = [ // ç + '...... .##### ###### #.#..#', + '...... ###... ...... #####.', + '...... #.#... ...... ##....', + '...... ...... ...... ......', + ]; + defs['\u00ea'] = [ // ê + '.##... .##### ###### #.#...', + '###... ###... .#.... ###...', + '#.#... #.#### ##.... ##....', + '...... ...... ...... ......', + ]; + defs['\u00eb'] = [ // ë + '###... .##### ###### #.#...', + '...... ###... .#.... ###...', + '###... #.#### ##.... ##....', + '...... ...... ...... ......', + ]; + defs['\u00e8'] = [ // è + '.#.... .##### ###### #.#...', + '###... ###... .#.... ###...', + '#.#... #.#### ##.... ##....', + '...... ...... ...... ......', + ]; + defs['\u00ef'] = [ // ï + '###... ...... ...... ......', + '...... ###### ###### ###...', + '###... ...... ...... ......', + '...... ...... ...... ......', + ]; + defs['\u00ee'] = [ // î + '.####. ...... ...... ......', + '###... ###### ###### ###...', + '#.##.# ...... ...... ......', + '...... ...... ...... ......', + ]; + defs['\u00ec'] = [ // ì + '###... ...... ...... ......', + '###... ###### ###### ###...', + '#.#... ...... ...... ......', + '...... ...... ...... ......', + ]; + defs['\u00c4'] = [ // Ä + '###... .##### ###### ###...', + '...... ###... .#.... ......', + '###... #.#### ###### ###...', + '...... ...... ...... ......', + ]; + defs['\u00c5'] = [ // Å + '...... .##### ###### ###...', + '###... ###... .#.... ......', + '...... #.#### ###### ###...', + '...... ...... ...... ......', + ]; +/* // 0x90-0x9f - defs['\u0090'] = [] - defs['\u0091'] = [] - defs['\u0092'] = [] - defs['\u0093'] = [] - defs['\u0094'] = [] - defs['\u0095'] = [] - defs['\u0096'] = [] - defs['\u0097'] = [] - defs['\u0098'] = [] - defs['\u0099'] = [] - defs['\u009a'] = [] - defs['\u009b'] = [] - defs['\u009c'] = [] - defs['\u009d'] = [] - defs['\u009e'] = [] - defs['\u009f'] = [] + defs['\u0090'] = []; + defs['\u0091'] = []; + defs['\u0092'] = []; + defs['\u0093'] = []; + defs['\u0094'] = []; + defs['\u0095'] = []; + defs['\u0096'] = []; + defs['\u0097'] = []; + defs['\u0098'] = []; + defs['\u0099'] = []; + defs['\u009a'] = []; + defs['\u009b'] = []; + defs['\u009c'] = []; + defs['\u009d'] = []; + defs['\u009e'] = []; + defs['\u009f'] = []; // 0xa0-0xaf - defs['\u00a0'] = [] - defs['\u00a1'] = [] - defs['\u00a2'] = [] - defs['\u00a3'] = [] - defs['\u00a4'] = [] - defs['\u00a5'] = [] - defs['\u00a6'] = [] - defs['\u00a7'] = [] - defs['\u00a8'] = [] - defs['\u00a9'] = [] - defs['\u00aa'] = [] - defs['\u00ab'] = [] - defs['\u00ac'] = [] - defs['\u00ad'] = [] - defs['\u00ae'] = [] - defs['\u00af'] = [] + defs['\u00a0'] = []; + defs['\u00a1'] = []; + defs['\u00a2'] = []; + defs['\u00a3'] = []; + defs['\u00a4'] = []; + defs['\u00a5'] = []; + defs['\u00a6'] = []; + defs['\u00a7'] = []; + defs['\u00a8'] = []; + defs['\u00a9'] = []; + defs['\u00aa'] = []; + defs['\u00ab'] = []; + defs['\u00ac'] = []; + defs['\u00ad'] = []; + defs['\u00ae'] = []; + defs['\u00af'] = []; // 0xb0-0xbf - defs['\u00b0'] = [] - defs['\u00b1'] = [] - defs['\u00b2'] = [] - defs['\u00b3'] = [] - defs['\u00b4'] = [] - defs['\u00b5'] = [] - defs['\u00b6'] = [] - defs['\u00b7'] = [] - defs['\u00b8'] = [] - defs['\u00b9'] = [] - defs['\u00ba'] = [] - defs['\u00bb'] = [] - defs['\u00bc'] = [] - defs['\u00bd'] = [] - defs['\u00be'] = [] - defs['\u00bf'] = [] + defs['\u00b0'] = []; + defs['\u00b1'] = []; + defs['\u00b2'] = []; + defs['\u00b3'] = []; + defs['\u00b4'] = []; + defs['\u00b5'] = []; + defs['\u00b6'] = []; + defs['\u00b7'] = []; + defs['\u00b8'] = []; + defs['\u00b9'] = []; + defs['\u00ba'] = []; + defs['\u00bb'] = []; + defs['\u00bc'] = []; + defs['\u00bd'] = []; + defs['\u00be'] = []; + defs['\u00bf'] = []; // 0xc0-0xcf - defs['\u00c0'] = [] - defs['\u00c1'] = [] - defs['\u00c2'] = [] - defs['\u00c3'] = [] - defs['\u00c4'] = [] - defs['\u00c5'] = [] - defs['\u00c6'] = [] - defs['\u00c7'] = [] - defs['\u00c8'] = [] - defs['\u00c9'] = [] - defs['\u00ca'] = [] - defs['\u00cb'] = [] - defs['\u00cc'] = [] - defs['\u00cd'] = [] - defs['\u00ce'] = [] - defs['\u00cf'] = [] + defs['\u00c0'] = []; + defs['\u00c1'] = []; + defs['\u00c2'] = []; + defs['\u00c3'] = []; + defs['\u00c4'] = []; + defs['\u00c5'] = []; + defs['\u00c6'] = []; + defs['\u00c7'] = []; + defs['\u00c8'] = []; + defs['\u00c9'] = []; + defs['\u00ca'] = []; + defs['\u00cb'] = []; + defs['\u00cc'] = []; + defs['\u00cd'] = []; + defs['\u00ce'] = []; + defs['\u00cf'] = []; // 0xd0-0xdf - defs['\u00d0'] = [] - defs['\u00d1'] = [] - defs['\u00d2'] = [] - defs['\u00d3'] = [] - defs['\u00d4'] = [] - defs['\u00d5'] = [] - defs['\u00d6'] = [] - defs['\u00d7'] = [] - defs['\u00d8'] = [] - defs['\u00d9'] = [] - defs['\u00da'] = [] - defs['\u00db'] = [] - defs['\u00dc'] = [] - defs['\u00dd'] = [] - defs['\u00de'] = [] - defs['\u00df'] = [] + defs['\u00d0'] = []; + defs['\u00d1'] = []; + defs['\u00d2'] = []; + defs['\u00d3'] = []; + defs['\u00d4'] = []; + defs['\u00d5'] = []; + defs['\u00d6'] = []; + defs['\u00d7'] = []; + defs['\u00d8'] = []; + defs['\u00d9'] = []; + defs['\u00da'] = []; + defs['\u00db'] = []; + defs['\u00dc'] = []; + defs['\u00dd'] = []; + defs['\u00de'] = []; + defs['\u00df'] = []; // 0xe0-0xef - defs['\u00e0'] = [] - defs['\u00e1'] = [] - defs['\u00e2'] = [] - defs['\u00e3'] = [] - defs['\u00e4'] = [] - defs['\u00e5'] = [] - defs['\u00e6'] = [] - defs['\u00e7'] = [] - defs['\u00e8'] = [] - defs['\u00e9'] = [] - defs['\u00ea'] = [] - defs['\u00eb'] = [] - defs['\u00ec'] = [] - defs['\u00ed'] = [] - defs['\u00ee'] = [] - defs['\u00ef'] = [] + defs['\u00e0'] = []; + defs['\u00e1'] = []; + defs['\u00e2'] = []; + defs['\u00e3'] = []; + defs['\u00e4'] = []; + defs['\u00e5'] = []; + defs['\u00e6'] = []; + defs['\u00e7'] = []; + defs['\u00e8'] = []; + defs['\u00e9'] = []; + defs['\u00ea'] = []; + defs['\u00eb'] = []; + defs['\u00ec'] = []; + defs['\u00ed'] = []; + defs['\u00ee'] = []; + defs['\u00ef'] = []; // 0xf0-0xff - defs['\u00f0'] = [] - defs['\u00f1'] = [] - defs['\u00f2'] = [] - defs['\u00f3'] = [] - defs['\u00f4'] = [] - defs['\u00f5'] = [] - defs['\u00f6'] = [] - defs['\u00f7'] = [] - defs['\u00f8'] = [] - defs['\u00f9'] = [] - defs['\u00fa'] = [] - defs['\u00fb'] = [] - defs['\u00fc'] = [] - defs['\u00fd'] = [] - defs['\u00fe'] = [] - defs['\u00ff'] = [] + defs['\u00f0'] = []; + defs['\u00f1'] = []; + defs['\u00f2'] = []; + defs['\u00f3'] = []; + defs['\u00f4'] = []; + defs['\u00f5'] = []; + defs['\u00f6'] = []; + defs['\u00f7'] = []; + defs['\u00f8'] = []; + defs['\u00f9'] = []; + defs['\u00fa'] = []; + defs['\u00fb'] = []; + defs['\u00fc'] = []; + defs['\u00fd'] = []; + defs['\u00fe'] = []; + defs['\u00ff'] = []; +*/ - - this.font = [] - for (let d of Object.keys(defs)) { - let f = [] + this.font = []; + for (let d of Object.keys(defs).toSorted()) { + let f = []; for (let c of defs[d]) { f.push(c.replace(/[^.#]/g, "")) } - this.font[d] = f + this.font[d] = f; + if (d === "\u00c7") + console.log("font[d]", d.codePointAt(0), this.font[d]); } } } \ No newline at end of file