namazu-ml(avocado)


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

Re: Plan for Namazu next version



Ken-ichi Hirose <hirose@xxxxxxxxxxxxxxxxxxxx> wrote:

>そのときは何とか動かすことを考えていたので
>mime はデータ的に無かったので飛ばしました ^^;
>#CPAN にあるのは知ってましたが

MIME::Base64 を元に作ってみました。

おそらく Mail/News の Subject:, From: の部分にだけこれを適用すれば
いいんじゃないかと思います。これで nkf を捨てられるかな。nkf を使
わなくするなんて絶対に反対! という方がいたらご意見ください。

pwd, date, cp についても Perl 側で処理することにしたので、 Win32 
での (インデクサの) 動作もずいぶん楽になるのではないかと思います。

# なにより UNIX/Win32 とコードの一元化ができるのが良いですね。


sub mime_decode ($) {
    my ($str) = @_;
    $str =~ s/^[ \t]+//m;
    $str =~ s/[\r\n]+/ /;
    $str =~ s/=\?ISO-2022-JP\?B\?(.*?)=\?=/decode_base64($1)/gei;
    &jcode::convert(*str,'euc');
    $str;
}

sub decode_base64 ($) {
    my ($str) = @_;
    my ($len, $res);

    $str =~ tr|A-Za-z0-9+/| -_|; 
    $len = chr(32 + length($str)*3/4);   # compute length byte
    $res = unpack("u", $len . $str );    # uudecode
    $res;
}

--
高林 哲 Satoru Takabayashi