ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/gentables
(Generate patch)

Comparing rxvt-unicode/src/gentables (file contents):
Revision 1.5 by pcg, Mon Mar 15 01:27:46 2004 UTC vs.
Revision 1.12 by root, Wed Jun 16 23:07:11 2021 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2 2
3# the generated tables mostly have NOT been checked so far! 3# the generated tables mostly have NOT been checked so far!
4
5# apt install libencode-hanextra-perl libencode-jis2k-perl
4 6
5use v5.8.2; 7use v5.8.2;
6use utf8; 8use utf8;
7use Encode; 9use Encode;
10use Encode::JP;
11use Encode::CN;
12use Encode::KR;
13use Encode::HanExtra;
14use Encode::JIS2K;
8 15
9my $gen; 16my $gen;
10 17
11$TO_UNICODE = 0; # also generate to_unicode tables 18$TO_UNICODE = 0; # also generate to_unicode tables
12 19
88 $fun .= sprintf "if (· == 0x%04x) return 0x%04x;\n", $b + $_, $enc->[$b + $_]; 95 $fun .= sprintf "if (· == 0x%04x) return 0x%04x;\n", $b + $_, $enc->[$b + $_];
89 } 96 }
90 } elsif (linear $enc, $b + $l, $b + $h, $enc->[$b + $l]) { 97 } elsif (linear $enc, $b + $l, $b + $h, $enc->[$b + $l]) {
91 my $dif = $enc->[$b + $l] - ($b + $l); 98 my $dif = $enc->[$b + $l] - ($b + $l);
92 $dif = $dif < 0 ? sprintf "- 0x%04x", -$dif : sprintf "+ 0x%04x", $dif; 99 $dif = $dif < 0 ? sprintf "- 0x%04x", -$dif : sprintf "+ 0x%04x", $dif;
93 $fun .= sprintf "if (· <= 0x%04x && 0x%04x <= ·) return · %s;\n", $b + $l, $b + $h, $dif; 100 $fun .= sprintf "if (· >= 0x%04x && 0x%04x >= ·) return · %s;\n", $b + $l, $b + $h, $dif;
94 } elsif ($map2[$p] <= 5) { # defunct 101 } elsif ($map2[$p] <= 5) { # defunct
95 $fun .= "switch (·)\n {\n"; 102 $fun .= "switch (·)\n {\n";
96 for ($l .. $h) { 103 for ($l .. $h) {
97 next unless defined $enc->[$b + $_]; 104 next unless defined $enc->[$b + $_];
98 $fun .= sprintf " case 0x%04x: return 0x%04x;\n", $b + $_, $enc->[$b + $_]; 105 $fun .= sprintf " case 0x%04x: return 0x%04x;\n", $b + $_, $enc->[$b + $_];
234// AUTOMATICALLLY GENERATED by gentables 241// AUTOMATICALLLY GENERATED by gentables
235// 242//
236#ifdef ENCODING_$group 243#ifdef ENCODING_$group
237 244
238$tab1$tab2 245$tab1$tab2
239struct rxvt_codeset_conv_$base : rxvt_codeset_conv {
240 uint32_t from_unicode (unicode_t unicode) const { 246static uint32_t cs_$base\_from_unicode (unicode_t unicode) {
241$fun1 } 247$fun1}
242EOF 248EOF
243 249
244if ($TO_UNICODE) { 250if ($TO_UNICODE) {
245 print OUT <<EOF 251 print OUT <<EOF
246#if ENCODING_TO_UNICODE 252#if ENCODING_TO_UNICODE
247 unicode_t to_unicode (uint32_t enc) const { 253static unicode_t cs_$base\_to_unicode (uint32_t enc) {
248$fun2 } 254$fun2}
249#endif 255#endif
250EOF 256EOF
251} 257}
252 258
253print OUT <<EOF; 259print OUT <<EOF;
254} rxvt_codeset_conv_$base;
255 260
256#else 261#else
257 262
258#define rxvt_codeset_conv_$base rxvt_codeset_conv_unknown 263#define cs_$base\_from_unicode cs_unknown_from_unicode
264#define cs_$base\_to_unicode cs_unknown_to_unicode
259 265
260#endif 266#endif
261EOF 267EOF
262 268
263 close OUT; 269 close OUT;
264} 270}
265 271
266__DATA__ 272__DATA__
267VN viscii viscii 273VN viscii viscii
268KR ksc5601_1987_0 ksc5601-raw 274KR ksc5601_1987_0 ksc5601-raw
269CN gb2312_1980_0 gb2312-raw 275ZH gb2312_1980_0 gb2312-raw
276ZH gbk_0 gbk
270CN_EXT cns11643_1992_1 cns11643-1 277ZH_EXT cns11643_1992_1 cns11643-1
271CN_EXT cns11643_1992_2 cns11643-2 278ZH_EXT cns11643_1992_2 cns11643-2
272CN_EXT cns11643_1992_3 cns11643-3 279ZH_EXT cns11643_1992_3 cns11643-3
273CN_EXT cns11643_1992_4 cns11643-4 280ZH_EXT cns11643_1992_4 cns11643-4
274CN_EXT cns11643_1992_5 cns11643-5 281ZH_EXT cns11643_1992_5 cns11643-5
275CN_EXT cns11643_1992_6 cns11643-6 282ZH_EXT cns11643_1992_6 cns11643-6
276CN_EXT cns11643_1992_7 cns11643-7 283ZH_EXT cns11643_1992_7 cns11643-7
277CN_EXT cns11643_1992_f cns11643-f 284ZH_EXT cns11643_1992_f cns11643-f
278CN big5 big5 285ZH big5 big5
279CN_EXT big5_ext big5ext 286ZH_EXT big5_ext big5ext
280CN_EXT big5_plus big5plus 287ZH_EXT big5_plus big5plus
281EU koi8_r koi8-r 288EU koi8_r koi8-r
282EU koi8_u koi8-u 289EU koi8_u koi8-u
283DEFAULT iso8859_1 iso-8859-1 290DEFAULT iso8859_1 iso-8859-1
284EU iso8859_2 iso-8859-2 291EU iso8859_2 iso-8859-2
285EU iso8859_3 iso-8859-3 292EU iso8859_3 iso-8859-3
290EU iso8859_8 iso-8859-8 297EU iso8859_8 iso-8859-8
291EU iso8859_9 iso-8859-9 298EU iso8859_9 iso-8859-9
292EU iso8859_10 iso-8859-10 299EU iso8859_10 iso-8859-10
293EU iso8859_11 iso-8859-11 300EU iso8859_11 iso-8859-11
294EU iso8859_13 iso-8859-13 301EU iso8859_13 iso-8859-13
295EU iso8859_14 iso-8859-14 302EU iso8859_14 iso-8859-14
296DEFAULT iso8859_15 iso-8859-15 303DEFAULT iso8859_15 iso-8859-15
297EU iso8859_16 iso-8859-16 304EU iso8859_16 iso-8859-16
298JP jis0201_1976_0 jis0201-raw 305JP jis0201_1976_0 jis0201-raw
299JP jis0208_1990_0 jis0208-raw 306JP jis0208_1990_0 jis0208-raw
300JP jis0212_1990_0 jis0212-raw 307JP jis0212_1990_0 jis0212-raw

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines