/[suikacvs]/test/oldencodeutils/lib/Encode/ISO2022/EightBit.pm
Suika

Contents of /test/oldencodeutils/lib/Encode/ISO2022/EightBit.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations) (download)
Wed Nov 6 09:29:16 2002 UTC (24 years ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.5: +2 -2 lines
FILE REMOVED
2002-11-06  Wakaba <w@suika.fam.cx>

	* SevenBit.esr, EightBit.esr, JUNET.esr,
	JUNETCompatible.esr, EUCJA.esr, EUCJACompatible.esr,
	EUCKR.esr, EUCZH.esr: New files.
	* SevenBit.pm, EightBit.pm: Removed.
	(Now these modules are auto-generated from *.esr files.)

1 wakaba 1.1 =head1 NAME
2    
3     Encode::ISO2022::Eight --- Encode and decode of 8-bit ISO/IEC 2022
4     based encodings (most of them are also known as EUCs)
5    
6     =head1 ENCODINGS
7    
8     =over 4
9    
10     =cut
11    
12     require 5.7.3;
13     use strict;
14     package Encode::ISO2022::EightBit;
15     use vars qw($VERSION);
16 wakaba 1.6 $VERSION=do{my @r=(q$Revision: 1.5 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
17 wakaba 1.1 use base qw(Encode::Encoding);
18     require Encode::ISO2022;
19    
20     sub encode ($$;$) {
21     my ($obj, $str, $chk) = @_;
22     $_[1] = '' if $chk;
23 wakaba 1.5 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 wakaba 1.1 $str = &Encode::ISO2022::internal_to_iso2022 ($str, $obj->__2022_encode);
30 wakaba 1.5 $str;
31 wakaba 1.1 }
32    
33     sub decode ($$;$) {
34     my ($obj, $str, $chk) = @_;
35     $_[1] = '' if $chk;
36 wakaba 1.5 $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 wakaba 1.1 }
45    
46     ## prototype for EUCs
47    
48     sub __2022__common ($) {
49     my $C = Encode::ISO2022->new_object;
50     $C->{bit} = 8;
51     $C->{option}->{designate_to}->{C0}->{default} = -1;
52     $C->{option}->{designate_to}->{C0}->{"\x40"} = 0;
53     $C->{option}->{designate_to}->{C1}->{default} = -1;
54     $C->{option}->{designate_to}->{G94}->{default} = -1;
55     $C->{option}->{designate_to}->{G94n}->{default} = -1;
56     $C->{option}->{designate_to}->{G96}->{default} = -1;
57     $C->{option}->{designate_to}->{G96n}->{default} = -1;
58     $C->{option}->{Ginvoke_to_left} = [1,0,0,0];
59     $C->{option}->{Ginvoke_by_single_shift} = [0,0,1,1];
60     $C->{option}->{C1invoke_to_right} = 1;
61     $C->{option}->{reset}->{Gdesignation} = 0;
62     $C->{option}->{reset}->{Ginvoke} = 0;
63     $C;
64     }
65     sub __2022_encode ($) {
66     my $C = shift->__2022__common;
67     $C;
68     }
69     sub __2022_decode ($) {
70     my $C = shift->__2022__common;
71     $C;
72     }
73 wakaba 1.5 sub __encode_map ($) {
74     [];
75     }
76     sub __decode_map ($) {
77     [];
78     }
79 wakaba 1.1
80 wakaba 1.5 sub __clone ($) {
81     my $self = shift;
82     bless {%$self}, ref $self;
83     };
84    
85     package Encode::ISO2022::EightBit::EUCJapanOldDefinition;
86 wakaba 1.1 use vars qw/@ISA/;
87     push @ISA, 'Encode::ISO2022::EightBit';
88 wakaba 1.5 __PACKAGE__->Define (qw/ujis x-ujis euc-jp-1983 euc-japan-1983 deckanji/);
89 wakaba 1.1
90     =item ujis
91    
92 wakaba 1.5 EUC (ISO/IEC 2022 based 8-bit encoding) for Japanese
93     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 wakaba 1.1
97     =cut
98    
99     sub __2022__common ($) {
100     my $C = shift->SUPER::__2022__common;
101     $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{B}; ## JIS X 0208-1983
102     $C->{G2} = $Encode::ISO2022::CHARSET{G94}->{I}; ## JIS X 0201 Katakana
103     $C->{G3} = $Encode::ISO2022::CHARSET{G94n}->{' @'}; ## Gaiji (undefined)
104     $C;
105     }
106 wakaba 1.5 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 wakaba 1.1
113     package Encode::ISO2022::EightBit::EUCJapan;
114     use vars qw/@ISA/;
115     push @ISA, 'Encode::ISO2022::EightBit';
116 wakaba 1.5 __PACKAGE__->Define (qw/euc-japan euc-japan-1990 euc-japan-1997 euc-jp euc-jp-1990
117     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 wakaba 1.1