| 20 |
sub encode ($$;$) { |
sub encode ($$;$) { |
| 21 |
my ($obj, $str, $chk) = @_; |
my ($obj, $str, $chk) = @_; |
| 22 |
$_[1] = '' if $chk; |
$_[1] = '' if $chk; |
| 23 |
|
if (!defined $obj->{_encode_mapping} || $obj->{_encode_mapping}) { |
| 24 |
|
require Encode::Table; |
| 25 |
|
$str = Encode::Table::convert ($str, $obj->__encode_map, |
| 26 |
|
-autoload => defined $obj->{_encode_mapping_autoload} ? |
| 27 |
|
$obj->{_encode_mapping_autoload} : 1); |
| 28 |
|
} |
| 29 |
$str = &Encode::ISO2022::internal_to_iso2022 ($str, $obj->__2022_encode); |
$str = &Encode::ISO2022::internal_to_iso2022 ($str, $obj->__2022_encode); |
| 30 |
return $str; |
$str; |
| 31 |
} |
} |
| 32 |
|
|
| 33 |
sub decode ($$;$) { |
sub decode ($$;$) { |
| 34 |
my ($obj, $str, $chk) = @_; |
my ($obj, $str, $chk) = @_; |
| 35 |
$_[1] = '' if $chk; |
$_[1] = '' if $chk; |
| 36 |
return &Encode::ISO2022::iso2022_to_internal ($str, $obj->__2022_decode); |
$str = &Encode::ISO2022::iso2022_to_internal ($str, $obj->__2022_decode); |
| 37 |
|
if (!defined $obj->{_decode_mapping} || $obj->{_decode_mapping}) { |
| 38 |
|
require Encode::Table; |
| 39 |
|
$str = Encode::Table::convert ($str, $obj->__decode_map, |
| 40 |
|
-autoload => defined $obj->{_decode_mapping_autoload} ? |
| 41 |
|
$obj->{_decode_mapping_autoload} : 1); |
| 42 |
|
} |
| 43 |
|
$str; |
| 44 |
} |
} |
| 45 |
|
|
| 46 |
## prototype for EUCs |
## prototype for EUCs |
| 70 |
my $C = shift->__2022__common; |
my $C = shift->__2022__common; |
| 71 |
$C; |
$C; |
| 72 |
} |
} |
| 73 |
|
sub __encode_map ($) { |
| 74 |
|
[]; |
| 75 |
|
} |
| 76 |
|
sub __decode_map ($) { |
| 77 |
|
[]; |
| 78 |
|
} |
| 79 |
|
|
| 80 |
package Encode::ISO2022::EightBit::EUCJapanOld; |
sub __clone ($) { |
| 81 |
|
my $self = shift; |
| 82 |
|
bless {%$self}, ref $self; |
| 83 |
|
}; |
| 84 |
|
|
| 85 |
|
package Encode::ISO2022::EightBit::EUCJapanOldDefinition; |
| 86 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 87 |
push @ISA, 'Encode::ISO2022::EightBit'; |
push @ISA, 'Encode::ISO2022::EightBit'; |
| 88 |
__PACKAGE__->Define (qw/ujis x-ujis deckanji/); |
__PACKAGE__->Define (qw/ujis x-ujis euc-jp-1983 euc-japan-1983 deckanji/); |
| 89 |
|
|
| 90 |
=item ujis |
=item ujis |
| 91 |
|
|
| 92 |
EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese, |
EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese |
| 93 |
old version (pre-1990). (Alias: x-ujis) |
with JIS X 0208 (JIS C 6226)-1983 |
| 94 |
|
(obsoleted definition of pre-1990 days). (Alias: x-ujis, |
| 95 |
|
euc-japan-1983, euc-jp-1983) |
| 96 |
|
|
| 97 |
=cut |
=cut |
| 98 |
|
|
| 103 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{' @'}; ## Gaiji (undefined) |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{' @'}; ## Gaiji (undefined) |
| 104 |
$C; |
$C; |
| 105 |
} |
} |
| 106 |
|
sub __encode_map ($) { |
| 107 |
|
[qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0201_katakana/]; |
| 108 |
|
} |
| 109 |
|
sub __decode_map ($) { |
| 110 |
|
[qw/jisx0208_1983_to_ucs jisx0201_katakana_to_ucs/]; |
| 111 |
|
} |
| 112 |
|
|
| 113 |
package Encode::ISO2022::EightBit::EUCJapan; |
package Encode::ISO2022::EightBit::EUCJapan; |
| 114 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 115 |
push @ISA, 'Encode::ISO2022::EightBit'; |
push @ISA, 'Encode::ISO2022::EightBit'; |
| 116 |
__PACKAGE__->Define (qw/euc-japan euc-japan-1990 euc-jp euc-j eucjp euc_jp x-euc-jp |
__PACKAGE__->Define (qw/euc-japan euc-japan-1990 euc-japan-1997 euc-jp euc-jp-1990 |
| 117 |
x-eucjp eucjis euc-jis Extended_UNIX_Code_Packed_Format_for_Japanese csEUCPkdFmtJapanese |
euc-jp-1997 euc-j eucjp euc_jp x-euc-jp |
| 118 |
|
x-eucjp eucjis euc-jis eucj Extended_UNIX_Code_Packed_Format_for_Japanese |
| 119 |
|
csEUCPkdFmtJapanese eujis |
| 120 |
japanese-iso-8bit cp51932 japanese_euc |
japanese-iso-8bit cp51932 japanese_euc |
| 121 |
ajec eucjp-open ibm-eucjp cp33722 33722 sdeckanji/); |
ajec eucjp-open ibm-eucjp cp33722 33722 sdeckanji/); |
| 122 |
|
|
| 123 |
=item euc-japan |
=item euc-japan |
| 124 |
|
|
| 125 |
EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese. |
EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese |
| 126 |
(Alias: euc-japan-1990 (emacsen), euc-jp (IANA), |
with JIS X 0208-1990. |
| 127 |
euc-j, eucjp (X), euc_jp, x-eucjp, x-euc-jp, eucjis, euc-jis, |
(Alias: euc-japan-1990 (emacsen), euc-japan-1997, euc-jp (IANA), euc-jp-1990, |
| 128 |
|
euc-jp-1997, eujis (locale), |
| 129 |
|
euc-j, eucjp (locale), euc_jp, eucj, x-eucjp, x-euc-jp, eucjis, euc-jis, |
| 130 |
extended_unix_code_packed_format_for_japanese (IANA), |
extended_unix_code_packed_format_for_japanese (IANA), |
| 131 |
cseucpkdfmtjapanese (IANA), japanese-iso-8bit (emacsen), |
cseucpkdfmtjapanese (IANA), japanese-iso-8bit (emacsen), |
| 132 |
cp51932 (M$), japanese_euc) |
cp51932 (M$), japanese_euc) |
| 140 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{D}; ## JIS X 0212-1990 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{D}; ## JIS X 0212-1990 |
| 141 |
$C; |
$C; |
| 142 |
} |
} |
| 143 |
|
sub __encode_map ($) { |
| 144 |
|
[qw/ucs_to_ascii ucs_to_jisx0208_1990 ucs_to_jisx0212_1990 ucs_to_jisx0201_katakana/]; |
| 145 |
|
} |
| 146 |
|
sub __decode_map ($) { |
| 147 |
|
[qw/jisx0208_1990_to_ucs jisx0212_1990_to_ucs jisx0201_katakana_to_ucs/]; |
| 148 |
|
} |
| 149 |
|
|
| 150 |
|
package Encode::ISO2022::EightBit::EUCJapan1978; |
| 151 |
|
use vars qw/@ISA/; |
| 152 |
|
push @ISA, 'Encode::ISO2022::EightBit'; |
| 153 |
|
__PACKAGE__->Define (qw/euc-japan-1978 euc-jp-1978/); |
| 154 |
|
|
| 155 |
|
=item euc-japan-1978 |
| 156 |
|
|
| 157 |
|
EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese |
| 158 |
|
with JIS X 0208 (JIS C 6226)-1978. (Alias: euc-jp-1978) |
| 159 |
|
|
| 160 |
|
=cut |
| 161 |
|
|
| 162 |
|
sub __2022__common ($) { |
| 163 |
|
my $C = shift->SUPER::__2022__common; |
| 164 |
|
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{'@'}; ## JIS X 0208-1978 |
| 165 |
|
$C->{G2} = $Encode::ISO2022::CHARSET{G94}->{I}; ## JIS X 0201 Katakana |
| 166 |
|
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{D}; ## JIS X 0212-1990 |
| 167 |
|
$C; |
| 168 |
|
} |
| 169 |
|
sub __encode_map ($) { |
| 170 |
|
[qw/ucs_to_ascii ucs_to_jisx0208_1978 ucs_to_jisx0212_1990 ucs_to_jisx0201_katakana/]; |
| 171 |
|
} |
| 172 |
|
sub __decode_map ($) { |
| 173 |
|
[qw/jisx0208_1978_to_ucs jisx0212_1990_to_ucs jisx0201_katakana_to_ucs/]; |
| 174 |
|
} |
| 175 |
|
|
| 176 |
package Encode::ISO2022::EightBit::EUCJISX0213; |
package Encode::ISO2022::EightBit::EUCJISX0213; |
| 177 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 178 |
push @ISA, 'Encode::ISO2022::EightBit'; |
push @ISA, 'Encode::ISO2022::EightBit'; |
| 179 |
__PACKAGE__->Define (qw/euc-jisx0213 x-euc-jisx0213 eucjp0213 |
__PACKAGE__->Define (qw/euc-jisx0213 x-euc-jisx0213 euc_jisx0213 eucjp0213 |
| 180 |
euc-jp-3 x-euc-jisx0213-packed deckanji2000/); |
euc-jp-3 euc-japan-2000 euc-jp-2000 x-euc-jisx0213-packed deckanji2000/); |
| 181 |
|
|
| 182 |
=item euc-jisx0213 |
=item euc-jisx0213 |
| 183 |
|
|
| 184 |
EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese |
EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese |
| 185 |
with JIS X 0213:2000, defined by JIS X 0213:2000. |
with JIS X 0213:2000, defined by JIS X 0213:2000. |
| 186 |
(Alias: x-euc-jisx0213, eucjp0213, euc-jp-3) |
(Alias: x-euc-jisx0213, euc_jisx0213, eucjp0213, euc-jp-3, |
| 187 |
|
euc-japan-2000, euc-jp-2000) |
| 188 |
|
|
| 189 |
=cut |
=cut |
| 190 |
|
|
| 195 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{P}; ## JIS X 0213:2000 plane 2 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{P}; ## JIS X 0213:2000 plane 2 |
| 196 |
$C; |
$C; |
| 197 |
} |
} |
| 198 |
|
sub __encode_map ($) { |
| 199 |
|
[qw/ucs_to_ascii ucs_to_jisx0213_2000_1 ucs_to_jisx0213_2000_2 ucs_to_jisx0201_katakana/]; |
| 200 |
|
} |
| 201 |
|
sub __decode_map ($) { |
| 202 |
|
[qw/jisx0213_2000_1_to_ucs jisx0212_0213_to_ucs jisx0201_katakana_to_ucs/]; |
| 203 |
|
} |
| 204 |
|
|
| 205 |
package Encode::ISO2022::EightBit::EUCJISX0213Plane1; |
package Encode::ISO2022::EightBit::EUCJISX0213Plane1; |
| 206 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 214 |
|
|
| 215 |
=cut |
=cut |
| 216 |
|
|
| 217 |
sub __2022__common ($) { |
sub __2022__encode ($) { |
| 218 |
my $C = shift->SUPER::__2022__common; |
my $C = shift->SUPER::__2022__common; |
| 219 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{"\x7E"}; ## empty |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{"\x7E"}; ## empty |
| 220 |
$C; |
$C; |
| 221 |
} |
} |
| 222 |
|
sub __encode_map ($) { |
| 223 |
|
[qw/ucs_to_ascii ucs_to_jisx0213_2000_1 ucs_to_jisx0201_katakana/]; |
| 224 |
|
} |
| 225 |
|
sub __decode_map ($) { |
| 226 |
|
[qw/jisx0213_2000_1_to_ucs jisx0212_0213_to_ucs jisx0201_katakana_to_ucs/]; |
| 227 |
|
} |
| 228 |
|
|
| 229 |
package Encode::ISO2022::EightBit::EUCCHINA; |
package Encode::ISO2022::EightBit::EUCCHINA; |
| 230 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 237 |
|
|
| 238 |
EUC (ISO/IEC 2022 based 8-bit encoding) for Chinese. |
EUC (ISO/IEC 2022 based 8-bit encoding) for Chinese. |
| 239 |
(Alias: euc-cn (emacsen), euccn, euc-gb, cn-gb (RFC 1922), cn-gb-2312 (RFC 1922), |
(Alias: euc-cn (emacsen), euccn, euc-gb, cn-gb (RFC 1922), cn-gb-2312 (RFC 1922), |
| 240 |
chinese-iso-8bit (emacsen), ugb, gb2312 (IANA), csgb2312 (IANA), |
chinese-iso-8bit (emacsen), ugb (locale), gb2312 (IANA), csgb2312 (IANA), |
| 241 |
x-euc-cn, CP51936 (M$)) |
x-euc-cn, CP51936 (M$)) |
| 242 |
|
|
| 243 |
=cut |
=cut |
| 247 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{A}; ## GB 2312 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{A}; ## GB 2312 |
| 248 |
$C; |
$C; |
| 249 |
} |
} |
| 250 |
|
sub __encode_map ($) { |
| 251 |
|
[qw/ucs_to_ascii ucs_to_gb2312_1980/]; |
| 252 |
|
} |
| 253 |
|
sub __decode_map ($) { |
| 254 |
|
[qw/gb2312_1980_to_ucs/]; |
| 255 |
|
} |
| 256 |
|
|
| 257 |
package Encode::ISO2022::EightBit::EUCCHINA165; |
package Encode::ISO2022::EightBit::EUCCHINA165; |
| 258 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 272 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x45"}; ## ISO-IR 165 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x45"}; ## ISO-IR 165 |
| 273 |
$C; |
$C; |
| 274 |
} |
} |
| 275 |
|
sub __encode_map ($) { |
| 276 |
|
[qw/ucs_to_ascii ucs_to_iso_ir_165/]; |
| 277 |
|
} |
| 278 |
|
sub __decode_map ($) { |
| 279 |
|
[qw/iso_ir_165_to_ucs/]; |
| 280 |
|
} |
| 281 |
|
|
| 282 |
package Encode::ISO2022::EightBit::EUCcwnn; |
package Encode::ISO2022::EightBit::EUCcwnn; |
| 283 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 287 |
=item euc-cwnn |
=item euc-cwnn |
| 288 |
|
|
| 289 |
EUC (ISO/IEC 2022 based 8-bit encoding) for Chinese |
EUC (ISO/IEC 2022 based 8-bit encoding) for Chinese |
| 290 |
with GB 2312, used by cwnn input system (Alias: cwnn-iso-8bit) |
with GB 2312, used by cwnn input system (Alias: cwnn-iso-8bit). |
| 291 |
|
See <http://www.tomo.gr.jp/users/wnn/9912ml/msg00088.html>. |
| 292 |
|
|
| 293 |
=cut |
=cut |
| 294 |
|
|
|
# See <http://www.tomo.gr.jp/users/wnn/9912ml/msg00088.html> |
|
|
|
|
| 295 |
sub __2022__common ($) { |
sub __2022__common ($) { |
| 296 |
my $C = shift->SUPER::__2022__common; |
my $C = shift->SUPER::__2022__common; |
| 297 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{A}; ## GB 2312 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{A}; ## GB 2312 |
| 299 |
## TODO: Implement by private set support |
## TODO: Implement by private set support |
| 300 |
$C; |
$C; |
| 301 |
} |
} |
| 302 |
|
sub __encode_map ($) { |
| 303 |
|
[qw/ucs_to_ascii ucs_to_gb2312_1980 ucs_to_omron_udc_zh/]; |
| 304 |
|
} |
| 305 |
|
sub __decode_map ($) { |
| 306 |
|
[qw/gb2312_1980_to_ucs omron_udc_zh_to_ucs/]; |
| 307 |
|
} |
| 308 |
|
|
| 309 |
## cn-gb-12345, gb12345, euc-gb12345 |
## cn-gb-12345, gb12345, euc-gb12345 |
| 310 |
|
|
| 327 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{C}; ## KS X 1001 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{C}; ## KS X 1001 |
| 328 |
$C; |
$C; |
| 329 |
} |
} |
| 330 |
|
sub __encode_map ($) { |
| 331 |
|
[qw/ucs_to_ascii ksx1001_1992_katakana/]; |
| 332 |
|
} |
| 333 |
|
sub __decode_map ($) { |
| 334 |
|
[qw/ksx1001_1992_to_ucs/]; |
| 335 |
|
} |
| 336 |
|
|
| 337 |
package Encode::ISO2022::EightBit::EUCTaiwan; |
package Encode::ISO2022::EightBit::EUCTaiwan; |
| 338 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 354 |
$C->{G2} = $Encode::ISO2022::CHARSET{G94n}->{' `'}; # 3byte DRCS (temporary) |
$C->{G2} = $Encode::ISO2022::CHARSET{G94n}->{' `'}; # 3byte DRCS (temporary) |
| 355 |
$C; |
$C; |
| 356 |
} |
} |
| 357 |
|
sub __encode_map ($) { |
| 358 |
|
[qw/ucs_to_ascii ucs_to_cns11643_1 ucs_to_cns11643_2 ucs_to_cns11643_3 ucs_to_cns11643_4 ucs_to_cns11643_5 ucs_to_cns11643_6 ucs_to_cns11643_7 ucs_to_cns11643_8 ucs_to_cns11643_9 ucs_to_cns11643_10 ucs_to_cns11643_11 ucs_to_cns11643_12 ucs_to_cns11643_13 ucs_to_cns11643_14 ucs_to_cns11643_15 ucs_to_cns11643_16/]; |
| 359 |
|
} |
| 360 |
|
sub __decode_map ($) { |
| 361 |
|
[qw/cns11643_1_to_ucs cns11643_2_to_ucs cns11643_3_to_ucs cns11643_4_to_ucs cns11643_5_to_ucs cns11643_6_to_ucs cns11643_7_to_ucs cns11643_8_to_ucs cns11643_9_to_ucs cns11643_10_to_ucs cns11643_11_to_ucs cns11643_12_to_ucs cns11643_13_to_ucs cns11643_14_to_ucs cns11643_15_to_ucs cns11643_16_to_ucs/]; |
| 362 |
|
} |
| 363 |
|
|
| 364 |
package Encode::ISO2022::EightBit::EUCtwnn; |
package Encode::ISO2022::EightBit::EUCtwnn; |
| 365 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 370 |
|
|
| 371 |
EUC (ISO/IEC 2022 based 8-bit encoding) for Chinese |
EUC (ISO/IEC 2022 based 8-bit encoding) for Chinese |
| 372 |
with CNS 11643, used by twnn input system (Alias: twnn-iso-8bit) |
with CNS 11643, used by twnn input system (Alias: twnn-iso-8bit) |
| 373 |
|
See <http://www.tomo.gr.jp/users/wnn/9912ml/msg00088.html>. |
| 374 |
|
|
| 375 |
=cut |
=cut |
| 376 |
|
|
|
# See <http://www.tomo.gr.jp/users/wnn/9912ml/msg00088.html> |
|
|
|
|
| 377 |
sub __2022__common ($) { |
sub __2022__common ($) { |
| 378 |
my $C = shift->SUPER::__2022__common; |
my $C = shift->SUPER::__2022__common; |
| 379 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{G}; ## plane 1 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{G}; ## plane 1 |
| 382 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{H}; ## plane 2 |
$C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{H}; ## plane 2 |
| 383 |
$C; |
$C; |
| 384 |
} |
} |
| 385 |
|
sub __encode_map ($) { |
| 386 |
|
[qw/ucs_to_ascii ucs_to_cns11643_1 ucs_to_cns11643_2 ucs_to_omron_udc_zh/]; |
| 387 |
|
} |
| 388 |
|
sub __decode_map ($) { |
| 389 |
|
[qw/cns11643_1_to_ucs cns11643_2_to_ucs omron_udc_zh_to_ucs/]; |
| 390 |
|
} |
| 391 |
|
|
| 392 |
package Encode::ISO2022::EightBit::EUCKPS9566; |
package Encode::ISO2022::EightBit::EUCKPS9566; |
| 393 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 406 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{N}; ## KPS 9566-97 |
$C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{N}; ## KPS 9566-97 |
| 407 |
$C; |
$C; |
| 408 |
} |
} |
| 409 |
|
sub __encode_map ($) { |
| 410 |
|
[qw/ucs_to_ascii ucs_to_kps9566_1997/]; |
| 411 |
|
} |
| 412 |
|
sub __decode_map ($) { |
| 413 |
|
[qw/kps9566_1997_to_ucs/]; |
| 414 |
|
} |
| 415 |
|
|
| 416 |
package Encode::ISO2022::EightBit::SS2; |
package Encode::ISO2022::EightBit::SS2; |
| 417 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 439 |
use vars qw/@ISA/; |
use vars qw/@ISA/; |
| 440 |
push @ISA, 'Encode::ISO2022::EightBit'; |
push @ISA, 'Encode::ISO2022::EightBit'; |
| 441 |
__PACKAGE__->Define (qw/compound-text compound_text |
__PACKAGE__->Define (qw/compound-text compound_text |
| 442 |
x-compound-text ctext x-ctext/); |
x-compound-text ctext x-ctext ct/); |
| 443 |
|
|
| 444 |
=item compound-text |
=item compound-text |
| 445 |
|
|
| 446 |
ISO/IEC 2022 based 8-bit encoding used in inter-client |
ISO/IEC 2022 based 8-bit encoding used in inter-client |
| 447 |
communication of X Window System (Alias: ctext (emacsen), x-ctext (emacsen), |
communication of X Window System (Alias: ctext (emacsen), x-ctext (emacsen), |
| 448 |
compound_text, x-compound-text) |
compound_text, x-compound-text, ct (loacle)) |
| 449 |
|
|
| 450 |
Strictly, x-ctext, extended compound text (X Compound Text |
Strictly, x-ctext, extended compound text (X Compound Text |
| 451 |
based encoding for unknown ISO/IEC 2022 based encoding) is a |
based encoding for unknown ISO/IEC 2022 based encoding) is a |
| 452 |
different coding system from X Compound Text. See |
different coding system from X Compound Text. See |
| 453 |
[mule-jp:7455] <mid:rsqsoa5s2hr.fsf@crane.jaist.ac.jp> and |
[mule-jp:7455] <mid:rsqsoa5s2hr.fsf@crane.jaist.ac.jp> and |
| 454 |
[mule-jp:7457] <mid:rsq4smlky85.fsf@crane.jaist.ac.jp>. |
[mule-jp:7457] <mid:rsq4smlky85.fsf@crane.jaist.ac.jp>. |
| 455 |
|
Mule's ctext allows private final bytes and 96^n sets. |
| 456 |
|
|
| 457 |
|
XFree86 extended compound text allows to use UTF-8 |
| 458 |
|
with ESC 02/05 04/06. See |
| 459 |
|
<http://cvsweb.xfree86.org/cvsweb/xc/doc/specs/CTEXT/ctext.tbl.ms>. |
| 460 |
|
|
| 461 |
=cut |
=cut |
| 462 |
|
|
| 463 |
|
## TODO: separate mule ctext and xfree86 ctext |
| 464 |
|
|
| 465 |
sub __2022__common ($) { |
sub __2022__common ($) { |
| 466 |
my $C = Encode::ISO2022->new_object; |
my $C = Encode::ISO2022->new_object; |
| 467 |
$C->{option}->{designate_to}->{C0}->{default} = -1; |
$C->{option}->{designate_to}->{C0}->{default} = -1; |
| 468 |
$C->{option}->{designate_to}->{C1}->{default} = -1; |
$C->{option}->{designate_to}->{C1}->{default} = -1; |
| 469 |
$C->{option}->{designate_to}->{G94}->{I} = 1; |
$C->{option}->{designate_to}->{G94}->{I} = 1; ## JIS X 0201 Katakana |
| 470 |
$C->{option}->{designate_to}->{G96}->{default} = 1; |
$C->{option}->{designate_to}->{G96}->{default} = 1; |
| 471 |
$C->{option}->{designate_to}->{G96n}->{default} = -1; |
$C->{option}->{designate_to}->{G96n}->{default} = -1; |
| 472 |
for my $t (qw/G94 G96 G94n/) { |
for my $t (qw/G94 G96 G94n/) { |
| 473 |
for (0x30..0x3F) { |
for (0x30..0x3F) { |
| 474 |
my $F = chr $_; |
my $F = chr $_; |
| 475 |
$C->{option}->{designate_to}->{$t}->{$F} = -1; |
#$C->{option}->{designate_to}->{$t}->{$F} = -1; |
| 476 |
$C->{option}->{designate_to}->{$t}->{'!'.$F} = -1; |
$C->{option}->{designate_to}->{$t}->{'!'.$F} = -1; |
| 477 |
$C->{option}->{designate_to}->{$t}->{'"'.$F} = -1; |
$C->{option}->{designate_to}->{$t}->{'"'.$F} = -1; |
| 478 |
$C->{option}->{designate_to}->{$t}->{'#'.$F} = -1; |
$C->{option}->{designate_to}->{$t}->{'#'.$F} = -1; |
| 486 |
$C->{option}->{Ginvoke_to_left}->[1] = 0; |
$C->{option}->{Ginvoke_to_left}->[1] = 0; |
| 487 |
$C->{option}->{C1invoke_to_right} = 1; |
$C->{option}->{C1invoke_to_right} = 1; |
| 488 |
$C->{option}->{reset}->{Ginvoke} = 0; |
$C->{option}->{reset}->{Ginvoke} = 0; |
| 489 |
|
$C->{option}->{use_revision} = 0; |
| 490 |
|
## XFree86 extension |
| 491 |
|
$C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = 0; ## JIS X 0208-1990 |
| 492 |
|
$C->{option}->{designate_to}->{coding_system}->{"\x40"} = 1; ## ISO/IEC 2022 |
| 493 |
|
$C->{option}->{designate_to}->{coding_system}->{"\x47"} = 1; ## UTF-8 |
| 494 |
$C; |
$C; |
| 495 |
} |
} |
| 496 |
sub __2022_decode ($) { |
sub __2022_decode ($) { |
| 499 |
$C->{G1} = $Encode::ISO2022::CHARSET{G96}->{A}; ## ISO/IEC 8859-1 |
$C->{G1} = $Encode::ISO2022::CHARSET{G96}->{A}; ## ISO/IEC 8859-1 |
| 500 |
$C; |
$C; |
| 501 |
} |
} |
| 502 |
|
sub __encode_map ($) { |
| 503 |
|
[qw/ucs_to_ascii ucs_to_isoiec8859_1 ucs_to_isoiec8859_2 ucs_to_isoiec8859_3 ucs_to_isoiec8859_4 ucs_to_isoiec8859_5 ucs_to_isoiec8859_6 ucs_to_isoiec8859_7 ucs_to_isoiec8859_8 ucs_to_isoiec8859_9 ucs_to_gb2312_1980 ucs_to_jisx0208_1983 ucs_to_ksx1001_1992 ucs_to_jisx0212_1990 ucs_to_jisx0201_latin ucs_to_jisx0201_katakana/]; |
| 504 |
|
} |
| 505 |
|
sub __decode_map ($) { |
| 506 |
|
[qw/isoiec8859_2_to_ucs isoiec8859_3_to_ucs isoiec8859_4_to_ucs isoiec8859_5_to_ucs isoiec8859_6_to_ucs isoiec8859_7_to_ucs isoiec8859_8_to_ucs isoiec8859_9_to_ucs gb2312_1980_to_ucs jisx0208_1983_to_ucs ksx1001_1992_to_ucs jisx0212_1990_to_ucs/]; |
| 507 |
|
} |
| 508 |
|
|
| 509 |
|
|
| 510 |
1; |
1; |