/[suikacvs]/perl/lib/Encode/HZ.pm
Suika

Diff of /perl/lib/Encode/HZ.pm

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

revision 1.4 by wakaba, Mon Oct 14 06:58:35 2002 UTC revision 1.5 by wakaba, Thu Dec 12 08:17:16 2002 UTC
# Line 25  sub decode Line 25  sub decode
25                  |               #     or                  |               #     or
26              \{                  # opening brace of GB data              \{                  # opening brace of GB data
27                  (               #  set $2 to any number of...                  (               #  set $2 to any number of...
28                      (?:                      (?:[\x21-\x7D][\x21-\x7E])*
                         [^~]    #  non-tilde GB character  
                             |   #     or  
                         ~(?!\}) #  tilde not followed by a closing brace  
                     )*  
29                  )                  )
30              ~\}                 # closing brace of GB data              ~\}                 # closing brace of GB data
31                  |               # XXX: invalid escape - maybe die on $chk?                  |
32                \{
33                    ((?:[\x21-\x7D][\x21-\x7E])+[\x0D\x0A])
34            #       |               # XXX: invalid escape - maybe die on $chk?
35          )          )
36      }{      }{
37        my ($t, $c) = ($1, $2);        my ($t, $c, $d) = ($1, $2, $3);
38        if (defined $t) { # two tildes make one tilde        if (defined $t) { # two tildes make one tilde
39          '~';          '~';
40        } elsif (defined $c) {    # decode the characters        } elsif (defined $c) {    # decode the characters
41          $c =~ tr/\x21-\x7E/\xA1-\xFE/;          $c =~ tr/\x21-\x7E/\xA1-\xFE/;
42          $gb->decode($c, $chk);          $gb->decode($c, $chk);
43          } elsif (defined $d) {    # decode the characters
44            $d =~ tr/\x21-\x7E/\xA1-\xFE/;
45            $gb->decode($d, $chk);
46        } else {  # ~\n and invalid escape = ''        } else {  # ~\n and invalid escape = ''
47          '';          '';
48        }        }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24