]>
code.delx.au - gnu-emacs/blob - admin/charsets/big5.awk
16 function decode_hex
(str
) {
19 for (i =
1; i
<= len
; i
++)
21 c =
substr (str
, i
, 1);
22 if (c
>=
"0" && c
<=
"9")
23 n = n
* 16 + (c
- "0");
25 n = n
* 16 + tohex
[c
];
30 function decode_big5
(big5
) {
33 # (0xFF - 0xA1 + 0x7F - 0x40) = 157
34 # (0xA1 - (0x7F - 0x40)) = 98
35 # (0xC9 - 0xA1) * (0xFF - 0xA1 + 0x7F - 0x40) = 6280
37 idx =
(b0
- 161) * 157 + (b1
- 64);
39 idx =
(b0
- 161) * 157 + (b1
- 98);
42 b0 = int
(idx
/ 94) + 33;
44 return (b0
* 256 + b1
)
48 big5 = decode_hex
($
1);
49 code = decode_big5
(big5
);
50 printf "0x%04X %s\n", code
, $
2;
54 # arch-tag: 36f08d21-0d24-4b67-852d-a9a51299586d