[mew-dist 29406] Re: Mew 6.4 release candidate 1

Takahiro Kambe <[email protected]> Tue, 06 Sep 2011 20:17:05 +0900 (JST)
Newsgroups gmane.mail.mew.general.japanese
Message-ID <[email protected]>

Mew 6.4cmew
mailreadRuby 1.9.2

mailread.rb

(Mew 6.3)

-- 
  / Takahiro Kambe 


--- bin/cmew.orig	2009-09-09 00:57:27.000000000 +0000
+++ bin/cmew
@@ -13,7 +13,31 @@ require 'sqlite3'
 require 'time'
 require 'fileutils'
 require 'find'
-require 'mailread'
+
+################################################################
+##
+## mail_header
+##
+##	Get header from mail message.  If multiple header field
+##	exists, last one will be used.
+##
+def mail_header(path)
+  @header = {}
+  value = nil
+  File.open(path) do |f|
+    while l = f.gets.chomp
+      next if /^From / =~ l
+      break if /^$/ =~ l
+      if /^\s+/ !~ l
+        (name, value) = l.split(/:\s+/, 2)
+        @header[name.downcase] = value
+      else
+        value << $'
+      end
+    end
+  end
+  return @header
+end
 
 ################################################################
 ##
@@ -159,7 +183,7 @@ def register(db, maildir, ignore_regex, 
       elsif st.file? and fpath =~ /\/[0-9]+(\.mew)?$/
         next if File.dirname(fpath) == skipdir
         next if last_mod > st.ctime.tv_sec
-        m = Mail.new(fpath)
+        m = mail_header(fpath) rescue next
         id = get_id(m)
         parid = get_parid(m)
         date = get_date(m)