Subject: [sup-talk] [PATCH] expand file paths and rescue enoent exceptions when adding attachments

From: [email-masked] (brabuhr)
Date: Sat, 26 Jan 2008 22:35:44 -0500

On 1/26/08, Daniel Wagner <daniel at wagner-home.com> wrote:
> If I type in a filename that starts with ~ at the attachment prompt, sup
> crashes.

---
 lib/sup/modes/edit-message-mode.rb |    4 ++++
 lib/sup/util.rb                    |    3 ++-
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/lib/sup/modes/edit-message-mode.rb
b/lib/sup/modes/edit-message-mode.rb
index 6a7f273..9412235 100644
--- a/lib/sup/modes/edit-message-mode.rb
+++ b/lib/sup/modes/edit-message-mode.rb
@@ -151,6 +151,10 @@ EOS
    @attachments << RMail::Message.make_file_attachment(fn)
    @attachment_names << fn
    update
+  rescue Errno::ENOENT => e
+    Redwood::log "Cannot add attachment: #{e.message}"
+    Redwood::log e.backtrace.join("\n")
+    Redwood::BufferManager.flash "Could not add attachment: #{e.message}"
  end

  def delete_attachment
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
index ceaf0b8..51339d6 100644
--- a/lib/sup/util.rb
+++ b/lib/sup/util.rb
@@ -57,8 +57,9 @@ module RMail
  class Message
    def self.make_file_attachment fn
      bfn = File.basename fn
+      fp = File.expand_path fn
      t = MIME::Types.type_for(bfn).first || MIME::Types.type_for
("exe").first
-      make_attachment IO.read(fn), t.content_type, t.encoding, bfn.to_s
+      make_attachment IO.read(fp), t.content_type, t.encoding, bfn.to_s
    end

    def charset
--
1.5.2.5
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/sup-talk/attachments/20080126/533da985/attachment.html

---

From: [email-masked] (William Morgan)
Date: Sat, 02 Feb 2008 18:20:50 -0800

I had already come up with a patch for this. Sorry! git diff
master..019854 if you're curious.

-- 
William <wmorgan-sup at masanjin.net>