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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.7 - (hide annotations) (download)
Fri Nov 8 10:29:50 2002 UTC (24 years ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.6: +2 -2 lines
FILE REMOVED
2002-11-08  Wakaba <w@suika.fam.cx>

	* JIS.esr: New files.
	* JIS.pm: Removed.
	* Makefile: Updated.

1 wakaba 1.1 =head1 NAME
2    
3     C<Encode::ISO2022::JIS> --- Encode and decode of ISO/IEC 2022
4     based encodings defined by JIS (Japan Industrial Standard),
5     other than RFC 1468 coded representation, C<ISO-2022-JP-3>
6     coded representations and C<EUC-JISX0213> coded representations
7    
8     =head1 ENCODINGS
9    
10     =over 4
11    
12     =cut
13    
14     require 5.7.3;
15     use strict;
16     package Encode::ISO2022::JIS;
17     use vars qw($VERSION);
18 wakaba 1.7 $VERSION=do{my @r=(q$Revision: 1.6 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
19 wakaba 1.1 use base qw(Encode::Encoding);
20     require Encode::ISO2022;
21    
22     sub encode ($$;$) {
23     my ($obj, $str, $chk) = @_;
24     $_[1] = '' if $chk;
25     $str = &Encode::ISO2022::internal_to_iso2022 ($str, $obj->__2022_encode);
26     return $str;
27     }
28    
29     sub decode ($$;$) {
30     my ($obj, $str, $chk) = @_;
31     $_[1] = '' if $chk;
32     return &Encode::ISO2022::iso2022_to_internal ($str, $obj->__2022_decode);
33     }
34    
35     sub __2022__common ($) {
36     my $C = Encode::ISO2022->new_object;
37     $C->{option}->{designate_to}->{C0}->{default} = -1;
38     $C->{option}->{designate_to}->{C1}->{default} = -1;
39     $C->{option}->{designate_to}->{G94}->{default} = -1;
40     $C->{option}->{designate_to}->{G94}->{B} = -1;
41     $C->{option}->{designate_to}->{G94n}->{default} = -1;
42     $C->{option}->{designate_to}->{G96}->{default} = -1;
43     $C->{option}->{designate_to}->{G96n}->{default} = -1;
44     $C->{G1} = $Encode::ISO2022::CHARSET{G94}->{"\x7E"}; ## empty
45     $C->{option}->{reset}->{Gdesignation} = 0;
46     $C->{option}->{reset}->{Ginvoke} = 0;
47     $C->{option}->{undef_char} = ["\x22\x2E", ## GETA MARK
48     {type => 'G94n', charset => 'B', revision => '@'}];
49     $C;
50     }
51     sub __2022_encode ($) {
52     my $C = shift->__2022__common;
53     $C;
54     }
55     sub __2022_decode ($) {
56     my $C = shift->__2022__common;
57     $C;
58     }
59    
60 wakaba 1.5 sub __clone ($) {
61     my $self = shift;
62     bless {%$self}, ref $self;
63     };
64    
65 wakaba 1.2 package Encode::ISO2022::JIS::JISX0201Latin7;
66 wakaba 1.1 use vars qw/@ISA/;
67     push @ISA, 'Encode::ISO2022::JIS';
68     __PACKAGE__->Define (qw/jisx0201-1997-latin-7bit JIS_C6220-1969-ro
69 wakaba 1.4 iso-ir-14 ir14 jp ISO646-JP 646-jp csISO14JISC6220ro/);
70 wakaba 1.1
71     =item jisx0201-1997-latin-7bit
72    
73     JIS X 0201:1997 6.1 7-bit code for Latin.
74     (Alias: C<JIS_C6220-1969-ro> (RFC 1345), C<iso-ir-14> (RFC 1345),
75 wakaba 1.4 C<ir14>, C<jp> (RFC 1345), C<ISO646-JP> (RFC 1345), C<646-jp>,
76     C<csISO14JISC6220ro> (IANA))
77 wakaba 1.1
78     =cut
79    
80     sub __2022__common ($) {
81     my $C = shift->SUPER::__2022__common;
82     $C->{bit} = 7;
83     $C->{G0} = $Encode::ISO2022::CHARSET{G94}->{J}; ## JIS X 0201:1997 Latin set
84 wakaba 1.4 $C->{G1} = $C->{G0}; $C->{G2} = $C->{G1}; ## RFC 1345 (not in JIS)
85     $C->{G3} = $C->{G1};
86 wakaba 1.1 $C->{option}->{undef_char} = ["\x3F", {type => 'G94', charset => 'J'}];
87     $C;
88     }
89    
90 wakaba 1.2 package Encode::ISO2022::JIS::JISX0201Katakana7;
91 wakaba 1.1 use vars qw/@ISA/;
92     push @ISA, 'Encode::ISO2022::JIS';
93     __PACKAGE__->Define (qw/jisx0201-1997-katakana-7bit JIS_C6220-1969-jp JIS_C6220-1969
94 wakaba 1.4 iso-ir-13 ir13 katakana x0201-7 csISO13JISC6220jp/);
95 wakaba 1.1
96     =item jisx0201-1997-katakana-7bit
97    
98     JIS X 0201:1997 6.2 7-bit code for Katakana
99     (Alias: JIS_C6220-1969-jp (RFC 1345), JIS_C6220-1969 (RFC 1345),
100 wakaba 1.4 iso-ir-13 (RFC 1345), ir13, katakana (RFC 1345), x0201-7 (RFC 1345),
101 wakaba 1.1 csISO13JISC6220jp (IANA))
102    
103     =cut
104    
105     sub __2022__common ($) {
106     my $C = shift->SUPER::__2022__common;
107     $C->{bit} = 7;
108     $C->{G0} = $Encode::ISO2022::CHARSET{G94}->{I}; ## JIS X 0201:1997 Katakana set
109 wakaba 1.4 $C->{G1} = $C->{G0}; $C->{G2} = $C->{G1}; ## RFC 1345 (not in JIS)
110     $C->{G3} = $C->{G1};
111 wakaba 1.1 $C->{option}->{undef_char} = ["\x25", {type => 'G94', charset => 'I'}];
112     $C;
113     }
114    
115 wakaba 1.2 package Encode::ISO2022::JIS::JISX0201LatinKatakana7;
116 wakaba 1.1 use vars qw/@ISA/;
117     push @ISA, 'Encode::ISO2022::JIS';
118     __PACKAGE__->Define (qw/jisx0201-1997-latin-katakana-7bit
119     JIS_X0201 X0201 csHalfWidthKatakana/);
120    
121     =item jisx0201-1997-latin-katakana-7bit
122    
123     JIS X 0201:1997 6.3 7-bit code for Latin and Katakana
124     (Alias: JIS_X0201 (RFC 1345), X0201 (RFC 1345), csHalfWidthKatakana (IANA))
125    
126     =cut
127    
128     sub __2022__common ($) {
129     my $C = shift->SUPER::__2022__common;
130     $C->{bit} = 7;
131     $C->{G0} = $Encode::ISO2022::CHARSET{G94}->{J}; ## JIS X 0201:1997 Latin set
132     $C->{G1} = $Encode::ISO2022::CHARSET{G94}->{I}; ## JIS X 0201:1997 Katakana set
133     $C->{option}->{Ginvoke_to_left} = [1,1,1,1];
134     $C->{option}->{reset}->{Ginvoke} = 1;
135     ## JIS X 0201:1997 does not specify this limitation.
136     $C->{option}->{undef_char} = ["\x3F", {type => 'G94', charset => 'J'}];
137     $C;
138     }
139     sub __2022_encode ($) {
140     my $C = shift->__2022__common;
141     $C->{GR} = undef;
142     $C;
143     }
144    
145 wakaba 1.2 package Encode::ISO2022::JIS::JISX0201LatinKatakana8;
146 wakaba 1.1 use vars qw/@ISA/;
147     push @ISA, 'Encode::ISO2022::JIS';
148 wakaba 1.6 __PACKAGE__->Define (qw/jisx0201-1997-latin-latin-8bit kana8/);
149 wakaba 1.1
150     =item jisx0201-1997-latin-katakana-8bit
151    
152     JIS X 0208:1997 7.4 8-bit code for Latin and Katakana
153    
154     =cut
155    
156     sub __2022__common ($) {
157     my $C = shift->SUPER::__2022__common;
158     $C->{bit} = 8;
159     $C->{G0} = $Encode::ISO2022::CHARSET{G94}->{J}; ## JIS X 0201:1997 Latin set
160     $C->{G1} = $Encode::ISO2022::CHARSET{G94}->{I}; ## JIS X 0201:1997 Katakana set
161     $C->{option}->{undef_char} = ["\x3F", {type => 'G94', charset => 'J'}];
162 wakaba 1.2 $C->{option}->{C1invoke_to_right} = 1;
163 wakaba 1.1 $C;
164     }
165    
166 wakaba 1.2 package Encode::ISO2022::JIS::JISX0208Kanji7;
167 wakaba 1.1 use vars qw/@ISA/;
168     push @ISA, 'Encode::ISO2022::JIS';
169     __PACKAGE__->Define (qw/jisx0208-1997-kanji-7bit/);
170    
171     =item jisx0208-1997-kanji-7bit
172    
173     JIS X 0208:1997 7.1.1 7-bit code for Kanji
174    
175     =cut
176    
177     sub __2022__common ($) {
178     my $C = shift->SUPER::__2022__common;
179     $C->{bit} = 7;
180     $C->{G0} = $Encode::ISO2022::CHARSET{G94n}->{'B@'}; ## JIS X 0208:1997
181     $C;
182     }
183    
184 wakaba 1.2 package Encode::ISO2022::JIS::JISX0208Kanji8;
185 wakaba 1.1 use vars qw/@ISA/;
186     push @ISA, 'Encode::ISO2022::JIS';
187     __PACKAGE__->Define (qw/jisx0208-1997-kanji-8bit/);
188    
189     =item jisx0208-1997-kanji-8bit
190    
191     JIS X 0208:1997 7.1.2 8-bit code for Kanji
192    
193     =cut
194    
195     sub __2022__common ($) {
196     my $C = shift->SUPER::__2022__common;
197     $C->{bit} = 8;
198     $C->{G0} = $Encode::ISO2022::CHARSET{G94n}->{'B@'}; ## JIS X 0208:1997
199     $C->{G1} = $Encode::ISO2022::CHARSET{G94}->{"\x7E"}; ## empty
200     $C->{option}->{C1invoke_to_right} = 1;
201     $C;
202     }
203    
204 wakaba 1.2 package Encode::ISO2022::JIS::JISX0208IRVKanji7;
205 wakaba 1.1 use vars qw/@ISA/;
206     push @ISA, 'Encode::ISO2022::JIS';
207     __PACKAGE__->Define (qw/jisx0208-1997-irv-kanji-7bit/);
208    
209     =item jisx0208-1997-irv-kanji-7bit
210    
211     JIS X 0208:1997 7.2.1 7-bit code for IRV and Kanji
212    
213     =cut
214    
215     sub __2022__common ($) {
216     my $C = shift->SUPER::__2022__common;
217     $C->{bit} = 7;
218     $C->{G0} = $Encode::ISO2022::CHARSET{G94}->{B}; ## ISO/IEC 646 IRV
219