[Mew-dist 271] Re: From line & "r" in news

SAKAI Kiyotaka ksakai at example.com
1996年 12月 12日 (木) 19:57:50 JST


>> In article <9611281453.AA10605 at example.com>, Yuichi Sakumura <saku at example.com> writes:

saku> 1)
saku> From: hoge at example.com ("hogehoge poipoi")
saku> のように,From: 行の () の中に "" で囲われた文字列があるとき,
saku> reply すると
saku> To: hoge at example.com("hogehoge
saku> のようにアドレスの切り出しに失敗してしまいます.

> もっと詳しくは ("...") の間にスペースが入った場合に起きるようです.

この件について原因を調べてみましたが、

  From: ksakai at example.com ("SAKAI Kiyotaka")

だったとした場合、Mew では以下のようなアルゴリズムでアドレスを取り出し
ていることが分かりました。

  ksakai at example.com ("SAKAI Kiyotaka")

              ↓  ',' で区切った文字列に変換

  ",ksakai at example.com (\"SAKAI Kiyotaka\")"

              ↓ '"' の前後で文字列を分割

  ",ksakai at example.com (" "\"SAKAI Kiyotaka\"" ")"

              ↓ '"' で始まる文字列を除いて、各文字列の空白を削除

  ",ksakai at example.com(" "\"SAKAI Kiyotaka\"" ")"

              ↓ 再び各文字列を連結

  ",ksakai at example.com(\"SAKAI Kiyotaka\")"

              ↓ ',' で区切った文字列から、リストに変換

  ("" "ksakai at example.com(\"SAKAI Kiyotaka\")")

              ↓ 各要素からアドレスを取り出す
              ↓ 取り出し方は、<> を含む場合はその内側、それ以外は最初
              ↓ の空白まで。

  "ksakai at example.com(\"SAKAI"

さて、どう対処すればいいか考えるために RFC822 をあたってみたところ、
APPENDIX D に

     comment     =  "(" *(ctext / quoted-pair / comment) ")"
     ctext       =  <any CHAR excluding "(",     ; => may be folded
                     ")", "\" & CR, & including
                     linear-white-space>
     delimiters  =  specials / linear-white-space / comment
     linear-white-space =  1*([CRLF] LWSP-char)  ; semantics = SPACE
                                                 ; CRLF => folding
     LWSP-char   =  SPACE / HTAB                 ; semantics = SPACE
     quoted-pair =  "\" CHAR                     ; may quote any char

という記述がありました。これから判断するに、以下のようなアドレスはすべ
て正しいと思うのですが、これは正しいでしょうか?

     foo1 at example.com(name)
     foo2 at example.com ( sei " mei )
     (name) foo3 at example.com
     ("name)foo4 at example.com

これが正しいとすれば、他の手順を辿る前に、コメントの削除 (というより、
スペースへの変換かな) を行う必要があると思います。
-- 
酒井 清隆 (E-mail: ksakai at example.com)



Mew-dist メーリングリストの案内