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.1 by pcg, Mon Nov 24 17:28:08 2003 UTC vs.
Revision 1.9 by root, Fri Dec 10 19:55:55 2004 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2 2
3# the generated tables mostly have NOT been chcked so far! 3# the generated tables mostly have NOT been checked so far!
4 4
5use v5.8.2; 5use v5.8.2;
6use utf8; 6use utf8;
7use Encode; 7use Encode;
8use Encode::JP;
9use Encode::CN;
10use Encode::KR;
11use Encode::HanExtra;
12use Encode::JIS2K;
8 13
9my $gen; 14my $gen;
15
16$TO_UNICODE = 0; # also generate to_unicode tables
10 17
11sub linear { 18sub linear {
12 my ($a, $l, $h, $b) = @_; 19 my ($a, $l, $h, $b) = @_;
13 for ($l .. $h) { 20 for ($l .. $h) {
14 return unless defined $a->[$_] && $a->[$_] == $_ + ($b - $l); 21 return unless defined $a->[$_] && $a->[$_] == $_ + ($b - $l);
213 $enc1[$_] = $code; 220 $enc1[$_] = $code;
214 $enc2[$code] = $_ unless defined $enc2[$code]; 221 $enc2[$code] = $_ unless defined $enc2[$code];
215 } 222 }
216 } 223 }
217 224
225 my ($tab1, $fun1);
226 my ($tab2, $fun2);
227
218 my ($tab1, $fun1) = gen \@enc1, "$base\_f", "unicode"; 228 ($tab1, $fun1) = gen \@enc1, "$base\_f", "unicode";
219 my ($tab2, $fun2) = gen \@enc2, "$base\_t", "enc"; 229 ($tab2, $fun2) = gen \@enc2, "$base\_t", "enc" if $TO_UNICODE;
220 230
221 #$tab1 =~ s/^/ /gm;
222 #$tab2 =~ s/^/ /gm;
223 $fun1 =~ s/^/ /gm; 231 $fun1 =~ s/^/ /gm;
224 $fun2 =~ s/^/ /gm; 232 $fun2 =~ s/^/ /gm;
225 233
226 print "$base\n"; 234 print "$base\n";
227 open OUT, ">table/$base.h" or die; 235 open OUT, ">table/$base.h" or die;
231// AUTOMATICALLLY GENERATED by gentables 239// AUTOMATICALLLY GENERATED by gentables
232// 240//
233#ifdef ENCODING_$group 241#ifdef ENCODING_$group
234 242
235$tab1$tab2 243$tab1$tab2
236struct rxvt_codeset_conv_$base : rxvt_codeset_conv { 244static uint32_t cs_$base\_from_unicode (unicode_t unicode) {
237 uint32_t from_unicode (uint32_t unicode) const {
238$fun1 } 245$fun1}
239 uint32_t to_unicode (uint32_t enc) const { 246EOF
247
248if ($TO_UNICODE) {
249 print OUT <<EOF
250#if ENCODING_TO_UNICODE
251static unicode_t cs_$base\_to_unicode (uint32_t enc) {
240$fun2 } 252$fun2}
241} rxvt_codeset_conv_$base; 253#endif
254EOF
255}
256
257print OUT <<EOF;
242 258
243#else 259#else
244 260
245#define rxvt_codeset_conv_$base rxvt_codeset_conv_unknown 261#define cs_$base\_from_unicode cs_unknown_from_unicode
262#define cs_$base\_to_unicode cs_unknown_to_unicode
246 263
247#endif 264#endif
248EOF 265EOF
249 266
250 close OUT; 267 close OUT;
251} 268}
252 269
253__DATA__ 270__DATA__
254VN viscii viscii 271VN viscii viscii
255KR ksc5601_1987_0 ksc5601-raw 272KR ksc5601_1987_0 ksc5601-raw
256CN gb2312_1980_0 gb2312-raw 273ZH gb2312_1980_0 gb2312-raw
274ZH gbk_0 gbk
257CN_EXT cns11643_1992_1 cns11643-1 275ZH_EXT cns11643_1992_1 cns11643-1
258CN_EXT cns11643_1992_2 cns11643-2 276ZH_EXT cns11643_1992_2 cns11643-2
259CN_EXT cns11643_1992_3 cns11643-3 277ZH_EXT cns11643_1992_3 cns11643-3
260CN_EXT cns11643_1992_4 cns11643-4 278ZH_EXT cns11643_1992_4 cns11643-4
261CN_EXT cns11643_1992_5 cns11643-5 279ZH_EXT cns11643_1992_5 cns11643-5
262CN_EXT cns11643_1992_6 cns11643-6 280ZH_EXT cns11643_1992_6 cns11643-6
263CN_EXT cns11643_1992_7 cns11643-7 281ZH_EXT cns11643_1992_7 cns11643-7
264CN_EXT cns11643_1992_f cns11643-f 282ZH_EXT cns11643_1992_f cns11643-f
283ZH big5 big5
265CN_EXT big5_ext big5ext 284ZH_EXT big5_ext big5ext
266CN_EXT big5_plus big5plus 285ZH_EXT big5_plus big5plus
267EU koi8_r koi8-r 286EU koi8_r koi8-r
268EU koi8_u koi8-u 287EU koi8_u koi8-u
269DEFAULT iso8859_1 iso-8859-1 288DEFAULT iso8859_1 iso-8859-1
270EU iso8859_2 iso-8859-2 289EU iso8859_2 iso-8859-2
271EU iso8859_3 iso-8859-3 290EU iso8859_3 iso-8859-3
280EU iso8859_13 iso-8859-13 299EU iso8859_13 iso-8859-13
281EU iso8859_14 iso-8859-14 300EU iso8859_14 iso-8859-14
282DEFAULT iso8859_15 iso-8859-15 301DEFAULT iso8859_15 iso-8859-15
283EU iso8859_16 iso-8859-16 302EU iso8859_16 iso-8859-16
284JP jis0201_1976_0 jis0201-raw 303JP jis0201_1976_0 jis0201-raw
285JP jis0208_1983_0 jis0208-raw 304JP jis0208_1990_0 jis0208-raw
286JP jis0212_1990_0 jis0212-raw 305JP jis0212_1990_0 jis0212-raw
287JP_EXT jis0213_1 jis0213-1-raw 306JP_EXT jis0213_1 jis0213-1-raw
288JP_EXT jis0213_2 jis0213-2-raw 307JP_EXT jis0213_2 jis0213-2-raw

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines