diff -cNr FAQ-OMatic-2.622/ChangeLog.ja FAQ-OMatic-2.622.ja/ChangeLog.ja
*** FAQ-OMatic-2.622/ChangeLog.ja	Thu Jan  1 09:00:00 1970
--- FAQ-OMatic-2.622.ja/ChangeLog.ja	Mon Apr 19 18:21:55 1999
***************
*** 0 ****
--- 1,35 ----
+ 1999-04-19  NOKUBI Takatsugu  <knok@daionet.gr.jp>
+ 
+ 	* Search.pm$B$G(BNKF$B$r(Buse$B$;$:$K(Bnkf$B$r;H$*$&$H$7$F$$$?$N$r=$@5(B
+ 
+ 1999-04-16  NOKUBI Takatsugu  <knok@daionet.gr.jp>
+ 
+ 	* $BBP>]%P!<%8%g%s$r(B2.622$B$K$9$k(B
+ 	* Omatic.pm$BCf$N(BsendEmail$B$KF|K\8lJQ49=hM}$rDI2C(B
+ 
+ 1999-03-11  NOKUBI Takatsugu  <knok@daionet.gr.jp>
+ 
+ 	* submitPart.pm$BCf$N%U%!%$%k%"%C%W%m!<%I=hM}$rF|K\8l2=(B
+ 
+ 1999-03-09  NOKUBI Takatsugu  <knok@daionet.gr.jp>
+ 
+ 	* Item.pm$BCf$G(Bsubstr$B$r<B9T$7$F$$$kItJ,$rF|K\8l=hM}$KE,9g$9$k$h$&JQ99(B
+ 	  ($B%3!<%I$r=q$$$F2<$5$C$?9bLn$5$s$"$j$,$H$&$4$6$$$^$9(B)
+ 
+ 1999-02-17  NOKUBI Takatsugu  <knok@daionet.gr.jp>
+ 
+ 	* $BF|K\8l2=BP>]%P!<%8%g%s$r(B2.618$B$K$9$k(B
+ 	* ChangeLog$B$r(BChangeLog.ja$B$K2~L>(B
+ 	* MANIFEST$B$K(BChangeLog.ja, README$B$rDI2C(B
+ 
+ 1999-01-25  Nokubi Takatsugu  <knok@daionet.gr.jp>
+ 
+ 	* Item.pm$BCf$K4A;zJQ49%3!<%I$rDI2C(B
+ 
+ 1999-01-19  Nokubi Takatsugu  <knok@daionet.gr.jp>
+ 
+ 	* $BF|K\8l2=$NBP>]%P!<%8%g%s$r(B2.609$B$K$9$k(B
+ 	* Search.pm$B$K5l%P!<%8%g%s$X$N:9J,$rEv$F$k(B
+ 	* Words.pm$B$K5l%P!<%8%g%s$X$N:9J,$rEv$F$k(B
+ 	* Words.pm$B$r(BText::ChaSen1$B$GF0:n$9$k$h$&$KJQ99(B
+ 
diff -cNr FAQ-OMatic-2.622/MANIFEST FAQ-OMatic-2.622.ja/MANIFEST
*** FAQ-OMatic-2.622/MANIFEST	Sat Mar 20 11:41:05 1999
--- FAQ-OMatic-2.622.ja/MANIFEST	Fri Apr 16 13:18:38 1999
***************
*** 3,8 ****
--- 3,10 ----
  Makefile.PL
  README
  fom.PL
+ ChangeLog.ja
+ README.ja
  lib/FAQ/OMatic.pm
  lib/FAQ/OMatic/Appearance.pm
  lib/FAQ/OMatic/Auth.pm
diff -cNr FAQ-OMatic-2.622/README.ja FAQ-OMatic-2.622.ja/README.ja
*** FAQ-OMatic-2.622/README.ja	Thu Jan  1 09:00:00 1970
--- FAQ-OMatic-2.622.ja/README.ja	Mon Apr 19 18:23:12 1999
***************
*** 0 ****
--- 1,47 ----
+ Faq-O-Matic 2.622 $BF|K\8l2=%Q%C%A(B
+ 
+ Copyright (C) 1999 NOKUBI Takatsugu <knok@daionet.gr.jp>
+ 
+ 1. $B35MW(B
+ 
+ $B$3$N%Q%C%A$O!"(BFaq-O-Matic 2.622$B$rF|K\8l4D6-$GMxMQ$7$?>l9g$K@8$8$kLdBj(B
+ $B$r2r7h$9$k$?$a$N$b$N$G$9!#(B
+ 
+ 2. $BI,MW$J$b$N(B
+ 
+ $B!&(BFaq-O-Matic 2.622
+ $B!&(Bperl5 (5.005_02$B$G3NG'(B)
+ $B!&(BChaSen 1.51 + $B<-=q(B
+ $B!&(BText::ChaSen1 0.11
+ $B!&(BNKF.pm (nkf1.7$B$KIUB0$N(B0.01$B$G3NG'(B)
+ 
+ Text::ChaSen1$B$O(B<http://www.daionet.gr.jp/~knok/chasen/>$B$+$i<hF@$G$-$^(B
+ $B$9!#(B
+ 
+ 3. $B%Q%C%A$NEv$FJ}(B
+ 
+ Faq-O-Matic$B$N%=!<%9$rE83+$9$k$3$H$K$h$C$F:n@.$5$l$k%G%#%l%/%H%j(B
+ FAQ-OMatic-2.622$B$r%+%l%s%H%G%#%l%/%H%j$H$7!"(B
+ 
+ patch -p1 < FAQ-O-Matic-2.622-ja2.diff
+ 
+ $B$r<B9T$7$^$9!#(B
+ 
+ 4. $B%Q%C%A$,9T$&$3$H(B
+ 
+ $B$3$N%Q%C%A$K$h$C$F!"<!$N$h$&$J3HD%$,$J$5$l$^$9!#(B
+ 
+ $B!&FbIt$N4A;z%3!<%I$r(BEUC$B$KE}0l(B
+ $B!&4A;z$NBh(B1$B%P%$%H$HBh(B2$B%P%$%H$GJ,CG$5$l$J$$$h$&$K$9$k(B
+ $B!&F|K\8l$G$NA4J88!:w$r2DG=$K$9$k(B
+ 
+ 5. $BCx:n8"(B
+ 
+ The Faq-O-Matic is Copyright 1997 by Jon Howell, all rights reserved.
+ Copyright (C) 1999 NOKUBI Takatsugu <knok@daionet.gr.jp>
+ 
+ $B$3$N%=%U%H%&%'%"$O40A4$KL5J]>Z$G$9!#(B
+ 
+ $B$^$?!"$3$N%=%U%H%&%'%"$O(BGNU General Public Licence$B$N$b$H$G:FG[IU!"2~JQ(B
+ $B$,G'$a$i$l$F$$$^$9!#>\:Y$K$D$$$F$O(BFAQ-O-Matic$B%*%j%8%J%k%=!<%9$KIUB0$N(B
+ LICENSE$B$H$$$&%U%!%$%k$r;2>H$7$F2<$5$$!#(B
diff -cNr FAQ-OMatic-2.622/lib/FAQ/OMatic/Item.pm FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Item.pm
*** FAQ-OMatic-2.622/lib/FAQ/OMatic/Item.pm	Wed Mar 24 05:14:35 1999
--- FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Item.pm	Fri Apr 16 14:48:11 1999
***************
*** 44,49 ****
--- 44,51 ----
  use FAQ::OMatic::Versions;
  use FAQ::OMatic::Set;
  
+ use NKF;
+ 
  my %itemCache = ();	# contains (filename => item ref) mappings
  
  sub new {
***************
*** 329,340 ****
--- 331,344 ----
  		} elsif ($key =~ m/-Set$/) {
  			my $a;
  			foreach $a ($self->getSet($key)->getList()) {
+ 			        $a = nkf('-e', $a);
  				print FILE "$key: $a\n";
  			}
  		} else {
  			my $value = $self->{$key};
  			$value =~ s/[\n\r]/ /g;	# don't allow CRs in a single-line field,
  									# that would corrupt the file format.
+ 			$value = nkf('-e', $value);
  			print FILE "$key: $value\n";
  		}
  	}
***************
*** 897,903 ****
  				# suggestion of adding cat title to reduce confusion is from
  				# THANKS: pauljohn@ukans.edu
  				if (length($title) > 15) {
! 					$title = substr($title, 0, 12)."...";
  				}
  				push @$editrow, {'text'=>FAQ::OMatic::button(
  					FAQ::OMatic::makeAref('-command'=>'addItem',
--- 901,907 ----
  				# suggestion of adding cat title to reduce confusion is from
  				# THANKS: pauljohn@ukans.edu
  				if (length($title) > 15) {
! 					$title = substrJ($title, 12)."...";
  				}
  				push @$editrow, {'text'=>FAQ::OMatic::button(
  					FAQ::OMatic::makeAref('-command'=>'addItem',
***************
*** 1519,1528 ****
  sub rightEnd {
  	my $string = shift;
  	my $amount = shift;
  	if ($amount >= length($string)) {
  		return $string;
  	} else {
! 		return substr($string,length($string)-$amount,$amount);
  	}
  }
  
--- 1523,1544 ----
  sub rightEnd {
  	my $string = shift;
  	my $amount = shift;
+ 	my ($n, $c, $r, $mb, $width, $result);
+ 	$width = length($string) - $amount;
  	if ($amount >= length($string)) {
  		return $string;
  	} else {
!             while (length($string)) {
!                last unless ($mb = $string =~ s/^([\200-\377].)+//) ||
! 		 $string =~s/[\0-\177]+//;
! 	       $n = $width;
! 	       $n -= $width % 2 if $mb;
! 	       ($c,$r) = unpack("a$n a*", $&);
! 	       $width -= length($c);
! 	       $result .= $c;
! 	       last if length($r)
! 	   }
! 	    return ($r.$string);
  	}
  }
  
***************
*** 1592,1598 ****
  				.rightEnd($ls,40)
  				.' '
  				.$parts[$i]
! 				.substr($rs,0,40)
  				.($rtrunc ? '...' : ''));
  	}
  	my $context = join("\n<br>", @contexts);
--- 1608,1614 ----
  				.rightEnd($ls,40)
  				.' '
  				.$parts[$i]
! 				.substrJ($rs,40)
  				.($rtrunc ? '...' : ''));
  	}
  	my $context = join("\n<br>", @contexts);
***************
*** 1761,1765 ****
--- 1777,1799 ----
  
  	$self->setProperty('SequenceNumber', $self->{'SequenceNumber'}+1);
  }
+ 
+ sub substrJ{
+         my $string = shift;
+         my $width = shift;
+         my $result = shift;
+         my ($n, $c, $r, $mb);
+         while (length($string)){
+            last unless ($mb = $string =~ s/^([\200-\377].)+//)
+             || $string =~ s/[\0-\177]+//;
+                 $n = $width;
+                 $n -= $width % 2 if $mb;
+                 ($c,$r) = unpack("a$n a*", $&);
+                 $width -= length($c);
+                 $result .= $c;
+                 last if length($r);
+        }
+         return $result;
+ } # end of sub substrJ..
  
  1;
diff -cNr FAQ-OMatic-2.622/lib/FAQ/OMatic/Part.pm FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Part.pm
*** FAQ-OMatic-2.622/lib/FAQ/OMatic/Part.pm	Wed Mar 24 03:11:03 1999
--- FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Part.pm	Fri Apr 16 13:18:38 1999
***************
*** 41,46 ****
--- 41,48 ----
  use FAQ::OMatic::Set;
  use Text::Tabs;
  
+ use NKF;
+ 
  sub new {
  	my ($class) = shift;
  
***************
*** 577,582 ****
--- 579,585 ----
  		$Text::Tabs::tabstop = 8;
  		$newText = join("\n", Text::Tabs::expand(split(/\n/, $newText)));
  	}
+ 	$newText = nkf('-e', $newText);
  	$self->{'Text'} = $newText;
  }
  
diff -cNr FAQ-OMatic-2.622/lib/FAQ/OMatic/Search.pm FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Search.pm
*** FAQ-OMatic-2.622/lib/FAQ/OMatic/Search.pm	Sat Mar 20 11:40:53 1999
--- FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Search.pm	Mon Apr 19 18:20:58 1999
***************
*** 38,43 ****
--- 38,45 ----
  use FAQ::OMatic::Words;
  use FAQ::OMatic;
  
+ use NKF;
+ 
  my %wordDB;
  
  sub openWordDB {
***************
*** 152,157 ****
--- 154,160 ----
  	# and store it in another parameter.
  	
  	$pattern = $params->{'_search'};
+ 	$pattern = nkf('-e', $pattern);
  	my @patternwords = FAQ::OMatic::Words::getWords( $pattern );
  
  	$params->{'_searchArray'} = \@patternwords;
diff -cNr FAQ-OMatic-2.622/lib/FAQ/OMatic/Words.pm FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Words.pm
*** FAQ-OMatic-2.622/lib/FAQ/OMatic/Words.pm	Sat Mar 20 11:40:53 1999
--- FAQ-OMatic-2.622.ja/lib/FAQ/OMatic/Words.pm	Fri Apr 16 13:18:38 1999
***************
*** 43,48 ****
--- 43,55 ----
  
  package FAQ::OMatic::Words;
  
+ use Text::ChaSen1;
+ use NKF;
+ 
+ BEGIN {
+     &Text::ChaSen1::getopt_argv('faq-omatic', '-j', '-F', '%m ');
+ }
+ 
  sub cannonical {
      my $string = shift;
  
***************
*** 80,91 ****
  	# given a user-input string, we break it into "legal" words
  	# and return an array of them
  	
  	$string = cannonical( $string );
  
  	my $wordPattern = '[A-Za-z0-9\-]';
  	# for ISO-8859-1 char set, try
  	#my $wordPattern = '[A-Za-z0-9\-\300-\326\330-\366\370-\377]';
! 	my @words = ($string =~ m/($wordPattern+)/gso);
  
  	@words;
  }
--- 87,102 ----
  	# given a user-input string, we break it into "legal" words
  	# and return an array of them
  	
+ 	$string = nkf('-e', $string);
  	$string = cannonical( $string );
  
  	my $wordPattern = '[A-Za-z0-9\-]';
  	# for ISO-8859-1 char set, try
  	#my $wordPattern = '[A-Za-z0-9\-\300-\326\330-\366\370-\377]';
! #	my @words = ($string =~ m/($wordPattern+)/gso);
! 	my $s = &Text::ChaSen1::sparse_tostr($string);
! 	chomp $s;
! 	my @words = split / /, $s;
  
  	@words;
  }
diff -cNr FAQ-OMatic-2.622/lib/FAQ/OMatic.pm FAQ-OMatic-2.622.ja/lib/FAQ/OMatic.pm
*** FAQ-OMatic-2.622/lib/FAQ/OMatic.pm	Wed Mar 24 06:47:09 1999
--- FAQ-OMatic-2.622.ja/lib/FAQ/OMatic.pm	Fri Apr 16 13:20:17 1999
***************
*** 43,48 ****
--- 43,50 ----
  use FAQ::OMatic::Intl;
  use FAQ::OMatic::Bags;
  
+ use NKF;
+ 
  # use vars lets us leave these variables globally-visible (when
  # fully qualified) without getting a gripe from 'use strict'.
  use vars qw($VERSION $authorAddress %theParams $userGripes);
***************
*** 911,916 ****
--- 913,920 ----
  	my $to = shift;		# array ref or scalar
  	my $subj = shift;
  	my $mesg = shift;
+ 
+ 	$mesg = nkf('-e', $mesg);
  
  	# untaint $to address
  	if (ref $to) {
diff -cNr FAQ-OMatic-2.622/lib/FAQ/OMatic.pm.rej FAQ-OMatic-2.622.ja/lib/FAQ/OMatic.pm.rej
*** FAQ-OMatic-2.622/lib/FAQ/OMatic.pm.rej	Thu Jan  1 09:00:00 1970
--- FAQ-OMatic-2.622.ja/lib/FAQ/OMatic.pm.rej	Fri Apr 16 13:18:38 1999
***************
*** 0 ****
--- 1,17 ----
+ ***************
+ *** 43,48 ****
+   use FAQ::OMatic::Intl;
+   use FAQ::OMatic::Bags;
+   
+   use vars	# these are mod_perl-safe
+   	# effectively constants
+   	qw($VERSION $authorAddress $USE_MOD_PERL),
+ --- 43,50 ----
+   use FAQ::OMatic::Intl;
+   use FAQ::OMatic::Bags;
+   
+ + use NKF;
+ + 
+   use vars	# these are mod_perl-safe
+   	# effectively constants
+   	qw($VERSION $authorAddress $USE_MOD_PERL),
