#!/usr/bin/perl ##!/usr/bin/jperl -Llatin # Copyright (C) 1993-94 Noboru Ikuta # # wmime: MIME-header encoder Ver.1.11a # メッセージヘッダ中(先頭から最初の空行まで)に含まれる漢字の部分を # ISO-2022-JP(7bit JIS)に変換し MIME エンコードする。 # また、Mime-Version: とContent-Type: の2つのフィールドがヘッダ部に # 含まれなければメッセージヘッダの最後に以下の対応するフィールドを追 # 加する。($add_headers が 1 のとき) $mime_ver = "Mime-Version: 1.0\n"; $con_type = "Content-Type: text/plain; charset=iso-2022-jp\n"; $add_headers = 0; # 使い方 : [ perl ] wmime [ ファイル名 ...] # # mimew.pl は、環境変数 HOME→wmimeと同じ→通常の@INC の順にサ # ーチされます。 # # 注意 : wmimeをjperl(の2バイト文字対応モード)で使用すると、SJISとEUC # をうまく7bit JIS(ISO-2022-JP)に変換できません。 # 入力に含まれる文字が7bit JIS(ISO-2022-JP)とASCIIのみであること # が保証されている場合を除き、必ずoriginalの英語版のperl(または # jperl1.4以上を -Llatin オプション付き)で動かしてください。 # # 配布条件 : 著作権は放棄しませんが、配布・改変は自由とします。 $home = $ENV{'HOME'}; $perl_dir = $0; $perl_dir =~ s/\\/\//g; substr($perl_dir, rindex($perl_dir, "/")) = ''; unshift(@INC, $home, $perl_dir); require 'mimew.pl'; ## `MIME-Version:'と`Content-Type:' にマッチするパターン $match_mime_ver = '^mime-version:'; $match_con_type = '^content-type:'; ## メッセージヘッダの処理 $/ = "\n\n"; $* = 1; $_ = <>; $_ = &mimeencode($_); if (/\n\n$/){ chop; print; if ($add_headers){ if (!/$match_mime_ver/io){ print $mime_ver; } if (!/$match_con_type/io){ print $con_type; } } print "\n"; ## メッセージボディの処理 $/ = "\n"; while (<>){ print; } }else{ print if ($_); }