]> git.cworth.org Git - sup/blobdiff - lib/sup/mbox/loader.rb
Merge commit 'origin/various-mbox-fixes'
[sup] / lib / sup / mbox / loader.rb
index 57d983db1660340a80fd08074313ee1bd29e02ad..ebb2aed675e171397b99e877023e24611cf119c7 100644 (file)
@@ -59,7 +59,7 @@ class Loader < Source
       unless MBox::is_break_line? l
         raise OutOfSyncSourceError, "mismatch in mbox file offset #{offset.inspect}: #{l.inspect}." 
       end
-      header = MBox::read_header @f
+      header = parse_raw_email_header @f
     end
     header
   end
@@ -80,12 +80,24 @@ class Loader < Source
     end
   end
 
+  ## scan forward until we're at the valid start of a message
+  def correct_offset!
+    @mutex.synchronize do
+      @f.seek cur_offset
+      string = ""
+      until @f.eof? || (l = @f.gets) =~ BREAK_RE
+        string << l
+      end
+      self.cur_offset += string.length
+    end
+  end
+
   def raw_header offset
     ret = ""
     @mutex.synchronize do
       @f.seek offset
       until @f.eof? || (l = @f.gets) =~ /^\r*$/
-        ret += l
+        ret << l
       end
     end
     ret