namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mkmnz.pl jcode.pl patch



村下です

mknmz.pl(1.1.2.3 snapshot-6)にnkfを使わないでjcode.plで処理するような
patchを当ててみました。

注意
半角カナ文字やMIMEのデコードは考慮していません。
あとjcode.plでいらなくなりそうなコードもありますが、
それはそのまま残して有ります(^^;)
#win32当たりのパイプエラー処理の部分とか。

---------------------------------------------------------
diff -c mknmz.pl mknmz.pl.new  | m
*** mknmz.pl    Tue May 19 02:59:20 1998
--- mknmz.pl.new        Mon May 25 14:52:54 1998
***************
*** 26,32 ****

  require 5.003;
  use Cwd;
! use strict qw(subs refs);  # vars を入れるとちょっと大変なので…

  ##
  ## ソフトウェア情報
--- 26,33 ----

  require 5.003;
  use Cwd;
! #use strict qw(subs refs);  # vars を入れるとちょっと大変なので…
! require       'jcode.pl';

  ##
  ## ソフトウェア情報
***************
*** 590,598 ****
      }


!     open(CFILE, $filter) || die "$$cfile: $!\n";
      @tmp = <CFILE>;
!     $$contents = join("", @tmp);

      # 圧縮されたファイルの場合、サイズが変わるのでここで再び調べる
      if ($zipped) {
--- 591,605 ----
      }


! #   open(CFILE, $filter) || die "$$cfile: $!\n";
! #   @tmp = <CFILE>;
! #   $$contents = join("", @tmp);
!     open(CFILE, $$cfile) || die "$$cfile: $!\n";
      @tmp = <CFILE>;
!     close(CFILE);
!     local($a) = join("", @tmp);
!     &jcode'convert(*a,'euc');
!     $$contents = $a;

      # 圧縮されたファイルの場合、サイズが変わるのでここで再び調べる
      if ($zipped) {
***************
*** 611,617 ****
      # コントロール文字を空白に (改行コードは残すことにした v1.03)
      $ctrl = $$contents =~ tr/\x0-\x9\xb-\x1f\xff/   /;
      $kanji = $$contents =~ tr/\xa1-\xfe/\xa1-\xfe/;  # 漢字が含まれるか調べる
-     close(CFILE);
      ($size, $ctrl, $kanji);
  }

