[Namazu-devel-ja 896] mailutime の fuzzy 処理

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2006年 1月 16日 (月) 03:16:23 JST


寺西です。

Tadamasa Teranishi wrote:
> 
> > Warning! suse-en/18: [Sun, 08 Jan 2006 14:19:44 -0000 (GMT)] is not rfc822 format!
> >                                 trying fuzzy mode...
> > Day '0' out of range 1..31 at /usr/bin/mailutime line 178
> >
> > というWarningが表示されると共に、動作がここで止り、以降のメールに対して実行
> > されませんでした。

動作が止まり、以降のメールに対して実行されない原因はまだわかりません
が、mailutime を調べていて、ふと疑問がわきました。

get_date_fuzzily() の day の処理は

    # get a day
    # this SHOULD be tried at the last.
    if ($str =~ s/\b($re_day)\b//i) {
        $mday = $1;
    } else {
        print STDERR "[$orig_str]:: lacks 'day'\n" if $DebugOpt;
        $mday = 0;
    }

となっており、year より後に処理しています。
そして、「this SHOULD be tried at the last.」だそうです。

そのため、
Date: Sun, 08 Jan 2006 14:19:44 -0000 (GMT)
を処理すると、08 が year として処理され、day がないものとして
扱われます。
それで、
Day '0' out of range 1..31 at /usr/bin/mailutime line 178
となります。

どう考えても、day が左側に現れるので、year より前でなければなら
ないと思うのですが、何故ゆえに最後に処理しないといけないのでしょう。
少なくとも year よりは前でいいのではないかと思いますが...。
-- 
=====================================================================
寺西 忠勝(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-devel-ja メーリングリストの案内