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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Sat Oct 12 07:27:01 2002 UTC (23 years, 9 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +7 -2 lines
2002-10-12  Nanashi-san

	* SJIS.pm: New module.
	* SJIS/: New directory.
	(Commited by Wakaba <w@suika.fam.cx>)

1 wakaba 1.1 =head1 NAME
2    
3     Encode::ISO2022::RFC1345 --- Encode and decode of ISO/IEC 2022
4     based encodings described in IETF RFC 1345 (and not defined by
5 wakaba 1.3 any other standards)
6 wakaba 1.1
7     =head1 ENCODINGS
8    
9     =over 4
10    
11     =cut
12    
13     require 5.7.3;
14     use strict;
15     package Encode::ISO2022::RFC1345;
16     use vars qw($VERSION);
17 wakaba 1.4 $VERSION=do{my @r=(q$Revision: 1.3 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
18 wakaba 1.1 use base qw(Encode::Encoding);
19     require Encode::ISO2022;
20    
21     sub encode ($$;$) {
22     my ($obj, $str, $chk) = @_;
23     $_[1] = '' if $chk;
24     $str = &Encode::ISO2022::internal_to_iso2022 ($str, $obj->__2022_encode);
25     return $str;
26     }
27    
28     sub decode ($$;$) {
29     my ($obj, $str, $chk) = @_;
30     $_[1] = '' if $chk;
31     return &Encode::ISO2022::iso2022_to_internal ($str, $obj->__2022_decode);
32     }
33    
34     sub __2022__common ($) {
35     my $C = Encode::ISO2022->new_object;
36     $C->{option}->{designate_to}->{C0}->{default} = -1;
37     $C->{option}->{designate_to}->{C1}->{default} = -1;
38     $C->{option}->{designate_to}->{G94}->{default} = -1;
39     $C->{option}->{designate_to}->{G94}->{B} = -1;
40     $C->{option}->{designate_to}->{G94n}->{default} = -1;
41     $C->{option}->{designate_to}->{G96}->{default} = -1;
42     $C->{option}->{designate_to}->{G96n}->{default} = -1;
43     $C->{G1} = $Encode::ISO2022::CHARSET{G94}->{"\x7E"}; ## empty
44     $C->{option}->{reset}->{Gdesignation} = 0;
45     $C->{option}->{reset}->{Ginvoke} = 0;
46     $C;
47     }
48     sub __2022_encode ($) {
49     my $C = shift->__2022__common;
50     $C->{GR} = undef;
51     $C;
52     }
53     sub __2022_decode ($) {
54     my $C = shift->__2022__common;
55     $C;
56     }
57    
58 wakaba 1.4 sub __clone ($) {
59     my $self = shift;
60     bless {%$self}, ref $self;
61     };
62    
63 wakaba 1.1 package Encode::ISO2022::RFC1345::NATSSEFI;
64     use vars qw/@ISA/;
65     push @ISA, 'Encode::ISO2022::RFC1345';
66     __PACKAGE__->Define (qw/NATS-SEFI iso-ir-8-1 csNATSSEFI/);
67    
68     =item NATS-SEFI
69    
70     NATS-SEFI (Alias: iso-ir-8-1, csNATSSEFI (IANA))
71    
72     =cut
73    
74     sub __2022__common ($) {
75     my $C = shift->SUPER::__2022__common;
76     $C->{bit} = 7;
77     $C->{G0} = $Encode::ISO2022::CHARSET{G94}->{"\x43"};
78     $C->{G1} = $C->{G0}; $C->{G2} = $C->{G1}; $C->{G3} = $C->{G1};
79     $C->{option}->{undef_char} = ["\x3F", {type => 'G94', charset => "\x43"}];
80     $C;
81     }
82    
83     package Encode::ISO2022::RFC1345::NATSSEFIADD;
84     use vars qw/@ISA/;
85     push @ISA, 'Encode::ISO2022::RFC1345';
86     __PACKAGE__->Define (qw/NATS-SEFI-ADD iso-ir-8-2 csNATSSEFIADD/);
87    
88     =item NATS-SEFI-ADD
89    
90     NATS-SEFI-ADD (Alias: iso-ir-8-2, csNATSSEFIADD (IANA))
91