()
| 73 | |
| 74 | |
| 75 | def main(): |
| 76 | jisx0208file = open_mapping_file('python-mappings/JIS0208.TXT', MAPPINGS_JIS0208) |
| 77 | jisx0212file = open_mapping_file('python-mappings/JIS0212.TXT', MAPPINGS_JIS0212) |
| 78 | cp932file = open_mapping_file('python-mappings/CP932.TXT', MAPPINGS_CP932) |
| 79 | jisx0213file = open_mapping_file('python-mappings/jisx0213-2004-std.txt', MAPPINGS_JISX0213_2004) |
| 80 | |
| 81 | print("Loading Mapping File...") |
| 82 | |
| 83 | sjisdecmap = loadmap(jisx0208file, natcol=0, unicol=2) |
| 84 | jisx0208decmap = loadmap(jisx0208file, natcol=1, unicol=2) |
| 85 | jisx0212decmap = loadmap(jisx0212file) |
| 86 | cp932decmap = loadmap(cp932file) |
| 87 | jis3decmap, jis4decmap, jis3_2_decmap, jis4_2_decmap, jis3_pairdecmap = loadmap_jisx0213(jisx0213file) |
| 88 | |
| 89 | if jis3decmap[0x21][0x24] != 0xff0c: |
| 90 | raise SystemExit('Please adjust your JIS X 0213 map using jisx0213-2000-std.txt.diff') |
| 91 | |
| 92 | sjisencmap, cp932encmap = {}, {} |
| 93 | jisx0208_0212encmap = {} |
| 94 | for c1, m in sjisdecmap.items(): |
| 95 | for c2, code in m.items(): |
| 96 | sjisencmap.setdefault(code >> 8, {}) |
| 97 | sjisencmap[code >> 8][code & 0xff] = c1 << 8 | c2 |
| 98 | for c1, m in cp932decmap.items(): |
| 99 | for c2, code in m.items(): |
| 100 | cp932encmap.setdefault(code >> 8, {}) |
| 101 | if (code & 0xff) not in cp932encmap[code >> 8]: |
| 102 | cp932encmap[code >> 8][code & 0xff] = c1 << 8 | c2 |
| 103 | for c1, m in cp932encmap.copy().items(): |
| 104 | for c2, code in m.copy().items(): |
| 105 | if c1 in sjisencmap and c2 in sjisencmap[c1] and sjisencmap[c1][c2] == code: |
| 106 | del cp932encmap[c1][c2] |
| 107 | if not cp932encmap[c1]: |
| 108 | del cp932encmap[c1] |
| 109 | |
| 110 | jisx0213pairdecmap = {} |
| 111 | jisx0213pairencmap = [] |
| 112 | for unibody, m1 in jis3_pairdecmap.items(): |
| 113 | for c1, m2 in m1.items(): |
| 114 | for c2, modifier in m2.items(): |
| 115 | jisx0213pairencmap.append((unibody, modifier, c1 << 8 | c2)) |
| 116 | jisx0213pairdecmap.setdefault(c1, {}) |
| 117 | jisx0213pairdecmap[c1][c2] = unibody << 16 | modifier |
| 118 | |
| 119 | # Twinmap for both of JIS X 0208 (MSB unset) and JIS X 0212 (MSB set) |
| 120 | for c1, m in jisx0208decmap.items(): |
| 121 | for c2, code in m.items(): |
| 122 | jisx0208_0212encmap.setdefault(code >> 8, {}) |
| 123 | jisx0208_0212encmap[code >> 8][code & 0xff] = c1 << 8 | c2 |
| 124 | |
| 125 | for c1, m in jisx0212decmap.items(): |
| 126 | for c2, code in m.items(): |
| 127 | jisx0208_0212encmap.setdefault(code >> 8, {}) |
| 128 | if (code & 0xff) in jisx0208_0212encmap[code >> 8]: |
| 129 | print("OOPS!!!", (code)) |
| 130 | jisx0208_0212encmap[code >> 8][code & 0xff] = 0x8000 | c1 << 8 | c2 |
| 131 | |
| 132 | jisx0213bmpencmap = {} |
no test coverage detected
searching dependent graphs…