Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
5235c4f3
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5235c4f3
编写于
8月 04, 2009
作者:
S
sherman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
4116222: Errors in Arabic code-conversion tables, part II
Summary: updated the IBM420 datatable Reviewed-by: alanb
上级
f77f49d6
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
543 addition
and
351 deletion
+543
-351
jdk/make/tools/CharsetMapping/IBM420.c2b
jdk/make/tools/CharsetMapping/IBM420.c2b
+187
-1
jdk/make/tools/CharsetMapping/IBM420.map
jdk/make/tools/CharsetMapping/IBM420.map
+253
-257
jdk/make/tools/CharsetMapping/IBM420.nr
jdk/make/tools/CharsetMapping/IBM420.nr
+1
-1
jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java
...ke/tools/src/build/tools/charsetmapping/GenerateSBCS.java
+102
-92
未找到文件。
jdk/make/tools/CharsetMapping/IBM420.c2b
浏览文件 @
5235c4f3
#
# The diff of 01A434B0.TXMAP110 and 34B001A4.RXMAP110
#
# Added: 0x15 U+0085
#
0x15 U+0085
0x15 U+0085
0x42 U+FE7C
0x46 U+FE80
0x47 U+FE81
0x49 U+FE83
0x4B U+066C
0x4B U+FF0E
0x4C U+FF1C
0x4D U+FF08
0x4E U+FF0B
0x4F U+FF5C
0x50 U+FF06
0x52 U+FE85
0x52 U+FE86
0x55 U+FE89
0x55 U+FE8A
0x55 U+FE8B
0x55 U+FE8C
0x56 U+0625
0x56 U+FE87
0x56 U+FE8D
0x57 U+FE88
0x58 U+FE8F
0x58 U+FE90
0x59 U+FE92
0x5A U+FF01
0x5B U+FF04
0x5C U+066D
0x5C U+FF0A
0x5D U+FF09
0x5E U+FF1B
0x60 U+FF0D
0x61 U+FF0F
0x62 U+FE93
0x62 U+FE94
0x63 U+FE95
0x63 U+FE96
0x64 U+FE98
0x65 U+FE99
0x65 U+FE9A
0x66 U+FE9C
0x67 U+FE9D
0x67 U+FE9E
0x68 U+FEA0
0x69 U+FEA1
0x69 U+FEA2
0x6B U+066B
0x6B U+FF0C
0x6C U+066A
0x6C U+FF05
0x6D U+FF3F
0x6E U+FF1E
0x6F U+FF1F
0x70 U+FEA4
0x71 U+FEA5
0x71 U+FEA6
0x72 U+FEA8
0x73 U+FEA9
0x73 U+FEAA
0x74 U+FEAB
0x74 U+FEAC
0x75 U+FEAD
0x75 U+FEAE
0x76 U+FEAF
0x76 U+FEB0
0x77 U+FEB1
0x77 U+FEB2
0x78 U+FEB4
0x7A U+FF1A
0x7B U+FF03
0x7C U+FF20
0x7D U+FF07
0x7E U+FF1D
0x7F U+FF02
0x80 U+FEB5
0x80 U+FEB6
0x81 U+FF41
0x82 U+FF42
0x83 U+FF43
0x84 U+FF44
0x85 U+FF45
0x86 U+FF46
0x87 U+FF47
0x88 U+FF48
0x89 U+FF49
0x8A U+FEB8
0x8B U+FEB9
0x8B U+FEBA
0x8C U+FEBC
0x8D U+FEBD
0x8D U+FEBE
0x8E U+FEC0
0x8F U+FEC1
0x8F U+FEC2
0x8F U+FEC3
0x8F U+FEC4
0x90 U+FEC5
0x90 U+FEC6
0x90 U+FEC7
0x90 U+FEC8
0x91 U+FF4A
0x92 U+FF4B
0x93 U+FF4C
0x94 U+FF4D
0x95 U+FF4E
0x96 U+FF4F
0x97 U+FF50
0x98 U+FF51
0x99 U+FF52
0x9A U+FEC9
0x9E U+FECD
0xA2 U+FF53
0xA3 U+FF54
0xA4 U+FF55
0xA5 U+FF56
0xA6 U+FF57
0xA7 U+FF58
0xA8 U+FF59
0xA9 U+FF5A
0xAB U+FED1
0xAB U+FED2
0xAC U+FED4
0xAD U+FED5
0xAD U+FED6
0xAE U+FED8
0xAF U+FED9
0xAF U+FEDA
0xB0 U+FEDC
0xB1 U+FEDD
0xB1 U+FEDE
0xB8 U+FEF9
0xB9 U+FEFA
0xBA U+FEE0
0xBB U+FEE1
0xBB U+FEE2
0xBC U+FEE4
0xBD U+FEE5
0xBD U+FEE6
0xBE U+FEE8
0xBF U+FEE9
0xBF U+FEEA
0xC1 U+FF21
0xC2 U+FF22
0xC3 U+FF23
0xC4 U+FF24
0xC5 U+FF25
0xC6 U+FF26
0xC7 U+FF27
0xC8 U+FF28
0xC9 U+FF29
0xCF U+FEED
0xCF U+FEEE
0xD1 U+FF2A
0xD2 U+FF2B
0xD3 U+FF2C
0xD4 U+FF2D
0xD5 U+FF2E
0xD6 U+FF2F
0xD7 U+FF30
0xD8 U+FF31
0xD9 U+FF32
0xDA U+FEEF
0xDC U+FEF1
0xDE U+FEF4
0xE2 U+FF33
0xE3 U+FF34
0xE4 U+FF35
0xE5 U+FF36
0xE6 U+FF37
0xE7 U+FF38
0xE8 U+FF39
0xE9 U+FF3A
0xF0 U+FF10
0xF1 U+FF11
0xF2 U+FF12
0xF3 U+FF13
0xF4 U+FF14
0xF5 U+FF15
0xF6 U+FF16
0xF7 U+FF17
0xF8 U+FF18
0xF9 U+FF19
jdk/make/tools/CharsetMapping/IBM420.map
浏览文件 @
5235c4f3
#Generated from IBM420.java
#
# Frm IBMCDC datatable 01A434B0.TXMAP110
#
# Changed
# 0x15 U+0085 -> 0x15 U+000a
#
0x00 U+0000
0x00 U+0000
0x01 U+0001
0x01 U+0001
0x02 U+0002
0x02 U+0002
0x03 U+0003
0x03 U+0003
0x04
U+009c
0x04
U+009C
0x05 U+0009
0x05 U+0009
0x06 U+0086
0x06 U+0086
0x07
U+007f
0x07
U+007F
0x08 U+0097
0x08 U+0097
0x09
U+008d
0x09
U+008D
0x0
a U+008e
0x0
A U+008E
0x0
b U+000b
0x0
B U+000B
0x0
c U+000c
0x0
C U+000C
0x0
d U+000d
0x0
D U+000D
0x0
e U+000e
0x0
E U+000E
0x0
f U+000f
0x0
F U+000F
0x10 U+0010
0x10 U+0010
0x11 U+0011
0x11 U+0011
0x12 U+0012
0x12 U+0012
0x13 U+0013
0x13 U+0013
0x14
U+009d
0x14
U+009D
0x15
U+000a
0x15
U+000A
0x16 U+0008
0x16 U+0008
0x17 U+0087
0x17 U+0087
0x18 U+0018
0x18 U+0018
0x19 U+0019
0x19 U+0019
0x1
a
U+0092
0x1
A
U+0092
0x1
b U+008f
0x1
B U+008F
0x1
c U+001c
0x1
C U+001C
0x1
d U+001d
0x1
D U+001D
0x1
e U+001e
0x1
E U+001E
0x1
f U+001f
0x1
F U+001F
0x20 U+0080
0x20 U+0080
0x21 U+0081
0x21 U+0081
0x22 U+0082
0x22 U+0082
0x23 U+0083
0x23 U+0083
0x24 U+0084
0x24 U+0084
0x25
U+000a
0x25
U+000A
0x26 U+0017
0x26 U+0017
0x27
U+001b
0x27
U+001B
0x28 U+0088
0x28 U+0088
0x29 U+0089
0x29 U+0089
0x2
a U+008a
0x2
A U+008A
0x2
b U+008b
0x2
B U+008B
0x2
c U+008c
0x2
C U+008C
0x2
d
U+0005
0x2
D
U+0005
0x2
e
U+0006
0x2
E
U+0006
0x2
f
U+0007
0x2
F
U+0007
0x30 U+0090
0x30 U+0090
0x31 U+0091
0x31 U+0091
0x32 U+0016
0x32 U+0016
...
@@ -57,77 +62,75 @@
...
@@ -57,77 +62,75 @@
0x37 U+0004
0x37 U+0004
0x38 U+0098
0x38 U+0098
0x39 U+0099
0x39 U+0099
0x3
a U+009a
0x3
A U+009A
0x3
b U+009b
0x3
B U+009B
0x3
c
U+0014
0x3
C
U+0014
0x3
d
U+0015
0x3
D
U+0015
0x3
e U+009e
0x3
E U+009E
0x3
f U+001a
0x3
F U+001A
0x40 U+0020
0x40 U+0020
0x41
U+00a
0
0x41
U+00A
0
0x42
U+fe7c
0x42
U+0651
0x43
U+fe7d
0x43
U+FE7D
0x44 U+0640
0x44 U+0640
0x45
U+f8fc
0x45
U+200B
0x46
U+fe80
0x46
U+0621
0x47
U+fe81
0x47
U+0622
0x48
U+fe
82
0x48
U+FE
82
0x49
U+fe8
3
0x49
U+062
3
0x4
a U+00a
2
0x4
A U+00A
2
0x4
b U+002e
0x4
B U+002E
0x4
c U+003c
0x4
C U+003C
0x4
d
U+0028
0x4
D
U+0028
0x4
e U+002b
0x4
E U+002B
0x4
f U+007c
0x4
F U+007C
0x50 U+0026
0x50 U+0026
0x51 U+fe84
0x51 U+FE84
0x52 U+fe85
0x52 U+0624
0x53 U+fffd
0x55 U+0626
0x54 U+fffd
0x56 U+0627
0x55 U+fe8b
0x57 U+FE8E
0x56 U+fe8d
0x58 U+0628
0x57 U+fe8e
0x59 U+FE91
0x58 U+fe8f
0x5A U+0021
0x59 U+fe91
0x5B U+0024
0x5a U+0021
0x5C U+002A
0x5b U+0024
0x5D U+0029
0x5c U+002a
0x5E U+003B
0x5d U+0029
0x5F U+00AC
0x5e U+003b
0x60 U+002D
0x5f U+00ac
0x61 U+002F
0x60 U+002d
0x62 U+0629
0x61 U+002f
0x63 U+062A
0x62 U+fe93
0x64 U+FE97
0x63 U+fe95
0x65 U+062B
0x64 U+fe97
0x66 U+FE9B
0x65 U+fe99
0x67 U+062C
0x66 U+fe9b
0x68 U+FE9F
0x67 U+fe9d
0x69 U+062D
0x68 U+fe9f
0x6A U+00A6
0x69 U+fea1
0x6B U+002C
0x6a U+00a6
0x6C U+0025
0x6b U+002c
0x6D U+005F
0x6c U+0025
0x6E U+003E
0x6d U+005f
0x6F U+003F
0x6e U+003e
0x70 U+FEA3
0x6f U+003f
0x71 U+062E
0x70 U+fea3
0x72 U+FEA7
0x71 U+fea5
0x73 U+062F
0x72 U+fea7
0x74 U+0630
0x73 U+fea9
0x75 U+0631
0x74 U+feab
0x76 U+0632
0x75 U+fead
0x77 U+0633
0x76 U+feaf
0x78 U+FEB3
0x77 U+f8f6
0x79 U+060C
0x78 U+feb3
0x7A U+003A
0x79 U+060c
0x7B U+0023
0x7a U+003a
0x7C U+0040
0x7b U+0023
0x7D U+0027
0x7c U+0040
0x7E U+003D
0x7d U+0027
0x7F U+0022
0x7e U+003d
0x80 U+0634
0x7f U+0022
0x80 U+f8f5
0x81 U+0061
0x81 U+0061
0x82 U+0062
0x82 U+0062
0x83 U+0063
0x83 U+0063
...
@@ -137,121 +140,114 @@
...
@@ -137,121 +140,114 @@
0x87 U+0067
0x87 U+0067
0x88 U+0068
0x88 U+0068
0x89 U+0069
0x89 U+0069
0x8
a U+feb
7
0x8
A U+FEB
7
0x8
b U+f8f4
0x8
B U+0635
0x8
c U+febb
0x8
C U+FEBB
0x8
d U+f8f7
0x8
D U+0636
0x8
e U+febf
0x8
E U+FEBF
0x8
f U+fec3
0x8
F U+0637
0x90
U+fec7
0x90
U+0638
0x91
U+006a
0x91
U+006A
0x92
U+006b
0x92
U+006B
0x93
U+006c
0x93
U+006C
0x94
U+006d
0x94
U+006D
0x95
U+006e
0x95
U+006E
0x96
U+006f
0x96
U+006F
0x97 U+0070
0x97 U+0070
0x98 U+0071
0x98 U+0071
0x99 U+0072
0x99 U+0072
0x9a U+fec9
0x9A U+0639
0x9b U+feca
0x9B U+FECA
0x9c U+fecb
0x9C U+FECB
0x9d U+fecc
0x9D U+FECC
0x9e U+fecd
0x9E U+063A
0x9f U+fece
0x9F U+FECE
0xa0 U+fecf
0xA0 U+FECF
0xa1 U+00f7
0xA1 U+00F7
0xa2 U+0073
0xA2 U+0073
0xa3 U+0074
0xA3 U+0074
0xa4 U+0075
0xA4 U+0075
0xa5 U+0076
0xA5 U+0076
0xa6 U+0077
0xA6 U+0077
0xa7 U+0078
0xA7 U+0078
0xa8 U+0079
0xA8 U+0079
0xa9 U+007a
0xA9 U+007A
0xaa U+fed0
0xAA U+FED0
0xab U+fed1
0xAB U+0641
0xac U+fed3
0xAC U+FED3
0xad U+fed5
0xAD U+0642
0xae U+fed7
0xAE U+FED7
0xaf U+fed9
0xAF U+0643
0xb0 U+fedb
0xB0 U+FEDB
0xb1 U+fedd
0xB1 U+0644
0xb2 U+fef5
0xB2 U+FEF5
0xb3 U+fef6
0xB3 U+FEF6
0xb4 U+fef7
0xB4 U+FEF7
0xb5 U+fef8
0xB5 U+FEF8
0xb6 U+fffd
0xB8 U+FEFB
0xb7 U+fffd
0xB9 U+FEFC
0xb8 U+fefb
0xBA U+FEDF
0xb9 U+fefc
0xBB U+0645
0xba U+fedf
0xBC U+FEE3
0xbb U+fee1
0xBD U+0646
0xbc U+fee3
0xBE U+FEE7
0xbd U+fee5
0xBF U+0647
0xbe U+fee7
0xC0 U+061B
0xbf U+fee9
0xC1 U+0041
0xc0 U+061b
0xC2 U+0042
0xc1 U+0041
0xC3 U+0043
0xc2 U+0042
0xC4 U+0044
0xc3 U+0043
0xC5 U+0045
0xc4 U+0044
0xC6 U+0046
0xc5 U+0045
0xC7 U+0047
0xc6 U+0046
0xC8 U+0048
0xc7 U+0047
0xC9 U+0049
0xc8 U+0048
0xCA U+00AD
0xc9 U+0049
0xCB U+FEEB
0xca U+00ad
0xCD U+FEEC
0xcb U+feeb
0xCF U+0648
0xcc U+fffd
0xD0 U+061F
0xcd U+feec
0xD1 U+004A
0xce U+fffd
0xD2 U+004B
0xcf U+feed
0xD3 U+004C
0xd0 U+061f
0xD4 U+004D
0xd1 U+004a
0xD5 U+004E
0xd2 U+004b
0xD6 U+004F
0xd3 U+004c
0xD7 U+0050
0xd4 U+004d
0xD8 U+0051
0xd5 U+004e
0xD9 U+0052
0xd6 U+004f
0xDA U+0649
0xd7 U+0050
0xDB U+FEF0
0xd8 U+0051
0xDC U+064A
0xd9 U+0052
0xDD U+FEF2
0xda U+feef
0xDE U+FEF3
0xdb U+fef0
0xDF U+0660
0xdc U+fef1
0xE0 U+00D7
0xdd U+fef2
0xE2 U+0053
0xde U+fef3
0xE3 U+0054
0xdf U+0660
0xE4 U+0055
0xe0 U+00d7
0xE5 U+0056
0xe1 U+2007
0xE6 U+0057
0xe2 U+0053
0xE7 U+0058
0xe3 U+0054
0xE8 U+0059
0xe4 U+0055
0xE9 U+005A
0xe5 U+0056
0xEA U+0661
0xe6 U+0057
0xEB U+0662
0xe7 U+0058
0xED U+0663
0xe8 U+0059
0xEE U+0664
0xe9 U+005a
0xEF U+0665
0xea U+0661
0xF0 U+0030
0xeb U+0662
0xF1 U+0031
0xec U+fffd
0xF2 U+0032
0xed U+0663
0xF3 U+0033
0xee U+0664
0xF4 U+0034
0xef U+0665
0xF5 U+0035
0xf0 U+0030
0xF6 U+0036
0xf1 U+0031
0xF7 U+0037
0xf2 U+0032
0xF8 U+0038
0xf3 U+0033
0xF9 U+0039
0xf4 U+0034
0xFB U+0666
0xf5 U+0035
0xFC U+0667
0xf6 U+0036
0xFD U+0668
0xf7 U+0037
0xFE U+0669
0xf8 U+0038
0xFF U+009F
0xf9 U+0039
0xfa U+fffd
0xfb U+0666
0xfc U+0667
0xfd U+0668
0xfe U+0669
0xff U+009f
jdk/make/tools/CharsetMapping/IBM420.nr
浏览文件 @
5235c4f3
jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java
浏览文件 @
5235c4f3
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
package
build.tools.charsetmapping
;
package
build.tools.charsetmapping
;
import
java.io.*
;
import
java.io.*
;
import
java.util.Arrays
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Scanner
;
import
java.util.Scanner
;
import
java.util.Formatter
;
import
java.util.Formatter
;
...
@@ -54,33 +55,19 @@ public class GenerateSBCS {
...
@@ -54,33 +55,19 @@ public class GenerateSBCS {
String
pkgName
=
fields
[
4
];
String
pkgName
=
fields
[
4
];
System
.
out
.
printf
(
"%s,%s,%s,%b,%s%n"
,
clzName
,
csName
,
hisName
,
isASCII
,
pkgName
);
System
.
out
.
printf
(
"%s,%s,%s,%b,%s%n"
,
clzName
,
csName
,
hisName
,
isASCII
,
pkgName
);
StringBuilder
b2c
=
new
StringBuilder
();
genClass
(
args
[
0
],
args
[
1
],
"SingleByte-X.java"
,
int
c2bLen
=
genB2C
(
clzName
,
csName
,
hisName
,
pkgName
,
isASCII
);
new
FileInputStream
(
new
File
(
args
[
0
],
clzName
+
".map"
)),
b2c
);
String
b2cNR
=
null
;
File
nrF
=
new
File
(
args
[
0
],
clzName
+
".nr"
);
if
(
nrF
.
exists
())
{
b2cNR
=
genNR
(
new
FileInputStream
(
nrF
));
}
String
c2bNR
=
null
;
File
c2bF
=
new
File
(
args
[
0
],
clzName
+
".c2b"
);
if
(
c2bF
.
exists
())
{
c2bNR
=
genC2BNR
(
new
FileInputStream
(
c2bF
));
}
genSBCSClass
(
args
[
0
],
args
[
1
],
"SingleByte-X.java"
,
clzName
,
csName
,
hisName
,
pkgName
,
isASCII
,
b2c
.
toString
(),
b2cNR
,
c2bNR
,
c2bLen
);
}
}
}
}
private
static
void
toString
(
char
[]
sb
,
int
off
,
int
end
,
private
static
void
toString
(
char
[]
sb
,
int
off
,
int
end
,
Formatter
out
,
String
closure
)
{
Formatter
out
,
String
closure
,
boolean
comment
)
{
while
(
off
<
end
)
{
while
(
off
<
end
)
{
out
.
format
(
" \""
);
out
.
format
(
" \""
);
for
(
int
j
=
0
;
j
<
8
;
j
++)
{
for
(
int
j
=
0
;
j
<
8
;
j
++)
{
if
(
off
==
end
)
break
;
char
c
=
sb
[
off
++];
char
c
=
sb
[
off
++];
switch
(
c
)
{
switch
(
c
)
{
case
'\b'
:
case
'\b'
:
...
@@ -103,54 +90,74 @@ public class GenerateSBCS {
...
@@ -103,54 +90,74 @@ public class GenerateSBCS {
out
.
format
(
"\\u%04X"
,
c
&
0xffff
);
out
.
format
(
"\\u%04X"
,
c
&
0xffff
);
}
}
}
}
if
(
comment
)
{
if
(
off
==
end
)
if
(
off
==
end
)
out
.
format
(
"\" %s // 0x%02x - 0x%02x%n"
,
closure
,
off
-
8
,
off
-
1
);
out
.
format
(
"\" %s // 0x%02x - 0x%02x%n"
,
closure
,
off
-
8
,
off
-
1
);
else
else
out
.
format
(
"\" + // 0x%02x - 0x%02x%n"
,
off
-
8
,
off
-
1
);
out
.
format
(
"\" + // 0x%02x - 0x%02x%n"
,
off
-
8
,
off
-
1
);
}
else
{
if
(
off
==
end
)
out
.
format
(
"\"%s%n"
,
closure
);
else
out
.
format
(
"\" +%n"
);
}
}
}
}
}
static
Pattern
sbmap
=
Pattern
.
compile
(
"0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?"
);
static
Pattern
sbmap
=
Pattern
.
compile
(
"0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?"
);
private
static
int
genB2C
(
InputStream
in
,
StringBuilder
out
)
private
static
void
genClass
(
String
srcDir
,
String
dstDir
,
String
template
,
String
clzName
,
String
csName
,
String
hisName
,
String
pkgName
,
boolean
isASCII
)
throws
Exception
throws
Exception
{
{
char
[]
sb
=
new
char
[
0x100
];
StringBuilder
b2cSB
=
new
StringBuilder
();
int
[]
indexC2B
=
new
int
[
0x100
];
StringBuilder
b2cNRSB
=
new
StringBuilder
();
StringBuilder
c2bNRSB
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
sb
.
length
;
i
++)
char
[]
sb
=
new
char
[
0x100
];
sb
[
i
]
=
UNMAPPABLE_DECODING
;
char
[]
c2bIndex
=
new
char
[
0x100
];
int
c2bOff
=
0
;
Arrays
.
fill
(
sb
,
UNMAPPABLE_DECODING
);
Arrays
.
fill
(
c2bIndex
,
UNMAPPABLE_DECODING
);
// parse the b2c mapping table
// (1)read in .map to parse all b->c entries
FileInputStream
in
=
new
FileInputStream
(
new
File
(
srcDir
,
clzName
+
".map"
));
Parser
p
=
new
Parser
(
in
,
sbmap
);
Parser
p
=
new
Parser
(
in
,
sbmap
);
Entry
e
=
null
;
Entry
e
=
null
;
int
off
=
0
;
while
((
e
=
p
.
next
())
!=
null
)
{
while
((
e
=
p
.
next
())
!=
null
)
{
sb
[
e
.
bs
]
=
(
char
)
e
.
cp
;
sb
[
e
.
bs
]
=
(
char
)
e
.
cp
;
if
(
indexC2B
[
e
.
cp
>>
8
]
==
0
)
{
if
(
c2bIndex
[
e
.
cp
>>
8
]
==
UNMAPPABLE_DECODING
)
{
o
ff
+=
0x100
;
c2bO
ff
+=
0x100
;
indexC2B
[
e
.
cp
>>
8
]
=
1
;
c2bIndex
[
e
.
cp
>>
8
]
=
1
;
}
}
}
}
Formatter
fm
=
new
Formatter
(
out
);
Formatter
fm
=
new
Formatter
(
b2cSB
);
fm
.
format
(
"%n"
);
fm
.
format
(
"%n"
);
// vm -server shows cc[byte + 128] access is much faster than
// vm -server shows cc[byte + 128] access is much faster than
// cc[byte&0xff] so we output the upper segment first
// cc[byte&0xff] so we output the upper segment first
toString
(
sb
,
0x80
,
0x100
,
fm
,
"+"
);
toString
(
sb
,
0x80
,
0x100
,
fm
,
"+"
,
true
);
toString
(
sb
,
0x00
,
0x80
,
fm
,
";"
);
toString
(
sb
,
0x00
,
0x80
,
fm
,
";"
,
true
);
fm
.
close
();
fm
.
close
();
return
off
;
}
// generate non-roundtrip entries from xxx.nr file
// (2)now the .nr file which includes "b->c" non-roundtrip entries
private
static
String
genNR
(
InputStream
in
)
throws
Exception
File
f
=
new
File
(
srcDir
,
clzName
+
".nr"
);
{
if
(
f
.
exists
())
{
StringBuilder
sb
=
new
StringBuilder
();
in
=
new
FileInputStream
(
f
);
Formatter
fm
=
new
Formatter
(
sb
);
fm
=
new
Formatter
(
b2cNRSB
);
Parser
p
=
new
Parser
(
in
,
sbmap
);
p
=
new
Parser
(
in
,
sbmap
);
Entry
e
=
null
;
e
=
null
;
fm
.
format
(
"// remove non-roundtrip entries%n"
);
fm
.
format
(
"// remove non-roundtrip entries%n"
);
fm
.
format
(
" b2cMap = b2cTable.toCharArray();%n"
);
fm
.
format
(
" b2cMap = b2cTable.toCharArray();%n"
);
while
((
e
=
p
.
next
())
!=
null
)
{
while
((
e
=
p
.
next
())
!=
null
)
{
...
@@ -158,46 +165,49 @@ public class GenerateSBCS {
...
@@ -158,46 +165,49 @@ public class GenerateSBCS {
(
e
.
bs
>=
0x80
)?(
e
.
bs
-
0x80
):(
e
.
bs
+
0x80
));
(
e
.
bs
>=
0x80
)?(
e
.
bs
-
0x80
):(
e
.
bs
+
0x80
));
}
}
fm
.
close
();
fm
.
close
();
return
sb
.
toString
();
}
}
// generate c2b only entries from xxx.c2b file
// (3)finally the .c2b file which includes c->b non-roundtrip entries
private
static
String
genC2BNR
(
InputStream
in
)
throws
Exception
f
=
new
File
(
srcDir
,
clzName
+
".c2b"
);
{
if
(
f
.
exists
())
{
StringBuilder
sb
=
new
StringBuilder
();
in
=
new
FileInputStream
(
f
);
Formatter
fm
=
new
Formatter
(
sb
);
fm
=
new
Formatter
(
c2bNRSB
);
Parser
p
=
new
Parser
(
in
,
sbmap
);
p
=
new
Parser
(
in
,
sbmap
);
e
=
null
;
ArrayList
<
Entry
>
es
=
new
ArrayList
<
Entry
>();
ArrayList
<
Entry
>
es
=
new
ArrayList
<
Entry
>();
Entry
e
=
null
;
while
((
e
=
p
.
next
())
!=
null
)
{
while
((
e
=
p
.
next
())
!=
null
)
{
if
(
c2bIndex
[
e
.
cp
>>
8
]
==
UNMAPPABLE_DECODING
)
{
c2bOff
+=
0x100
;
c2bIndex
[
e
.
cp
>>
8
]
=
1
;
}
es
.
add
(
e
);
es
.
add
(
e
);
}
}
fm
.
format
(
"// non-roundtrip c2b only entries%n"
);
fm
.
format
(
"// non-roundtrip c2b only entries%n"
);
if
(
es
.
size
()
<
100
)
{
fm
.
format
(
" c2bNR = new char[%d];%n"
,
es
.
size
()
*
2
);
fm
.
format
(
" c2bNR = new char[%d];%n"
,
es
.
size
()
*
2
);
int
i
=
0
;
int
i
=
0
;
for
(
Entry
entry:
es
)
{
for
(
Entry
entry:
es
)
{
fm
.
format
(
" c2bNR[%d] = 0x%x; c2bNR[%d] = 0x%x;%n"
,
fm
.
format
(
" c2bNR[%d] = 0x%x; c2bNR[%d] = 0x%x;%n"
,
i
++,
entry
.
bs
,
i
++,
entry
.
cp
);
i
++,
entry
.
bs
,
i
++,
entry
.
cp
);
}
}
}
else
{
char
[]
cc
=
new
char
[
es
.
size
()
*
2
];
int
i
=
0
;
for
(
Entry
entry:
es
)
{
cc
[
i
++]
=
(
char
)
entry
.
bs
;
cc
[
i
++]
=
(
char
)
entry
.
cp
;
}
fm
.
format
(
" c2bNR = (%n"
);
toString
(
cc
,
0
,
i
,
fm
,
").toCharArray();"
,
false
);
}
fm
.
close
();
fm
.
close
();
return
sb
.
toString
();
}
}
private
static
void
genSBCSClass
(
String
srcDir
,
// (4)it's time to generate the source file
String
dstDir
,
String
b2c
=
b2cSB
.
toString
();
String
template
,
String
b2cNR
=
b2cNRSB
.
toString
();
String
clzName
,
String
c2bNR
=
c2bNRSB
.
toString
();
String
csName
,
String
hisName
,
String
pkgName
,
boolean
isASCII
,
String
b2c
,
String
b2cNR
,
String
c2bNR
,
int
c2blen
)
throws
Exception
{
Scanner
s
=
new
Scanner
(
new
File
(
srcDir
,
template
));
Scanner
s
=
new
Scanner
(
new
File
(
srcDir
,
template
));
PrintStream
out
=
new
PrintStream
(
new
FileOutputStream
(
PrintStream
out
=
new
PrintStream
(
new
FileOutputStream
(
new
File
(
dstDir
,
clzName
+
".java"
)));
new
File
(
dstDir
,
clzName
+
".java"
)));
...
@@ -239,16 +249,16 @@ public class GenerateSBCS {
...
@@ -239,16 +249,16 @@ public class GenerateSBCS {
line
=
line
.
replace
(
"$B2CTABLE$"
,
b2c
);
line
=
line
.
replace
(
"$B2CTABLE$"
,
b2c
);
}
}
if
(
line
.
indexOf
(
"$C2BLENGTH$"
)
!=
-
1
)
{
if
(
line
.
indexOf
(
"$C2BLENGTH$"
)
!=
-
1
)
{
line
=
line
.
replace
(
"$C2BLENGTH$"
,
"0x"
+
Integer
.
toString
(
c2b
len
,
16
));
line
=
line
.
replace
(
"$C2BLENGTH$"
,
"0x"
+
Integer
.
toString
(
c2b
Off
,
16
));
}
}
if
(
line
.
indexOf
(
"$NONROUNDTRIP_B2C$"
)
!=
-
1
)
{
if
(
line
.
indexOf
(
"$NONROUNDTRIP_B2C$"
)
!=
-
1
)
{
if
(
b2cNR
==
null
)
if
(
b2cNR
.
length
()
==
0
)
continue
;
continue
;
line
=
line
.
replace
(
"$NONROUNDTRIP_B2C$"
,
b2cNR
);
line
=
line
.
replace
(
"$NONROUNDTRIP_B2C$"
,
b2cNR
);
}
}
if
(
line
.
indexOf
(
"$NONROUNDTRIP_C2B$"
)
!=
-
1
)
{
if
(
line
.
indexOf
(
"$NONROUNDTRIP_C2B$"
)
!=
-
1
)
{
if
(
c2bNR
==
null
)
if
(
c2bNR
.
length
()
==
0
)
continue
;
continue
;
line
=
line
.
replace
(
"$NONROUNDTRIP_C2B$"
,
c2bNR
);
line
=
line
.
replace
(
"$NONROUNDTRIP_C2B$"
,
c2bNR
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录