X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=lib%2Fsup%2Fmodes%2Fedit-message-mode.rb;h=3449503bf1d297e9ebd0bf2a03a6f780ec7bceff;hb=refs%2Fheads%2Fnext;hp=08b9fd259742cff252f837eece867f8337a953a7;hpb=c959ce19b5f06b30e987700d058e79c98f207411;p=sup diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb index 08b9fd2..3449503 100644 --- a/lib/sup/modes/edit-message-mode.rb +++ b/lib/sup/modes/edit-message-mode.rb @@ -2,7 +2,10 @@ require 'tempfile' require 'socket' # just for gethostname! require 'pathname' require 'rmail' -require 'jcode' # for RE_UTF8 + +# from jcode.rb, not included in ruby 1.9 +PATTERN_UTF8 = '[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf]' +RE_UTF8 = Regexp.new(PATTERN_UTF8, 0, 'n') module Redwood @@ -13,7 +16,7 @@ class EditMessageMode < LineCursorMode FORCE_HEADERS = %w(From To Cc Bcc Subject) MULTI_HEADERS = %w(To Cc Bcc) - NON_EDITABLE_HEADERS = %w(Message-Id Date) + NON_EDITABLE_HEADERS = %w(Message-id Date) HookManager.register "signature", < @header, :body => @body @@ -181,7 +196,7 @@ protected end def mime_encode_subject string - return string unless string.match(String::RE_UTF8) + return string unless string.match(RE_UTF8) mime_encode string end @@ -190,7 +205,7 @@ protected # Encode "bælammet mitt " into # "=?utf-8?q?b=C3=A6lammet_mitt?= def mime_encode_address string - return string unless string.match(String::RE_UTF8) + return string unless string.match(RE_UTF8) string.sub(RE_ADDRESS) { |match| mime_encode($1) + $2 } end @@ -238,7 +253,7 @@ protected def parse_file fn File.open(fn) do |f| - header = MBox::read_header f + header = Source.parse_raw_email_header(f).inject({}) { |h, (k, v)| h[k.capitalize] = v; h } # lousy HACK body = f.readlines.map { |l| l.chomp } header.delete_if { |k, v| NON_EDITABLE_HEADERS.member? k } @@ -315,7 +330,7 @@ protected BufferManager.flash "Message sent!" true rescue SystemCallError, SendmailCommandFailed, CryptoManager::Error => e - Redwood::log "Problem sending mail: #{e.message}" + warn "Problem sending mail: #{e.message}" BufferManager.flash "Problem sending mail: #{e.message}" false end