]> git.cworth.org Git - sup/blobdiff - lib/sup/mbox/loader.rb
added saving of message and attachments to disk (and some bugfixes in buffer
[sup] / lib / sup / mbox / loader.rb
index 51af5f26742e22312979cf46ba05497c3c5d216d..f4cbe802f080ff9841c3f2e022075fc3fd146cd0 100644 (file)
@@ -34,7 +34,11 @@ class Loader
       end).compact
   end
 
-  def reset!; @end_offset = 0; @dirty = true; end
+  def seek_to! offset
+    @end_offset = [offset, File.size(@f) - 1].min;
+    @dirty = true
+  end
+  def reset!; seek_to! 0; end
   def == o; o.is_a?(Loader) && o.filename == filename; end
   def to_s; "mbox://#{@filename}"; end
 
@@ -61,8 +65,7 @@ class Loader
     end
   end
 
-  ## load the full header text
-  def load_header_text offset
+  def raw_header offset
     ret = ""
     @mutex.synchronize do
       @f.seek offset
@@ -73,6 +76,18 @@ class Loader
     ret
   end
 
+  def raw_full_message offset
+    ret = ""
+    @mutex.synchronize do
+      @f.seek offset
+      @f.gets # skip mbox header
+      until @f.eof? || (l = @f.gets) =~ BREAK_RE
+        ret += l
+      end
+    end
+    ret
+  end
+
   def next
     return nil if done?
     @dirty = true