commit a6bb5660cfe4b6ad85e2a50bdba2467cdb23c745
parent 3ad5a89a038be9d2cce6a8fc3449b26aa249254e
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date: Thu, 31 Dec 2009 15:36:49 -0800
open mail source files as binary
Diffstat:
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/sup/maildir.rb b/lib/sup/maildir.rb
@@ -59,7 +59,7 @@ class Maildir < Source
File.stat(tmp_path)
rescue Errno::ENOENT #this is what we want.
begin
- File.open(tmp_path, 'w') do |f|
+ File.open(tmp_path, 'wb:BINARY') do |f|
yield f #provide a writable interface for the caller
f.fsync
end
@@ -207,7 +207,7 @@ private
def with_file_for id
fn = @ids_to_fns[id] or raise OutOfSyncSourceError, "No such id: #{id.inspect}."
begin
- File.open(fn) { |f| yield f }
+ File.open(fn, 'rb:BINARY') { |f| yield f }
rescue SystemCallError, IOError => e
raise FatalSourceError, "Problem reading file for id #{id.inspect}: #{fn.inspect}: #{e.message}."
end
diff --git a/lib/sup/mbox/loader.rb b/lib/sup/mbox/loader.rb
@@ -22,7 +22,7 @@ class Loader < Source
raise ArgumentError, "not an mbox uri" unless uri.scheme == "mbox"
raise ArgumentError, "mbox URI ('#{uri}') cannot have a host: #{uri.host}" if uri.host
raise ArgumentError, "mbox URI must have a path component" unless uri.path
- @f = File.open uri.path
+ @f = File.open uri.path, 'rb:BINARY'
@path = uri.path
else
@f = uri_or_fp
@@ -114,7 +114,7 @@ class Loader < Source
def store_message date, from_email, &block
need_blank = File.exists?(@filename) && !File.zero?(@filename)
- File.open(@filename, "a") do |f|
+ File.open(@filename, "ab:BINARY") do |f|
f.puts if need_blank
f.puts "From #{from_email} #{date.rfc2822}"
yield f