summaryrefslogtreecommitdiff
path: root/img/lib/IM/Japanese.pm
diff options
context:
space:
mode:
Diffstat (limited to 'img/lib/IM/Japanese.pm')
-rw-r--r--img/lib/IM/Japanese.pm90
1 files changed, 52 insertions, 38 deletions
diff --git a/img/lib/IM/Japanese.pm b/img/lib/IM/Japanese.pm
index 08948d60..f0e1e1bb 100644
--- a/img/lib/IM/Japanese.pm
+++ b/img/lib/IM/Japanese.pm
@@ -5,10 +5,10 @@
###
### Author: Internet Message Group <img@mew.org>
### Created: Apr 23, 1997
-### Revised: Apr 14, 2000
+### Revised: Dec 7, 2002
###
-my $PM_VERSION = "IM::Japanese.pm version 20000414(IM141)";
+my $PM_VERSION = "IM::Japanese.pm version 20021207(IM142)";
package IM::Japanese;
require 5.003;
@@ -23,22 +23,6 @@ use vars qw(@ISA @EXPORT);
convert_iso2022jp_body conv_iso2022jp
conv_euc_from_jis conv_euc_from_sjis);
-=head1 NAME
-
-Japanese - IM Japanese handler
-
-=head1 SYNOPSIS
-
- use IM::Japanese;
- $code = code_check($line, $use_hankaku_kana);
- $code = code_check_body($content);
- convert_iso2022jp_body($content, $code);
- $converted = conv_iso2022jp($line, $code);
-
-=head1 DESCRIPTION
-
-=cut
-
use vars qw($C_jis $C_jis_roman $C_sjis $C_sjis_kana
$C_euc $C_euc_kana $C_SorE $C_ascii
$C_pascii $C_tascii $C_sascii $C_8bit
@@ -75,9 +59,9 @@ BEGIN {
# sjis
# sORe
#
-sub code_check ($;$) {
- my ($line, $no_hankaku_kana) = @_;
- my ($sjis, $euc);
+sub code_check($;$) {
+ my($line, $no_hankaku_kana) = @_;
+ my($sjis, $euc);
if ($line =~ /^$C_ascii*$/o) {
return 'ascii';
@@ -114,9 +98,9 @@ sub code_check ($;$) {
# EUC
# SJIS
#
-sub code_check_body ($) {
+sub code_check_body($) {
my $content = shift;
- my (%count) = ();
+ my(%count) = ();
$count{'ascii'} = 0; # for debug print
$count{'8bit'} = 0;
@@ -171,8 +155,8 @@ sub code_check_body ($) {
# code: input kanji code
# return value: none
#
-sub convert_iso2022jp_body ($$) {
- my ($content, $code) = @_;
+sub convert_iso2022jp_body($$) {
+ my($content, $code) = @_;
my $i;
for ($i = 0; $i <= $#$content; $i++) {
@@ -187,8 +171,8 @@ sub convert_iso2022jp_body ($$) {
# code: input kanji code
# return value: converted line
#
-sub conv_iso2022jp ($;$) {
- my ($line, $code) = @_;
+sub conv_iso2022jp($;$) {
+ my($line, $code) = @_;
im_debug("conv_iso2022jp: $line\n") if (&debug('japanese'));
@@ -221,19 +205,19 @@ sub conv_iso2022jp ($;$) {
# line: a line of string to be converted
# return value: converted line
#
-sub conv_from_sjis ($) {
+sub conv_from_sjis($) {
my $line = shift;
$line =~ s/((?:$C_sjis|$C_sjis_kana)+)/sjis2jis($1)/geo;
return $line;
}
-sub sjis2jis ($) {
+sub sjis2jis($) {
my $line = shift;
$line =~ s/((?:$C_sjis)+|(?:$C_sjis_kana)+)/s2j($1)/geo;
return "$line$E_asc";
}
-sub s2e ($) {
+sub s2e($) {
my $code = shift;
- my ($c1, $c2) = unpack('CC', $code);
+ my($c1, $c2) = unpack('CC', $code);
if (0xa1 <= $c1 && $c1 <= 0xdf) {
$c2 = $c1;
$c1 = 0x8e;
@@ -246,7 +230,7 @@ sub s2e ($) {
}
return pack('CC', $c1, $c2);
}
-sub s2j ($) {
+sub s2j($) {
my $cur = shift;
if ($cur =~ /^$C_sjis_kana/o) {
$cur =~ tr/\xa1-\xdf/\x21-\x5f/;
@@ -264,17 +248,17 @@ sub s2j ($) {
# line: a line of string to be converted
# return value: converted line
#
-sub conv_from_euc ($) {
+sub conv_from_euc($) {
my $line = shift;
$line =~ s/((?:$C_euc|$C_euc_kana)+)/euc2jis($1)/geo;
return $line;
}
-sub euc2jis ($) {
+sub euc2jis($) {
my $line = shift;
$line =~ s/((?:$C_euc)+|(?:$C_euc_kana)+)/e2j($1)/geo;
return "$line$E_asc";
}
-sub e2j ($) {
+sub e2j($) {
my $cur = shift;
$cur =~ tr/\xa1-\xfe/\x21-\x7e/;
if ($cur =~ tr/\x8e//d) {
@@ -291,7 +275,7 @@ sub e2j ($) {
# return value: converted line
#
-sub conv_euc_from_sjis ($) {
+sub conv_euc_from_sjis($) {
my $line = shift;
$line =~ s/($C_sjis|$C_sjis_kana)/s2e($1)/geo;
return $line;
@@ -304,14 +288,14 @@ sub conv_euc_from_sjis ($) {
# return value: converted line
#
-sub conv_euc_from_jis ($) {
+sub conv_euc_from_jis($) {
my $line = shift;
$line =~ s/$C_jis/j2e($1,$2)/geo;
$line =~ s/\e\$C_jis_roman/$2/geo;
return $line;
}
-sub j2e ($$) {
+sub j2e($$) {
my $esc = shift;
my $line = shift;
if ($esc =~ /\e\$[\@B]/) {
@@ -322,6 +306,36 @@ sub j2e ($$) {
1;
+__END__
+
+=head1 NAME
+
+IM::Japanese - Japanese message handler
+
+=head1 SYNOPSIS
+
+ use IM::Japanese;
+
+ $code = code_check($line, $use_hankaku_kana);
+ $code = code_check_body($content);
+ convert_iso2022jp_body($content, $code);
+ $converted = conv_iso2022jp($line, $code);
+
+=head1 DESCRIPTION
+
+The I<IM::Japanese> module handles Japanese message encoded with
+ISO-2022-JP, EUC-JP, Shift_JIS, or US-ASCII.
+
+This modules is provided by IM (Internet Message).
+
+=head1 COPYRIGHT
+
+IM (Internet Message) is copyrighted by IM developing team.
+You can redistribute it and/or modify it under the modified BSD
+license. See the copyright file for more details.
+
+=cut
+
### Copyright (C) 1997, 1998, 1999 IM developing team
### All rights reserved.
###