namazu-ml(avocado)


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

Re: uuencode_filter() in mknmz.pl



古川です。

>> On Fri, 8 May 1998 23:57:03 +0900, Hajime BABA <baba@xxxxxxxxxxxxxxxxxxxxxx> said:
  > だから、[\x20-\x60] という取り方が良いとおもいます。
  >> えっと、上の方は [\x20-\x60] で、下の方は [\x21-\x60] ですよね。こ
  >> れは何か意味があるのでしょうか。 0x20 は空白なので uuencode には含
  >> まれないような気がしますが、違うかな…。
  > 二つ目のは単純な typo でしょうね。たぶん。

この部分、意外なことに、私の考えとしては、これは typo ではありません。

# 「考え自体が typo だ」というツッコミは当然あると思いますが…


uuencode 行かどうかの判定は、次のケースでは分けて考える必要があると思っ
ています。

    (1) begin と end の間
    (2) 分割されたなどの理由で、begin 無しに現れた場合

(1) の場合は、フォーマットに適合した行は、全て uuencode と考えていいと
思いますが、(2) の場合、単にフォーマットに適合した、というだけで、判定
するのは、ちょっと抵抗を感じることがあるのです。

その一つが「空白」です。これを認めると、普通の英文でも、大文字で書かれ
ていると、uuencode 行と判定される可能性が高くなります。

私としては、これはちょっとイヤなので、とりあえず、「空白を含むがフォー
マットに適合した行は、既にフラグが立っていれば、uuencode 行と認めるが、
この行によって、新たにフラグを立てることはしない」としてみたのでした。


もっとも、私もこれがベストだと思っているわけではなくて、本当は、実態に
合わせて、条件を絞りこむと、もうちょっと精度を高めることができると思い
ます。例えば、

>> On Fri, 8 May 1998 22:38:29 +0900, Hiroshi Kato <tumibito@xxxxxxxxxxxxxxxxxxx> said:
  > (2) 1行だけ uuencode 付記事はまずないから,前後の行をみて判断する.

そもそも分割投稿は、サイズが大きいときに使われるので、これは有効だと思
います。適合行が、一定行数以上続くか、end 行が現われることを条件にすれ
ばよいかと思います。

または、「先頭文字は 'M' しか認めない」とか。


>> On Fri, 8 May 1998 23:57:03 +0900, Hajime BABA <baba@xxxxxxxxxxxxxxxxxxxxxx> said:
  > このあたりむかしちょっと調べた事があるんですが、Linux の 
  > uuencode(5) の仕様そのままだと [\x20-\x59] です。Sun などのマニュ
  > アルにも同様の表記があります。ですが、uuencode の実装には \x20
  > (Space) を \x60 (`) に置き換えるという方言があるんです。
  > というか、今ではもうこっちが主流になっていて、Slackware の 
  > uuencode などは後者です。

最初から [\x21-\x60] にしといてくれればよかったのに、と思いますね。

-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx