/[suikacvs]/markup/html/whatpm/Whatpm/Charset/WebThai.pm
Suika

Contents of /markup/html/whatpm/Whatpm/Charset/WebThai.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Wed Sep 10 10:27:09 2008 UTC (16 years, 10 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +37 -2 lines
++ whatpm/Whatpm/ChangeLog	10 Sep 2008 10:25:19 -0000
2008-09-10  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Support for charset-layer error levels.

	* HTML.pm.src: Don't specify |text| argument for the
	|chardecode:fallback| error, since it is not the encoding
	being used alternatively.

++ whatpm/Whatpm/Charset/ChangeLog	10 Sep 2008 10:26:52 -0000
2008-09-10  Wakaba  <wakaba@suika.fam.cx>

	* DecodeHandle.pm: Set error levels.

	* WebLatin1.pm: Support for |us-ascii| and |iso-8859-5|
	charsets (this module no longer for Latin1, but for Latin*
	encodings).

	* WebThai.pm: Support for |tis-620| charset.

1 wakaba 1.1 #!/usr/bin/perl
2 wakaba 1.2 package Whatpm::Charset::WebThai;
3 wakaba 1.1 use strict;
4     our $VERSION=do{my @r=(q$Revision: 1.1 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
5    
6     ## NOTE: This module does not expect that its standalone uses.
7     ## See Message::Charset::Info for how it is used.
8    
9     require Encode::Encoding;
10     push our @ISA, 'Encode::Encoding';
11     __PACKAGE__->Define (qw/web-thai/);
12    
13     sub encode ($$;$) {
14     # $self, $str, $chk
15     if ($_[2]) {
16     if ($_[1] =~ s/^([\x00-\x7F\xA0\x{0E01}-\x{0E3A}\x{0E3F}-\x{0E5B}]+)//) {
17     return Encode::encode ('iso-8859-11', $1);
18     } else {
19     return '';
20     }
21     } else {
22     my $r = $_[1];
23     $r =~ s/[^\x00-\x7F\xA0\x{0E01}-\x{0E3A}\x{0E3F}-\x{0E5B}]/?/g;
24     return Encode::encode ('iso-8859-11', $r);
25     }
26     } # encode
27    
28     sub decode ($$;$) {
29     # $self, $s, $chk
30     if ($_[2]) {
31     my $r = '';
32     while (1) {
33     if ($_[1] =~ s/^([\x00-\x7F\xA0-\xDA\xDF-\xFB]+)//) {
34     $r .= Encode::decode ('iso-8859-11', $1);
35     } else {
36     return $r;
37     }
38     }
39     } else {
40     return Encode::decode ('windows-874', $_[1]);
41     }
42     } # decode
43    
44 wakaba 1.2 package Whatpm::Charset::WebThai::WebTIS620;
45     push our @ISA, 'Encode::Encoding';
46     __PACKAGE__->Define (qw/web-tis-620/);
47    
48     sub encode ($$;$) {
49     # $self, $str, $chk
50     if ($_[2]) {
51     if ($_[1] =~ s/^([\x00-\x7F\x{0E01}-\x{0E3A}\x{0E3F}-\x{0E5B}]+)//) {
52     return Encode::encode ('tis-620', $1);
53     } else {
54     return '';
55     }
56     } else {
57     my $r = $_[1];
58     $r =~ s/[^\x00-\x7F\x{0E01}-\x{0E3A}\x{0E3F}-\x{0E5B}]/?/g;
59     return Encode::encode ('tis-620', $r);
60     }
61     } # encode
62    
63     sub decode ($$;$) {
64     # $self, $s, $chk
65     if ($_[2]) {
66     my $r = '';
67     while (1) {
68     if ($_[1] =~ s/^([\x00-\x7F\xA1-\xDA\xDF-\xFB]+)//) {
69     $r .= Encode::decode ('tis-620', $1);
70     } else {
71     return $r;
72     }
73     }
74     } else {
75     return Encode::decode ('windows-874', $_[1]);
76     }
77     } # decode
78    
79 wakaba 1.1 1;
80 wakaba 1.2 ## $Date: 2008/05/18 06:07:22 $

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24