lib/sup/mbox.rb in sup-0.4 vs lib/sup/mbox.rb in sup-0.5
- old
+ new
@@ -18,33 +18,33 @@
## i do it in this weird way because i am trying to speed things up
## when scanning over large mbox files.
while(line = f.gets)
case line
- when /^(From):\s+(.*?)\s*$/i,
- /^(To):\s+(.*?)\s*$/i,
- /^(Cc):\s+(.*?)\s*$/i,
- /^(Bcc):\s+(.*?)\s*$/i,
- /^(Subject):\s+(.*?)\s*$/i,
- /^(Date):\s+(.*?)\s*$/i,
- /^(References):\s+(.*?)\s*$/i,
- /^(In-Reply-To):\s+(.*?)\s*$/i,
- /^(Reply-To):\s+(.*?)\s*$/i,
- /^(List-Post):\s+(.*?)\s*$/i,
- /^(List-Subscribe):\s+(.*?)\s*$/i,
- /^(List-Unsubscribe):\s+(.*?)\s*$/i,
- /^(Status):\s+(.*?)\s*$/i: header[last = $1] = $2
- when /^(Message-Id):\s+(.*?)\s*$/i: header[mid_field = last = $1] = $2
+ when /^(From):\s*(.*?)\s*$/i,
+ /^(To):\s*(.*?)\s*$/i,
+ /^(Cc):\s*(.*?)\s*$/i,
+ /^(Bcc):\s*(.*?)\s*$/i,
+ /^(Subject):\s*(.*?)\s*$/i,
+ /^(Date):\s*(.*?)\s*$/i,
+ /^(References):\s*(.*?)\s*$/i,
+ /^(In-Reply-To):\s*(.*?)\s*$/i,
+ /^(Reply-To):\s*(.*?)\s*$/i,
+ /^(List-Post):\s*(.*?)\s*$/i,
+ /^(List-Subscribe):\s*(.*?)\s*$/i,
+ /^(List-Unsubscribe):\s*(.*?)\s*$/i,
+ /^(Status):\s*(.*?)\s*$/i: header[last = $1] = $2
+ when /^(Message-Id):\s*(.*?)\s*$/i: header[mid_field = last = $1] = $2
## these next three can occur multiple times, and we want the
## first one
- when /^(Delivered-To):\s+(.*)$/i,
- /^(X-Original-To):\s+(.*)$/i,
- /^(Envelope-To):\s+(.*)$/i: header[last = $1] ||= $2
+ when /^(Delivered-To):\s*(.*)$/i,
+ /^(X-Original-To):\s*(.*)$/i,
+ /^(Envelope-To):\s*(.*)$/i: header[last = $1] ||= $2
- when /^$/: break
- when /^\S+: /: last = nil # some other header we don't care about
+ when /^\r*$/: break
+ when /^\S+:/: last = nil # some other header we don't care about
else
header[last] += " " + line.chomp.gsub(/^\s+/, "") if last
end
end
@@ -63,9 +63,10 @@
end
end
header
end
+ ## never actually called
def read_body f
body = []
f.each_line do |l|
break if l =~ BREAK_RE
body << l.chomp