diff options
| author | Kenichi Handa | 2004-01-25 23:35:58 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2004-01-25 23:35:58 +0000 |
| commit | ba29a8305c122c159853c30bba4d275058b155b7 (patch) | |
| tree | f924f4267120305990a42e2c8effc9bf76bce1a8 /admin | |
| parent | 9ac04a613ee1054de47e04c393b8c84a1cb66863 (diff) | |
| download | emacs-ba29a8305c122c159853c30bba4d275058b155b7.tar.gz emacs-ba29a8305c122c159853c30bba4d275058b155b7.zip | |
New file.
Diffstat (limited to 'admin')
| -rw-r--r-- | admin/charsets/cp932.awk | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/admin/charsets/cp932.awk b/admin/charsets/cp932.awk new file mode 100644 index 00000000000..077e35113e2 --- /dev/null +++ b/admin/charsets/cp932.awk | |||
| @@ -0,0 +1,97 @@ | |||
| 1 | # cp932.awk -- Add sort key at the tail of each line of CP932-2BYTE.map. | ||
| 2 | # Copyright (C) 2004 | ||
| 3 | # National Institute of Advanced Industrial Science and Technology (AIST) | ||
| 4 | # Registration Number H13PRO009 | ||
| 5 | # | ||
| 6 | # This file is part of GNU Emacs. | ||
| 7 | # | ||
| 8 | # GNU Emacs is free software; you can redistribute it and/or modify | ||
| 9 | # it under the terms of the GNU General Public License as published by | ||
| 10 | # the Free Software Foundation; either version 2, or (at your option) | ||
| 11 | # any later version. | ||
| 12 | # | ||
| 13 | # GNU Emacs is distributed in the hope that it will be useful, | ||
| 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | # GNU General Public License for more details. | ||
| 17 | # | ||
| 18 | # You should have received a copy of the GNU General Public License | ||
| 19 | # along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 20 | # Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
| 21 | # Boston, MA 02111-1307, USA. | ||
| 22 | |||
| 23 | # Comment: | ||
| 24 | # Add a sort key 0, 1, 2, or 3 at the tail of each line as a comment | ||
| 25 | # to realize the round trip mapping to Unicode works as described in | ||
| 26 | # this page: | ||
| 27 | # http://support.microsoft.com/default.aspx?scid=kb;EN-US;170559 | ||
| 28 | # Each sort key means as below: | ||
| 29 | # 0: JISX0208 characters. | ||
| 30 | # 1: NEC special characters. | ||
| 31 | # 2: IBM extension characters. | ||
| 32 | # 3: NEC selection of IBM extension characters. | ||
| 33 | |||
| 34 | BEGIN { | ||
| 35 | tohex["A"] = 10; | ||
| 36 | tohex["B"] = 11; | ||
| 37 | tohex["C"] = 12; | ||
| 38 | tohex["D"] = 13; | ||
| 39 | tohex["E"] = 14; | ||
| 40 | tohex["F"] = 15; | ||
| 41 | } | ||
| 42 | |||
| 43 | function decode_hex(str) { | ||
| 44 | n = 0; | ||
| 45 | len = length(str); | ||
| 46 | for (i = 1; i <= len; i++) | ||
| 47 | { | ||
| 48 | c = substr(str, i, 1); | ||
| 49 | if (c >= "0" && c <= "9") | ||
| 50 | n = n * 16 + (c - "0"); | ||
| 51 | else | ||
| 52 | n = n * 16 + tohex[c]; | ||
| 53 | } | ||
| 54 | return n; | ||
| 55 | } | ||
| 56 | |||
| 57 | function sjis_to_jis_ku(code) | ||
| 58 | { | ||
| 59 | s1 = int(code / 256); | ||
| 60 | s2 = code % 256; | ||
| 61 | if (s2 >= 159) # s2 >= 0x9F | ||
| 62 | { | ||
| 63 | if (s1 >= 224) # s1 >= 0xE0 | ||
| 64 | j1 = s1 * 2 - 352; # j1 = s1 * 2 - 0x160 | ||
| 65 | else | ||
| 66 | j1 = s1 * 2 - 224; # j1 = s1 * 2 - 0xE0 | ||
| 67 | } | ||
| 68 | else | ||
| 69 | { | ||
| 70 | if (s1 >= 224) | ||
| 71 | j1 = s1 * 2 - 353; # j1 = s1 * 2 - 0x161 | ||
| 72 | else | ||
| 73 | j1 = s1 * 2 - 225; # j1 = s1 * 2 - 0xE1 | ||
| 74 | } | ||
| 75 | return j1 - 32; | ||
| 76 | } | ||
| 77 | |||
| 78 | /^0x[89E]/ { | ||
| 79 | sjis=decode_hex(substr($1, 3, 4)) | ||
| 80 | ku=sjis_to_jis_ku(sjis); | ||
| 81 | if (ku == 13) | ||
| 82 | print $0" # 1"; | ||
| 83 | else if (ku >= 89 && ku <= 92) | ||
| 84 | print $0" # 3"; | ||
| 85 | else | ||
| 86 | print $0" # 0"; | ||
| 87 | next; | ||
| 88 | } | ||
| 89 | |||
| 90 | /^0xF/ { | ||
| 91 | print $0" # 2"; | ||
| 92 | next; | ||
| 93 | } | ||
| 94 | |||
| 95 | { | ||
| 96 | print; | ||
| 97 | } | ||