sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit f60cfab3d78573f69907e58f2bd21fb9084c00eb
parent 99ac344d15f5f4fc0e1c50bf2a6206a019571ca8
Author: William Morgan <wmorgan-sup@masanjin.net>
Date:   Sat,  2 Feb 2008 17:28:03 -0800

Merge branch 'file-attachment-fix' into next

Diffstat:
M lib/sup/buffer.rb | 5 +++++
M lib/sup/modes/edit-message-mode.rb | 10 +++++++---
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb
@@ -454,6 +454,11 @@ EOS
           spawn_modal "file browser", FileBrowserMode.new
         elsif File.directory?(answer)
           spawn_modal "file browser", FileBrowserMode.new(answer)
+        elsif answer =~ /(~([^\s\/]*))/
+          full = $1
+          name = $2.empty? ? Etc.getlogin : $2
+          dir = Etc.getpwnam(name).dir rescue nil
+          answer.sub(full, dir) if dir
         else
           answer
         end
diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb
@@ -148,9 +148,13 @@ EOS
   def attach_file
     fn = BufferManager.ask_for_filename :attachment, "File name (enter for browser): "
     return unless fn
-    @attachments << RMail::Message.make_file_attachment(fn)
-    @attachment_names << fn
-    update
+    begin
+      @attachments << RMail::Message.make_file_attachment(fn)
+      @attachment_names << fn
+      update
+    rescue SystemCallError => e
+      BufferManager.flash "Can't read #{fn}: #{e.message}"
+    end
   end
 
   def delete_attachment