/[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.8 by wakaba, Fri Oct 4 23:58:04 2002 UTC revision 1.10 by wakaba, Sat Oct 12 07:27:01 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    sub __clone ($) {
49      my $self = shift;
50      bless {%$self}, ref $self;
51    };
52    
53  =item iso-2022-7bit  =item iso-2022-7bit
54    
55  ISO/IEC 2022 based 7-bit encoding using only G0  ISO/IEC 2022 based 7-bit encoding using only G0
# Line 57  sub __2022_decode ($) { Line 75  sub __2022_decode ($) {
75        
76    $C;    $C;
77  }  }
78    sub __encode_map ($) {
79      [];
80    }
81    sub __decode_map ($) {
82      [];
83    }
84    
85  package Encode::ISO2022::SevenBit::JP;  package Encode::ISO2022::SevenBit::JP;
86  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 96  sub __2022_encode ($) { Line 120  sub __2022_encode ($) {
120    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set
121    $C;    $C;
122  }  }
123    sub __encode_map ($) {
124      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0208_1990 ucs_to_jisx0208_1978 ucs_to_jisx0201_latin/];
125    }
126    sub __decode_map ($) {
127      [qw/jisx0208_1983_to_ucs jisx0208_1990_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
128    }
129    
130  package Encode::ISO2022::SevenBit::JP1978IRV;  package Encode::ISO2022::SevenBit::JP1978IRV;
131  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 120  sub __2022_encode ($) { Line 150  sub __2022_encode ($) {
150    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990
151    $C;    $C;
152  }  }
153    sub __encode_map ($) {
154      [qw/ucs_to_ascii ucs_to_jisx0208_1978 ucs_to_jisx0201_latin/];
155    }
156    sub __decode_map ($) {
157      [qw/jisx0208_1983_to_ucs jisx0208_1990_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
158    }
159    
160  package Encode::ISO2022::SevenBit::JP1;  package Encode::ISO2022::SevenBit::JP1;
161  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 139  sub __2022__common ($) { Line 175  sub __2022__common ($) {
175    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990    $C->{option}->{designate_to}->{G94n}->{"\x42\x40"} = -1;      ## JIS X 0208-1990
176    $C;    $C;
177  }  }
178    sub __encode_map ($) {
179      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0212_1990 ucs_to_jisx0208_1978 ucs_to_jisx0201_latin/];
180    }
181    sub __decode_map ($) {
182      [qw/jisx0208_1983_to_ucs jisx0212_1990_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
183    }
184    
185  package Encode::ISO2022::SevenBit::JP3;  package Encode::ISO2022::SevenBit::JP3;
186  use vars qw/@ISA/;  use vars qw/@ISA/;
187  push @ISA, 'Encode::ISO2022::SevenBit::JP';  push @ISA, 'Encode::ISO2022::SevenBit::JP';
188  __PACKAGE__->Define (qw/iso-2022-jp-3 x-iso-2022-jp-3 iso2022jp-3  __PACKAGE__->Define (qw/iso-2022-jp-3 x-iso-2022-jp-3 iso2022jp-3
189   jis0213   iso-2022-jp-3-compatible iso-2022-jp-3-strict/);   jis0213/);
190    
191  =item iso-2022-jp-3  =item iso-2022-jp-3
192    
# Line 152  ISO/IEC 2022 based 7-bit encoding for Ja Line 194  ISO/IEC 2022 based 7-bit encoding for Ja
194  defined by JIS X 0213:2000 Appendix 2.  defined by JIS X 0213:2000 Appendix 2.
195  (Alias: x-iso-2022-jp-3, iso2022jp-3, jis0213)  (Alias: x-iso-2022-jp-3, iso2022jp-3, jis0213)
196    
 =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.  
   
197  =cut  =cut
198    
199  sub __2022__common ($) {  sub __2022__common ($) {
# Line 173  sub __2022__common ($) { Line 206  sub __2022__common ($) {
206    $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
207    $C;    $C;
208  }  }
209    sub __encode_map ($) {
210      [qw/ucs_to_ascii ucs_to_jisx0213_2000_1 ucs_to_jisx0213_2000_2/];
211    }
212    sub __decode_map ($) {
213      [qw/jisx0213_2000_1_to_ucs jisx0212_0213_to_ucs jisx0208_1983_to_ucs jisx0208_1978_to_ucs jisx0201_latin_to_ucs/];
214    }
215    
216    package Encode::ISO2022::SevenBit::JP3Strict;
217    use vars qw/@ISA/;
218    push @ISA, 'Encode::ISO2022::SevenBit::JP3';
219    __PACKAGE__->Define (qw/iso-2022-jp-3-strict/);
220    
221    =item iso-2022-jp-3-strict
222    
223    ISO/IEC 2022 based 7-bit encoding for Japanese.
224    A subset of iso-2022-jp-3.
225    See <http://www.m17n.org/m17n2000_all_but_registration/proceedings/kawabata/jisx0213.html>.
226    
227    =cut
228    
229    sub __encode_map ($) {
230      [qw/ucs_to_ascii ucs_to_jisx0213_2000_1_esc_24_42 ucs_to_jisx0213_2000_1 ucs_to_jisx0213_2000_2/];
231    }
232    
233    package Encode::ISO2022::SevenBit::JP3Compatible;
234    use vars qw/@ISA/;
235    push @ISA, 'Encode::ISO2022::SevenBit::JP3';
236    __PACKAGE__->Define (qw/iso-2022-jp-3-compatible/);
237    
238    =item iso-2022-jp-3-compatible
239    
240    ISO/IEC 2022 based 7-bit encoding for Japanese.
241    See <http://www.m17n.org/m17n2000_all_but_registration/proceedings/kawabata/jisx0213.html>.
242    
243    =cut
244    
245    sub __encode_map ($) {
246      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_jisx0213_2000_1 ucs_to_jisx0213_2000_2/];
247    }
248    
249  package Encode::ISO2022::SevenBit::JP3Plane1;  package Encode::ISO2022::SevenBit::JP3Plane1;
250  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 191  sub __2022__common ($) { Line 263  sub __2022__common ($) {
263    $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
264    $C;    $C;
265  }  }
266    sub __encode_map ($) {
267      [qw/ucs_to_ascii ucs_to_jisx0213_2000_1/];
268    }
269    sub __decode_map ($) {
270      [qw/jisx0213_2000_1_to_ucs jisx0208_1983_to_ucs/];
271    }
272    
273  package Encode::ISO2022::SevenBit::SS2;  package Encode::ISO2022::SevenBit::SS2;
274  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 232  sub __2022__common ($) { Line 310  sub __2022__common ($) {
310    $C->{option}->{designate_to}->{C0}->{"\x40"} = 0;    $C->{option}->{designate_to}->{C0}->{"\x40"} = 0;
311    $C->{option}->{designate_to}->{C1}->{default} = -1;    $C->{option}->{designate_to}->{C1}->{default} = -1;
312    $C->{C1} = $Encode::ISO2022::CHARSET{C1}->{"\x47"};   ## Minimum C1    $C->{C1} = $Encode::ISO2022::CHARSET{C1}->{"\x47"};   ## Minimum C1
313    $C->{option}->{designate_to}->{C1}->{"\x47"} = 1;    $C->{option}->{designate_to}->{C1}->{"\x47"} = -1;
314    $C->{option}->{designate_to}->{G94}->{default} = -1;    $C->{option}->{designate_to}->{G94}->{default} = -1;
315    $C->{option}->{designate_to}->{G94n}->{default} = -1;    $C->{option}->{designate_to}->{G94n}->{default} = -1;
316    $C->{option}->{designate_to}->{G96}->{default} = -1;    $C->{option}->{designate_to}->{G96}->{default} = -1;
317    $C->{option}->{designate_to}->{G96n}->{default} = -1;    $C->{option}->{designate_to}->{G96n}->{default} = -1;
318    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman
319    for ("\x40", "\x41", "\x42", "\x43") {    for ("\x40", "\x41", "\x42", "\x43", "\x44") {
320      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;
321    }    }
322    for ("\x41", "\x46") {    for ("\x41", "\x46") {
# Line 253  sub __2022_encode ($) { Line 331  sub __2022_encode ($) {
331    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set
332    $C;    $C;
333  }  }
334    sub __encode_map ($) {
335      [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/];
336    }
337    sub __decode_map ($) {
338      [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/];
339    }
340    
341  package Encode::ISO2022::SevenBit::Lock;  package Encode::ISO2022::SevenBit::Lock;
342  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 308  sub __2022_decode ($) { Line 392  sub __2022_decode ($) {
392  package Encode::ISO2022::SevenBit::KR;  package Encode::ISO2022::SevenBit::KR;
393  use vars qw/@ISA/;  use vars qw/@ISA/;
394  push @ISA, 'Encode::ISO2022::SevenBit';  push @ISA, 'Encode::ISO2022::SevenBit';
395  __PACKAGE__->Define (qw/iso-2022-kr korean-iso-7bit csiso2022kr cp50225 kr2022/);  __PACKAGE__->Define (qw/iso-2022-kr korean-iso-7bit csiso2022kr cp50225 kr2022 korean-mail/);
396    
397  =item iso-2022-kr  =item iso-2022-kr
398    
399  An ISO/IEC 2022 based 7-bit encoding for Korean,  An ISO/IEC 2022 based 7-bit encoding for Korean,
400  defined by RFC 1557 (Alias: korean-iso-7bit (emacsen),  defined by RFC 1557 (Alias: korean-iso-7bit (emacsen),
401  csISO2022KR (IANA), CP50225 (M$), KR2022)  csISO2022KR (IANA), CP50225 (M$), KR2022, korean-mail (emacsen))
402    
403  =cut  =cut
404    
# Line 342  sub __2022_decode ($) { Line 426  sub __2022_decode ($) {
426    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001
427    $C;    $C;
428  }  }
429    sub __encode_map ($) {
430      [qw/ucs_to_ascii ksx1001_1992_to_ucs/];
431    }
432    sub __decode_map ($) {
433      [qw/ksx1001_1992_to_ucs/];
434    }
435    
436  package Encode::ISO2022::SevenBit::INT1;  package Encode::ISO2022::SevenBit::INT1;
437  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 365  sub __2022__common ($) { Line 455  sub __2022__common ($) {
455    $C->{option}->{designate_to}->{G96}->{default} = -1;    $C->{option}->{designate_to}->{G96}->{default} = -1;
456    $C->{option}->{designate_to}->{G96n}->{default} = -1;    $C->{option}->{designate_to}->{G96n}->{default} = -1;
457    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman    $C->{option}->{designate_to}->{G94}->{"\x4A"} = 0;    ## JIS X 0201 roman
458    for ("\x40", "\x41", "\x42") {    for ("\x40", "\x41", "\x42", "\x44") {
459      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;      $C->{option}->{designate_to}->{G94n}->{ $_ } = 0;
460    }    }
461    $C->{option}->{designate_to}->{G94n}->{"\x43"} = 1;   ## KS X 1001    $C->{option}->{designate_to}->{G94n}->{"\x43"} = 1;   ## KS X 1001
# Line 386  sub __2022_decode ($) { Line 476  sub __2022_decode ($) {
476    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001    $C->{G1} = $Encode::ISO2022::CHARSET{G94n}->{"\x43"}; ## KS X 1001
477    $C;    $C;
478  }  }
479    sub __encode_map ($) {
480      [qw/ucs_to_ascii ucs_to_jisx0208_1983 ucs_to_gb2312_1980 ucs_to_ksx1001_1992 ucs_to_isoiec8859_1 ucs_to_isoiec8859_7 ucs_to_jisx0212_1990 ucs_to_jisx0208_1978 ucs_to_jisx0201_latin/];
481    }
482    sub __decode_map ($) {
483      [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/];
484    }
485    
486  package Encode::ISO2022::SevenBit::LockSS2;  package Encode::ISO2022::SevenBit::LockSS2;
487  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 459  sub __2022_encode ($) { Line 555  sub __2022_encode ($) {
555    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set    $C->{G1} = $Encode::ISO2022::CHARSET{G96}->{"\x7E"};  ## empty set
556    $C;    $C;
557  }  }
558    sub __encode_map ($) {
559      [qw/ucs_to_ascii ucs_to_gb2312_1980 ucs_to_cns11643_1 ucs_to_cns11643_2/];
560    }
561    sub __decode_map ($) {
562      [qw/gb2312_1980_to_ucs cns11643_1_to_ucs cns11643_2_to_ucs/];
563    }
564    
565  package Encode::ISO2022::SevenBit::CNExt;  package Encode::ISO2022::SevenBit::CNExt;
566  use vars qw/@ISA/;  use vars qw/@ISA/;
# Line 496  sub __2022__common ($) { Line 598  sub __2022__common ($) {
598    $C->{option}->{designate_to}->{G94n}->{P2_1} = 3;     ## CNS 11643 plane 16    $C->{option}->{designate_to}->{G94n}->{P2_1} = 3;     ## CNS 11643 plane 16
599    $C;    $C;
600  }  }
601    sub __encode_map ($) {
602      [qw/ucs_to_ascii ucs_to_gb2312_1980 ucs_to_iso_ir_165 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/];
603    }
604    sub __decode_map ($) {
605      [qw/gb2312_1980_to_ucs iso_ir_165_to_ucs 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/];
606    }
607    
608  1;  1;
609  __END__  __END__
610    
611  =back  =back
612    
613    =head1 AUTHORS
614    
615    Wakaba <w@suika.fam.cx>
616    
617    Nanashi-san
618    
619  =head1 LICENSE  =head1 LICENSE
620    
621  Copyright 2002 Wakaba <w@suika.fam.cx>  Copyright 2002 AUTHORS
622    
623  This library is free software; you can redistribute it  This library is free software; you can redistribute it
624  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.8  
changed lines
  Added in v.1.10

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24