[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)