]> git.cworth.org Git - sup/commitdiff
handle carriage returns in mbox files
authorWilliam Morgan <wmorgan-sup@masanjin.net>
Wed, 26 Mar 2008 16:38:34 +0000 (09:38 -0700)
committerWilliam Morgan <wmorgan-sup@masanjin.net>
Wed, 26 Mar 2008 16:38:34 +0000 (09:38 -0700)
lib/sup/mbox.rb
lib/sup/mbox/loader.rb

index 0ce52fe24fd9ff8bbba19bea2141dfd8e4d4625d..2494897f1166f1411ea6bae1323c85968a13f177 100644 (file)
@@ -41,8 +41,8 @@ module MBox
         /^(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
@@ -65,6 +65,7 @@ module MBox
     header
   end
   
+  ## never actually called
   def read_body f
     body = []
     f.each_line do |l|
index 58f4fc7d8fefbf2379edf315e6bc97ad8cc187ea..7fe912900e16d477fc7d690873d92e9c623f48c2 100644 (file)
@@ -85,7 +85,7 @@ class Loader < Source
     ret = ""
     @mutex.synchronize do
       @f.seek offset
-      until @f.eof? || (l = @f.gets) =~ /^$/
+      until @f.eof? || (l = @f.gets) =~ /^\r*$/
         ret += l
       end
     end