2012-04-18 02:37:46 +00:00
|
|
|
|
# -*- coding: utf-8 -*-
|
2012-04-18 04:32:56 +00:00
|
|
|
|
from copy import copy
|
2012-04-18 21:17:31 +00:00
|
|
|
|
|
2012-04-26 21:58:20 +00:00
|
|
|
|
# this is straight out of ../preprocessor.py because i'm lazy
|
|
|
|
|
# (also, it's flipped)
|
|
|
|
|
# see jap_chars for overrides if you are in japanese mode?
|
2012-04-18 02:37:46 +00:00
|
|
|
|
chars = {
|
|
|
|
|
0x50: "@",
|
|
|
|
|
0x54: "#",
|
|
|
|
|
0x75: "…",
|
|
|
|
|
|
|
|
|
|
0x79: "┌",
|
|
|
|
|
0x7A: "─",
|
|
|
|
|
0x7B: "┐",
|
|
|
|
|
0x7C: "│",
|
|
|
|
|
0x7D: "└",
|
|
|
|
|
0x7E: "┘",
|
|
|
|
|
|
|
|
|
|
0x74: "№",
|
|
|
|
|
|
|
|
|
|
0x7F: " ",
|
|
|
|
|
0x80: "A",
|
|
|
|
|
0x81: "B",
|
|
|
|
|
0x82: "C",
|
|
|
|
|
0x83: "D",
|
|
|
|
|
0x84: "E",
|
|
|
|
|
0x85: "F",
|
|
|
|
|
0x86: "G",
|
|
|
|
|
0x87: "H",
|
|
|
|
|
0x88: "I",
|
|
|
|
|
0x89: "J",
|
|
|
|
|
0x8A: "K",
|
|
|
|
|
0x8B: "L",
|
|
|
|
|
0x8C: "M",
|
|
|
|
|
0x8D: "N",
|
|
|
|
|
0x8E: "O",
|
|
|
|
|
0x8F: "P",
|
|
|
|
|
0x90: "Q",
|
|
|
|
|
0x91: "R",
|
|
|
|
|
0x92: "S",
|
|
|
|
|
0x93: "T",
|
|
|
|
|
0x94: "U",
|
|
|
|
|
0x95: "V",
|
|
|
|
|
0x96: "W",
|
|
|
|
|
0x97: "X",
|
|
|
|
|
0x98: "Y",
|
|
|
|
|
0x99: "Z",
|
|
|
|
|
0x9A: "(",
|
|
|
|
|
0x9B: ")",
|
|
|
|
|
0x9C: ":",
|
|
|
|
|
0x9D: ";",
|
|
|
|
|
0x9E: "[",
|
|
|
|
|
0x9F: "]",
|
|
|
|
|
0xA0: "a",
|
|
|
|
|
0xA1: "b",
|
|
|
|
|
0xA2: "c",
|
|
|
|
|
0xA3: "d",
|
|
|
|
|
0xA4: "e",
|
|
|
|
|
0xA5: "f",
|
|
|
|
|
0xA6: "g",
|
|
|
|
|
0xA7: "h",
|
|
|
|
|
0xA8: "i",
|
|
|
|
|
0xA9: "j",
|
|
|
|
|
0xAA: "k",
|
|
|
|
|
0xAB: "l",
|
|
|
|
|
0xAC: "m",
|
|
|
|
|
0xAD: "n",
|
|
|
|
|
0xAE: "o",
|
|
|
|
|
0xAF: "p",
|
|
|
|
|
0xB0: "q",
|
|
|
|
|
0xB1: "r",
|
|
|
|
|
0xB2: "s",
|
|
|
|
|
0xB3: "t",
|
|
|
|
|
0xB4: "u",
|
|
|
|
|
0xB5: "v",
|
|
|
|
|
0xB6: "w",
|
|
|
|
|
0xB7: "x",
|
|
|
|
|
0xB8: "y",
|
|
|
|
|
0xB9: "z",
|
|
|
|
|
0xC0: "Ä",
|
|
|
|
|
0xC1: "Ö",
|
|
|
|
|
0xC2: "Ü",
|
|
|
|
|
0xC3: "ä",
|
|
|
|
|
0xC4: "ö",
|
|
|
|
|
0xC5: "ü",
|
|
|
|
|
0xD0: "'d",
|
|
|
|
|
0xD1: "'l",
|
|
|
|
|
0xD2: "'m",
|
|
|
|
|
0xD3: "'r",
|
|
|
|
|
0xD4: "'s",
|
|
|
|
|
0xD5: "'t",
|
|
|
|
|
0xD6: "'v",
|
|
|
|
|
0xE0: "'",
|
|
|
|
|
0xE3: "-",
|
|
|
|
|
0xE6: "?",
|
|
|
|
|
0xE7: "!",
|
|
|
|
|
0xE8: ".",
|
|
|
|
|
0xE9: "&",
|
|
|
|
|
0xEA: "é",
|
|
|
|
|
0xEB: "→",
|
2013-07-01 06:48:08 +00:00
|
|
|
|
0xEC: "▷",
|
2013-03-30 01:50:24 +00:00
|
|
|
|
0xED: "▶",
|
2013-05-02 03:18:38 +00:00
|
|
|
|
0xEE: "▼",
|
2012-04-18 02:37:46 +00:00
|
|
|
|
0xEF: "♂",
|
|
|
|
|
0xF0: "¥",
|
|
|
|
|
0xF1: "×",
|
|
|
|
|
0xF3: "/",
|
|
|
|
|
0xF4: ",",
|
|
|
|
|
0xF5: "♀",
|
|
|
|
|
0xF6: "0",
|
|
|
|
|
0xF7: "1",
|
|
|
|
|
0xF8: "2",
|
|
|
|
|
0xF9: "3",
|
|
|
|
|
0xFA: "4",
|
|
|
|
|
0xFB: "5",
|
|
|
|
|
0xFC: "6",
|
|
|
|
|
0xFD: "7",
|
|
|
|
|
0xFE: "8",
|
|
|
|
|
0xFF: "9",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#override whatever defaults for japanese symbols
|
|
|
|
|
jap_chars = copy(chars)
|
|
|
|
|
jap_chars.update({
|
|
|
|
|
0x05: "ガ",
|
|
|
|
|
0x06: "ギ",
|
|
|
|
|
0x07: "グ",
|
|
|
|
|
0x08: "ゲ",
|
|
|
|
|
0x09: "ゴ",
|
|
|
|
|
0x0A: "ザ",
|
|
|
|
|
0x0B: "ジ",
|
|
|
|
|
0x0C: "ズ",
|
|
|
|
|
0x0D: "ゼ",
|
|
|
|
|
0x0E: "ゾ",
|
|
|
|
|
0x0F: "ダ",
|
|
|
|
|
0x10: "ヂ",
|
|
|
|
|
0x11: "ヅ",
|
|
|
|
|
0x12: "デ",
|
|
|
|
|
0x13: "ド",
|
|
|
|
|
0x19: "バ",
|
|
|
|
|
0x1A: "ビ",
|
|
|
|
|
0x1B: "ブ",
|
|
|
|
|
0x1C: "ボ",
|
|
|
|
|
0x26: "が",
|
|
|
|
|
0x27: "ぎ",
|
|
|
|
|
0x28: "ぐ",
|
|
|
|
|
0x29: "げ",
|
|
|
|
|
0x2A: "ご",
|
|
|
|
|
0x2B: "ざ",
|
|
|
|
|
0x2C: "じ",
|
|
|
|
|
0x2D: "ず",
|
|
|
|
|
0x2E: "ぜ",
|
|
|
|
|
0x2F: "ぞ",
|
|
|
|
|
0x30: "だ",
|
|
|
|
|
0x31: "ぢ",
|
|
|
|
|
0x32: "づ",
|
|
|
|
|
0x33: "で",
|
|
|
|
|
0x34: "ど",
|
|
|
|
|
0x3A: "ば",
|
|
|
|
|
0x3B: "び",
|
|
|
|
|
0x3C: "ぶ",
|
|
|
|
|
0x3D: "べ",
|
|
|
|
|
0x3E: "ぼ",
|
|
|
|
|
0x40: "パ",
|
|
|
|
|
0x41: "ピ",
|
|
|
|
|
0x42: "プ",
|
|
|
|
|
0x43: "ポ",
|
|
|
|
|
0x44: "ぱ",
|
|
|
|
|
0x45: "ぴ",
|
|
|
|
|
0x46: "ぷ",
|
|
|
|
|
0x47: "ぺ",
|
|
|
|
|
0x48: "ぽ",
|
|
|
|
|
0x80: "ア",
|
|
|
|
|
0x81: "イ",
|
|
|
|
|
0x82: "ウ",
|
|
|
|
|
0x83: "エ",
|
|
|
|
|
0x84: "ォ",
|
|
|
|
|
0x85: "カ",
|
|
|
|
|
0x86: "キ",
|
|
|
|
|
0x87: "ク",
|
|
|
|
|
0x88: "ケ",
|
|
|
|
|
0x89: "コ",
|
|
|
|
|
0x8A: "サ",
|
|
|
|
|
0x8B: "シ",
|
|
|
|
|
0x8C: "ス",
|
|
|
|
|
0x8D: "セ",
|
|
|
|
|
0x8E: "ソ",
|
|
|
|
|
0x8F: "タ",
|
|
|
|
|
0x90: "チ",
|
|
|
|
|
0x91: "ツ",
|
|
|
|
|
0x92: "テ",
|
|
|
|
|
0x93: "ト",
|
|
|
|
|
0x94: "ナ",
|
|
|
|
|
0x95: "ニ",
|
|
|
|
|
0x96: "ヌ",
|
|
|
|
|
0x97: "ネ",
|
|
|
|
|
0x98: "ノ",
|
|
|
|
|
0x99: "ハ",
|
|
|
|
|
0x9A: "ヒ",
|
|
|
|
|
0x9B: "フ",
|
|
|
|
|
0x9C: "ホ",
|
|
|
|
|
0x9D: "マ",
|
|
|
|
|
0x9E: "ミ",
|
|
|
|
|
0x9F: "ム",
|
|
|
|
|
0xA0: "メ",
|
|
|
|
|
0xA1: "モ",
|
|
|
|
|
0xA2: "ヤ",
|
|
|
|
|
0xA3: "ユ",
|
|
|
|
|
0xA4: "ヨ",
|
|
|
|
|
0xA5: "ラ",
|
|
|
|
|
0xA6: "ル",
|
|
|
|
|
0xA7: "レ",
|
|
|
|
|
0xA8: "ロ",
|
|
|
|
|
0xA9: "ワ",
|
|
|
|
|
0xAA: "ヲ",
|
|
|
|
|
0xAB: "ン",
|
|
|
|
|
0xAC: "ッ",
|
|
|
|
|
0xAD: "ャ",
|
|
|
|
|
0xAE: "ュ",
|
|
|
|
|
0xAF: "ョ",
|
|
|
|
|
0xB0: "ィ",
|
|
|
|
|
0xB1: "あ",
|
|
|
|
|
0xB2: "い",
|
|
|
|
|
0xB3: "う",
|
|
|
|
|
0xB4: "え",
|
|
|
|
|
0xB5: "お",
|
|
|
|
|
0xB6: "か",
|
|
|
|
|
0xB7: "き",
|
|
|
|
|
0xB8: "く",
|
|
|
|
|
0xB9: "け",
|
|
|
|
|
0xBA: "こ",
|
|
|
|
|
0xBB: "さ",
|
|
|
|
|
0xBC: "し",
|
|
|
|
|
0xBD: "す",
|
|
|
|
|
0xBE: "せ",
|
|
|
|
|
0xBF: "そ",
|
|
|
|
|
0xC0: "た",
|
|
|
|
|
0xC1: "ち",
|
|
|
|
|
0xC2: "つ",
|
|
|
|
|
0xC3: "て",
|
|
|
|
|
0xC4: "と",
|
|
|
|
|
0xC5: "な",
|
|
|
|
|
0xC6: "に",
|
|
|
|
|
0xC7: "ぬ",
|
|
|
|
|
0xC8: "ね",
|
|
|
|
|
0xC9: "の",
|
|
|
|
|
0xCA: "は",
|
|
|
|
|
0xCB: "ひ",
|
|
|
|
|
0xCC: "ふ",
|
|
|
|
|
0xCD: "へ",
|
|
|
|
|
0xCE: "ほ",
|
|
|
|
|
0xCF: "ま",
|
|
|
|
|
0xD0: "み",
|
|
|
|
|
0xD1: "む",
|
|
|
|
|
0xD2: "め",
|
|
|
|
|
0xD3: "も",
|
|
|
|
|
0xD4: "や",
|
|
|
|
|
0xD5: "ゆ",
|
|
|
|
|
0xD6: "よ",
|
|
|
|
|
0xD7: "ら",
|
|
|
|
|
0xD8: "り",
|
|
|
|
|
0xD9: "る",
|
|
|
|
|
0xDA: "れ",
|
|
|
|
|
0xDB: "ろ",
|
|
|
|
|
0xDC: "わ",
|
|
|
|
|
0xDD: "を",
|
|
|
|
|
0xDE: "ん",
|
|
|
|
|
0xDF: "っ",
|
|
|
|
|
0xE0: "ゃ",
|
|
|
|
|
0xE1: "ゅ",
|
|
|
|
|
0xE2: "ょ",
|
|
|
|
|
0xE3: "ー",
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
#some of the japanese characters can probably fit into the english table
|
|
|
|
|
#without overriding any of the other mappings.
|
|
|
|
|
for key, value in jap_chars.items():
|
|
|
|
|
if key not in chars.keys():
|
|
|
|
|
chars[key] = value
|
|
|
|
|
|