青木です。 すみません、見落してました。 In mail "[ruby-list:39662] Re: [TMail]UNIXMboxでReply-Toがない場合" Ataru Nakata <anakata / vector.co.jp> wrote: > 中田@ベクターです。 > > ついでですが、再構築されたメールボックスのunix fromの行において > 日付書式が変わってしまいます。 > この部分はDate:フィールドなどは違って > sprintf '%s %s %d %02d:%02d:%02d %d', > WDAY[tm.wday], MONTH[tm.month], tm.mday, > tm.hour, tm.min, tm.sec, tm.year > の書式となるようです。 > 再構築したメールボックスがプログラムによって食えなくなって焦り > ました(^^; うう、重ね重ね申し訳ない。添付のパッチを試してください。 ------------------------------------------------------------------- 青木峰郎 --- tmail/mailbox.rb 20 Feb 2004 00:35:01 -0000 1.7 +++ tmail/mailbox.rb 23 May 2004 12:28:24 -0000 1.8 @@ -127,7 +127,7 @@ end def UNIXMbox.new(fname, tmpdir = nil, readonly = false) - tmpdir = ENV['TEMP'] || ENV['TMP'] || '/tmp' + tmpdir ||= (ENV['TEMP'] || ENV['TMP'] || '/tmp') newobj(fname, "#{tmpdir}/ruby_tmail_#{$$}_#{rand()}", readonly, false) end @@ -139,6 +139,7 @@ @filename = fname @readonly = readonly @closed = false + @updated = nil Dir.mkdir mhdir @real = MhMailbox.new(mhdir) @@ -170,8 +171,8 @@ # make _From line def UNIXMbox.create_from_line(port) - sprintf 'From %s %s', - fromaddr(port), time2str(File.mtime(port.filename)) + sprintf('From %s %s', + fromaddr(port), unixmbox_time(File.mtime(port.filename))) end def UNIXMbox.fromaddr(port) @@ -184,13 +185,13 @@ def close return if @closed - + f = @finalizer ObjectSpace.undefine_finalizer self - @finalizer.call @finalizer = nil @real = nil @closed = true @updated = nil + f.call end def each_port(&block) --- tmail/textutils.rb 12 May 2004 12:53:49 -0000 1.7 +++ tmail/textutils.rb 23 May 2004 12:28:24 -0000 1.8 @@ -151,6 +151,11 @@ *(offset / 60).divmod(60) end + def unixmbox_time(t) + sprintf('%s %s %d %02d:%02d:%02d %d', + WDAY[t.wday], MONTH[t.month], t.mday, t.hour, t.min, t.sec, t.year) + end + MESSAGE_ID = /<[^\@>]+\@[^>\@]+>/ def message_id?(str)