[Namazu-users-ja 190] Re: mknmzでの「^?」の扱いについて

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2005年 1月 16日 (日) 17:04:28 JST


寺西です。

暫定的な処置ですが、メディアタイプが text/plain や text/html の場合
は、次のような修正で対応できるかと思います。 

Tadamasa Teranishi wrote:
> 
> このため、0x7f が含まれる文書を処理した場合、0x7f 以降の文字は
> ばっさりと削除されるようです。
> 
> # バグですね。
...
> ただし、
> 0x7f を空白に置換した上で処理するようにバグ修正した場合には、
> 0x7f 以降の文字列も処理されるようになるでしょう。

mknmz の codeconv_document サブルーチンの最後に制御コードを削除
する処理を追加します。

<<変更前>>
sub codeconv_document ($) {
    my ($textref) = @_;
    codeconv::toeuc($textref);
    $$textref =~ s/\r\n/\n/g;
    $$textref =~ s/\r/\n/g;
}

の最後に1行追加します。

<<変更後>>
sub codeconv_document ($) {
    my ($textref) = @_;
    codeconv::toeuc($textref);
    $$textref =~ s/\r\n/\n/g;
    $$textref =~ s/\r/\n/g;
    $$textref =~ tr/\x01-\x09\x0b-\x0c\x0e-\x1f\x7f/ /; # Remove control
char.
}

お試しください。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




Namazu-users-ja メーリングリストの案内