/[pub]/test/oldencodeutils/lib/Encode/ISO2022/SevenBit.pm
Suika

Diff of /test/oldencodeutils/lib/Encode/ISO2022/SevenBit.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7 by wakaba, Mon Sep 23 10:36:03 2002 UTC revision 1.9 by wakaba, Sat Oct 5 05:01:24 2002 UTC
# Line 22  require Encode::ISO2022; Line 22  require Encode::ISO2022;
22  sub encode ($$;$) {  sub encode ($$;$) {
23    my ($obj, $str, $chk) = @_;    my ($obj, $str, $chk) = @_;
24    $_[1] = '' if $chk;    $_[1] = '' if $chk;
25      if (!defined $obj->{_encode_mapping} || $obj->{_encode_mapping}) {
26        require Encode::Table;
27        $str = Encode::Table::convert ($str, $obj->__encode_map,
28          -autoload => defined $obj->{_encode_mapping_autoload} ?
29                       $obj->{_encode_mapping_autoload} : 1);
30      }
31    $str = &Encode::ISO2022::internal_to_iso2022 ($str, $obj->__2022_encode);    $str = &Encode::ISO2022::internal_to_iso2022 ($str, $obj->__2022_encode);
32    return $str;    $str;
33  }  }
34    
35  sub decode ($$;$) {  sub decode ($$;$) {
36    my ($obj, $str, $chk) = @_;    my ($obj, $str, $chk) = @_;
37    $_[1] = '' if $chk;    $_[1] = '' if $chk;
38    return &Encode::ISO2022::iso2022_to_internal ($str, $obj->__2022_decode);    $str = &Encode::ISO2022::iso2022_to_internal ($str, $obj->__2022_decode);
39      if (!defined $obj->{_decode_mapping} || $obj->{_decode_mapping}) {
40        require Encode::Table;
41        $str = Encode::Table::convert ($str, $obj->__decode_map,
42          -autoload => defined $obj->{_decode_mapping_autoload} ?
43                       $obj->{_decode_mapping_autoload} : 1);
44      }
45      $str;
46  }  }
47    
48  =item iso-2022-7bit  =item iso-2022-7bit
# Line 57  sub __2022_decode ($) { Line 70  sub __2022_decode ($) {
70        
71    $C;    $C;
72  }  }
73    sub __encode_map ($) {
74      [];
75    }
76    sub __decode_map ($) {
77      [];
78    }
79    
80  package Encode::ISO2022::SevenBit::JP;  package Encode::ISO2022::SevenBit::JP;
81  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 96  sub __2022_encode ($) { Line 115  sub __2022_encode ($) {
115    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set
116    $C;    $C;
117  }  }
118    sub __encode_map ($) {
119      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0208_1990 ucs_to_jisx0208_1978 ucs_to_jisx0201_latin/];
120    }
121    sub __decode_map ($) {
122      [qw/jisx0208_1983_to_ucs jisx0208_1990_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
123    }
124    
125  package Encode::ISO2022::SevenBit::JP1978IRV;  package Encode::ISO2022::SevenBit::JP1978IRV;
126  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 120  sub __2022_encode ($) { Line 145  sub __2022_encode ($) {
145    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990
146    $C;    $C;
147  }  }
148    sub __encode_map ($) {
149      [qw/ucs_to_ascii ucs_to_jisx0208_1978 ucs_to_jisx0208_1983 ucs_to_jisx0208_1990 ucs_to_jisx0201_latin/];
150    }
151    sub __decode_map ($) {
152      [qw/jisx0208_1983_to_ucs jisx0208_1990_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
153    }
154    
155  package Encode::ISO2022::SevenBit::JP1;  package Encode::ISO2022::SevenBit::JP1;
156  use vars qw/@ISA/;  use vars qw/@ISA/;
157  push @ISA, 'Encode::ISO2022::SevenBit::JP';  push @ISA, 'Encode::ISO2022::SevenBit::JP';
158  __PACKAGE__->Define (qw/iso-2022-jp-1/);  __PACKAGE__->Define (qw/iso-2022-jp-1 iso2022jp-1/);
159    
160  =item iso-2022-jp-1  =item iso-2022-jp-1
161    
162  ISO/IEC 2022 based 7-bit encoding for Japanese,  ISO/IEC 2022 based 7-bit encoding for Japanese,
163  defined by RFC 2237  defined by RFC 2237.  (Alias: iso2022jp-1)
164    
165  =cut  =cut
166    
# Line 139  sub __2022__common ($) { Line 170  sub __2022__common ($) {
170    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990
171    $C;    $C;
172  }  }
173    sub __encode_map ($) {
174      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0212_1990 ucs_to_jisx0208_1978 ucs_to_jisx0201_latin/];
175    }
176    sub __decode_map ($) {
177      [qw/jisx0208_1983_to_ucs jisx0212_1990_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
178    }
179    
180  package Encode::ISO2022::SevenBit::JP3;  package Encode::ISO2022::SevenBit::JP3;
181  use vars qw/@ISA/;  use vars qw/@ISA/;
182  push @ISA, 'Encode::ISO2022::SevenBit::JP';  push @ISA, 'Encode::ISO2022::SevenBit::JP';
183  __PACKAGE__->Define (qw/iso-2022-jp-3 x-iso-2022-jp-3  __PACKAGE__->Define (qw/iso-2022-jp-3 x-iso-2022-jp-3 iso2022jp-3
184   jis0213   iso-2022-jp-3-compatible iso-2022-jp-3-strict/);   jis0213/);
185    
186  =item iso-2022-jp-3  =item iso-2022-jp-3
187    
188  ISO/IEC 2022 based 7-bit encoding for Japanese,  ISO/IEC 2022 based 7-bit encoding for Japanese,
189  defined by JIS X 0213:2000 Appendix 2.  defined by JIS X 0213:2000 Appendix 2.
190  (Alias: x-iso-2022-jp-3, jis0213)  (Alias: x-iso-2022-jp-3, iso2022jp-3, jis0213)
   
 =item iso-2022-jp-3-compatible  
   
 ISO/IEC 2022 based 7-bit encoding for Japanese  
   
 =item iso-2022-jp-3-strict  
   
 ISO/IEC 2022 based 7-bit encoding for Japanese.  
 A subset of iso-2022-jp-3.  
191    
192  =cut  =cut
193    
# Line 173  sub __2022__common ($) { Line 201  sub __2022__common ($) {
201    $C->{option}->{designate_to}->{G94n}->{"\x50"} = 0;   ## JIS X 0213:2000 plane 2    $C->{option}->{designate_to}->{G94n}->{"\x50"} = 0;   ## JIS X 0213:2000 plane 2
202    $C;    $C;
203  }  }
204    sub __encode_map ($) {
205      [qw/ucs_to_ascii ucs_to_jisx0213_2000_1 ucs_to_jisx0213_2000_2/];
206    }
207    sub __decode_map ($) {
208      [qw/jisx0213_2000_1_to_ucs jisx0212_0213_to_ucs jisx0208_1983_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
209    }
210    
211    package Encode::ISO2022::SevenBit::JP3Strict;
212    use vars qw/@ISA/;
213    push @ISA, 'Encode::ISO2022::SevenBit::JP3';
214    __PACKAGE__->Define (qw/iso-2022-jp-3-strict/);
215    
216    =item iso-2022-jp-3-strict
217    
218    ISO/IEC 2022 based 7-bit encoding for Japanese.
219    A subset of iso-2022-jp-3.
220    See <http://www.m17n.org/m17n2000_all_but_registration/proceedings/kawabata/jisx0213.html>.
221    
222    =cut
223    
224    sub __encode_map ($) {
225      [qw/ucs_to_ascii ucs_to_jisx0213_2000_1_esc_24_42 ucs_to_jisx0213_2000_1 ucs_to_jisx0213_2000_2/];
226    }
227    
228    package Encode::ISO2022::SevenBit::JP3Compatible;
229    use vars qw/@ISA/;
230    push @ISA, 'Encode::ISO2022::SevenBit::JP3';
231    __PACKAGE__->Define (qw/iso-2022-jp-3-compatible/);
232    
233    =item iso-2022-jp-3-compatible
234    
235    ISO/IEC 2022 based 7-bit encoding for Japanese.
236    See <http://www.m17n.org/m17n2000_all_but_registration/proceedings/kawabata/jisx0213.html>.
237    
238    =cut
239    
240    sub __encode_map ($) {
241      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0213_2000_1 ucs_to_jisx0213_2000_2/];
242    }
243    
244  package Encode::ISO2022::SevenBit::JP3Plane1;  package Encode::ISO2022::SevenBit::JP3Plane1;
245  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 191  sub __2022__common ($) { Line 258  sub __2022__common ($) {
258    $C->{option}->{designate_to}->{G94n}->{"\x50"} = -1;  ## JIS X 0213:2000 plane 2    $C->{option}->{designate_to}->{G94n}->{"\x50"} = -1;  ## JIS X 0213:2000 plane 2
259    $C;    $C;
260  }  }
261    sub __encode_map ($) {
262      [qw/ucs_to_ascii ucs_to_jisx0213_2000_1/];
263    }
264    sub __decode_map ($) {
265      [qw/jisx0213_2000_1_to_ucs jisx0208_1983_to_ucs/];
266    }
267    
268  package Encode::ISO2022::SevenBit::SS2;  package Encode::ISO2022::SevenBit::SS2;
269  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 216  sub __2022__common ($) { Line 289  sub __2022__common ($) {
289  package Encode::ISO2022::SevenBit::JP2;  package Encode::ISO2022::SevenBit::JP2;
290  use vars qw/@ISA/;  use vars qw/@ISA/;
291  push @ISA, 'Encode::ISO2022::SevenBit::SS2';  push @ISA, 'Encode::ISO2022::SevenBit::SS2';
292  __PACKAGE__->Define (qw/iso-2022-jp-2 csiso2022jp2/);  __PACKAGE__->Define (qw/iso-2022-jp-2 csiso2022jp2 iso2022jp-2/);
293    
294  =item iso-2022-jp-2  =item iso-2022-jp-2
295    
296  ISO/IEC 2022 based 7-bit multilingual encoding, defined by  ISO/IEC 2022 based 7-bit multilingual encoding, defined by
297  RFC 1554.  A subset of iso-2022-7bit-ss2.  (Alias: csISO2022JP2 (IANA))  RFC 1554.  A subset of iso-2022-7bit-ss2.  (Alias: iso2022jp-2,
298    csISO2022JP2 (IANA))
299    
300  =cut  =cut
301    
# Line 231  sub __2022__common ($) { Line 305  sub __2022__common ($) {
305    $C->{option}->{designate_to}->{C0}->{"\x40"} = 0;    $C->{option}->{designate_to}->{C0}->{"\x40"} = 0;
306    $C->{option}->{designate_to}->{C1}->{default} = -1;    $C->{option}->{designate_to}->{C1}->{default} = -1;
307    $C->{C1} = $Encode::ISO2022::CHARSET{C1}->{"\x47"};   ## Minimum C1    $C->{C1} = $Encode::ISO2022::CHARSET{C1}->{"\x47"};   ## Minimum C1
308    $C->{option}->{designate_to}->{C1}->{"\x47"} = 1;    $C->{option}->{designate_to}->{C1}->{"\x47"} = -1;
309    $C->{option}->{designate_to}->{G94}->{default} = -1;    $C->{option}->{designate_to}->{G94}->{default} = -1;
310    $C->{option}->{designate_to}->{G94n}->{default} = -1;    $C->{option}->{designate_to}->{G94n}->{default} = -1;
311    $C->{option}->{designate_to}->{G96}->{default} = -1;    $C->{option}->{designate_to}->{G96}->{default} = -1;
312    $C->{option}->{designate_to}->{G96n}->{default} = -1;    $C->{option}->{designate_to}->{G96n}->{default} = -1;
313    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman
314    for ("\x40", "\x41", "\x42", "\x43") {    for ("\x40", "\x41", "\x42", "\x43", "\x44") {
315      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;
316    }    }
317    for ("\x41", "\x46") {    for ("\x41", "\x46") {
# Line 252  sub __2022_encode ($) { Line 326  sub __2022_encode ($) {
326    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set
327    $C;    $C;
328  }  }
329    sub __encode_map ($) {
330      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0212_1990 ucs_to_gb2312_1980 ucs_to_ksx1001_1992 ucs_to_jisx0208_1978 ucs_to_isoiec8859_1 ucs_to_isoiec8859_7 ucs_to_jisx0201_latin/];
331    }
332    sub __decode_map ($) {
333      [qw/jisx0208_1983_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs gb2312_1980_to_ucs ksx1001_1992_to_ucs isoiec8859_7_to_ucs/];
334    }
335    
336  package Encode::ISO2022::SevenBit::Lock;  package Encode::ISO2022::SevenBit::Lock;
337  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 341  sub __2022_decode ($) { Line 421  sub __2022_decode ($) {
421    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001
422    $C;    $C;
423  }  }
424    sub __encode_map ($) {
425      [qw/ucs_to_ascii ksx1001_1992_to_ucs/];
426    }
427    sub __decode_map ($) {
428      [qw/ksx1001_1992_to_ucs/];
429    }
430    
431  package Encode::ISO2022::SevenBit::INT1;  package Encode::ISO2022::SevenBit::INT1;
432  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 364  sub __2022__common ($) { Line 450  sub __2022__common ($) {
450    $C->{option}->{designate_to}->{G96}->{default} = -1;    $C->{option}->{designate_to}->{G96}->{default} = -1;
451    $C->{option}->{designate_to}->{G96n}->{default} = -1;    $C->{option}->{designate_to}->{G96n}->{default} = -1;
452    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman
453    for ("\x40", "\x41", "\x42") {    for ("\x40", "\x41", "\x42", "\x44") {
454      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;
455    }    }
456    $C->{option}->{designate_to}->{G94n}->{"\x43"} = 1;   ## KS X 1001    $C->{option}->{designate_to}->{G94n}->{"\x43"} = 1;   ## KS X 1001
# Line 385  sub __2022_decode ($) { Line 471  sub __2022_decode ($) {
471    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001
472    $C;    $C;
473  }  }
474    sub __encode_map ($) {
475      [qw/ucs_to_ascii ucs_to_isoiec8859_1 ucs_to_jisx0208_1983 ucs_to_jisx0212_1990 ucs_to_gb2312_1980 ucs_to_ksx1001_1992 ucs_to_isoiec8859_7 ucs_to_jisx0208_1978 ucs_to_jisx0201_latin/];
476    }
477    sub __decode_map ($) {
478      [qw/jisx0208_1983_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs gb2312_1980_to_ucs ksx1001_1992_to_ucs isoiec8859_7_to_ucs/];
479    }
480    
481  package Encode::ISO2022::SevenBit::LockSS2;  package Encode::ISO2022::SevenBit::LockSS2;
482  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 501  __END__ Line 593  __END__
593    
594  =back  =back
595    
596    =head1 AUTHORS
597    
598    Wakaba <w@suika.fam.cx>
599    
600    Nanashi-san
601    
602  =head1 LICENSE  =head1 LICENSE
603    
604  Copyright 2002 Wakaba <w@suika.fam.cx>  Copyright 2002 AUTHORS
605    
606  This library is free software; you can redistribute it  This library is free software; you can redistribute it
607  and/or modify it under the same terms as Perl itself.  and/or modify it under the same terms as Perl itself.

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.9

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24