[#39671] Ruby 1.8.1 on SX-6 — Masaki Hasegawa <masaki-h@...4u.or.jp>

はじめまして、長谷川 と申します。

16 messages 2004/05/19
[#39673] Re: Ruby 1.8.1 on SX-6 — Tanaka Akira <akr@...17n.org> 2004/05/19

In article <20040519.205107.102564296.suuchi29@naps.kishou.go.jp>,

[ruby-list:39654] Re: [TMail] UNIXMboxでReply-Toがない場合

From: Minero Aoki <aamine@...>
Date: 2004-05-12 10:53:46 UTC
List: ruby-list #39654
青木です。

  In mail "[ruby-list:39653] [TMail] UNIXMboxでReply-Toがない場合"
    Ataru Nakata <anakata@vector.co.jp> wrote:

> 中田@ベクターです。
> 
> ちょっとしたフィルターを作ろうとして青木さんのTMail 0.10.8を試して
> いるのですが、UNIXMbox形式で Reply-To がないメールがある場合には
> finalizeでのメールボックス再構築に失敗しているようです。

む、なるほど。パッチを添付します。
-------------------------------------------------------------------
青木峰郎

--- lib/tmail/header.rb	20 Feb 2004 00:35:01 -0000	1.34
+++ lib/tmail/header.rb	12 May 2004 10:47:56 -0000	1.35
@@ -31,25 +31,23 @@
       end
 
       def new_from_port(port, name, conf = DEFAULT_CONFIG)
-        re = Regexp.new('\A(' + Regexp.quote(name) + '):', 'i')
-        str = nil
+        header = ''
         port.ropen {|f|
           f.each do |line|
-            if m = re.match(line)           then str = m.post_match.strip
-            elsif str and /\A[\t ]/ =~ line then str << ' ' << line.strip
-            elsif /\A-*\s*\z/ =~ line       then break
-            elsif str                       then break
-            end
+            break if line.tr('-', '').strip.empty?
+            header << line
           end
         }
-        new(name, str, Config.to_config(conf))
+        field = header.slice(/^#{Regexp.quote(name)}:(.+|\n\s)*/i) or return nil
+        name, body = *field.split(':', 2)
+        new(name, body, Config.to_config(conf))
       end
 
       def internal_new(name, conf)
         FNAME_TO_CLASS[name].newobj('', conf, true)
       end
 
-    end   # class << self
+    end   # class << HeaderField
 
     def initialize(body, conf, intern = false)
       @body = body


In This Thread