--- 618,623 ----
***************
*** 1139,1145 ****
      }

      if (($SYSTEM eq "UNIX") || ($SYSTEM eq "OS2")) {
!       open(FLIST, "|$NKF -jZ >$FLIST_") || die "$FLIST_: $!\n";
      } elsif ($SYSTEM eq "WIN32") {
        # 例によって Win32 のパイプは変なので別処理になる
        open(FLIST, ">$FLIST_") || die "Can't open $FLIST_.\n";
--- 1145,1152 ----
      }

      if (($SYSTEM eq "UNIX") || ($SYSTEM eq "OS2")) {
! #     open(FLIST, "|$NKF -jZ >$FLIST_") || die "$FLIST_: $!\n";
!       open(FLIST, ">$FLIST_") || die "$FLIST_: $!\n";
      } elsif ($SYSTEM eq "WIN32") {
        # 例によって Win32 のパイプは変なので別処理になる
        open(FLIST, ">$FLIST_") || die "Can't open $FLIST_.\n";
***************
*** 1187,1193 ****

      if ($SYSTEM eq "WIN32") {
        # Win32 だと書き直してあげないといけない。
!       open(FLIST, "$NKF -jZ $FLIST_|") || die "$FLIST_: $!\n";
        open(FLISTTMP, ">$FLIST_.tmp") || die "$FLIST_.tmp: $!\n";
        binmode(FLISTTMP);
        print FLISTTMP while <FLIST>;
--- 1194,1201 ----

      if ($SYSTEM eq "WIN32") {
        # Win32 だと書き直してあげないといけない。
! #     open(FLIST, "$NKF -jZ $FLIST_|") || die "$FLIST_: $!\n";
!       open(FLIST, "$FLIST_") || die "$FLIST_: $!\n";
        open(FLISTTMP, ">$FLIST_.tmp") || die "$FLIST_.tmp: $!\n";
        binmode(FLISTTMP);
        print FLISTTMP while <FLIST>;
***************
*** 1286,1294 ****
      if ($CCS eq "euc") {
        print $USAGE;
      } elsif ($CCS eq "sjis") {
!       open(NKF, "|$NKF -s");
!       print NKF $USAGE;
!       close(NKF);
      }
      exit;
  }
--- 1294,1304 ----
      if ($CCS eq "euc") {
        print $USAGE;
      } elsif ($CCS eq "sjis") {
! #     open(NKF, "|$NKF -s");
! #     print NKF $USAGE;
! #     close(NKF);
!         &jcode'convert(*USAGE,'sjis');
!         print $USAGE;
      }
      exit;
  }
***************
*** 1393,1401 ****
      my ($fname, $msg) = @_;

      if (! -e $fname) {
!       open(FILE, "|$NKF -j >$fname")
!           || die "$fname: $!\n";
        binmode(FILE);
        print FILE $msg;
        close(FILE);
      }
--- 1403,1412 ----
      my ($fname, $msg) = @_;

      if (! -e $fname) {
! #     open(FILE, "|$NKF -j >$fname") || die "$fname: $!\n";
!         open(FILE, ">$fname") || die "$fname: $!\n";
        binmode(FILE);
+         &jcode'convert(*msg,'jis');
        print FILE $msg;
        close(FILE);
      }
***************
*** 1668,1678 ****

      if (-e $file) {
        # ファイルは EUC で読み込みます
!       open(FILE ,"$NKF -e $file|") || die "$file: $!\n";
        binmode(FILE);
        @tmp = <FILE>;
-       $_ = join("", @tmp);
        close(FILE);
      }
      else {
        # ヘッダファイルとフッタファイルとそれぞれのメッセージを読み込み
--- 1679,1692 ----

      if (-e $file) {
        # ファイルは EUC で読み込みます
! #     open(FILE ,"$NKF -e $file|") || die "$file: $!\n";
!       open(FILE ,"$file") || die "$file: $!\n";
        binmode(FILE);
        @tmp = <FILE>;
        close(FILE);
+       local($a) = join("", @tmp);
+       &jcode'convert(*a,'euc');
+       $_ = $a;
      }
      else {
        # ヘッダファイルとフッタファイルとそれぞれのメッセージを読み込み
***************
*** 1683,1689 ****
      }

      # ファイルは JIS コードで保存します
!     open(FILE ,"|$NKF -j >$file") || die "$file: $!\n";
      binmode(FILE);

      if (/(<!-- FILE -->)\s*(.*)\s*(<!-- FILE -->)/) {
--- 1697,1704 ----
      }

      # ファイルは JIS コードで保存します
! #   open(FILE ,"|$NKF -j >$file") || die "$file: $!\n";
!     open(FILE ,">$file") || die "$file: $!\n";
      binmode(FILE);

      if (/(<!-- FILE -->)\s*(.*)\s*(<!-- FILE -->)/) {
***************
*** 1702,1707 ****
--- 1717,1726 ----
      }
      $_ =~ s/(<!-- DATE -->)(.*)(<!-- DATE -->)/$1 $month\/$day\/$year $3/g;

+     local($a) = $_;
+     &jcode'convert(*a,'jis');
+     $_ = $a;
+
      print FILE;
      close(FILE);
  }
***************
*** 1725,1730 ****
--- 1744,1752 ----
      $title =~ s/^\s+//;
      $title =~ s/\s+/ /g;
      $cfile_size = &commas($cfile_size);
+     &jcode'convert(*title,'jis');
+     &jcode'convert(*abstract,'jis');
+     &jcode'convert(*url,'jis');

      # FLIST へ書き出し <DT> の後に改行が欲しいのです
      print FLIST "<DT>\n<STRONG><A HREF=\"$url\">$title</A></STRONG>\n";
----
MURASHITA Takuya  Ikegami Tsushinki Co.,Ltd. Information Planning Div. 
http://www.ikegami.co.jp/