sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit e6a28b6d0cfb36c3af8bdf33f60dec42125af4de
parent b34e3804395cfedecf1eefcd3cf7ac2f4827fc44
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Sat, 25 Aug 2007 05:56:08 +0000

tab completion for all filename prompts

git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@545 5c8cc53c-5e98-4d25-b20a-d8db53a31250

Diffstat:
M lib/sup/buffer.rb | 7 +++----
M lib/sup/modes/edit-message-mode.rb | 4 ++--
M lib/sup/modes/file-browser-mode.rb | 2 +-
M lib/sup/modes/log-mode.rb | 2 +-
M lib/sup/modes/thread-view-mode.rb | 4 ++--
5 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb
@@ -362,8 +362,7 @@ class BufferManager
     end
   end
 
-  ## returns an ARRAY of filenames!
-  def ask_for_filenames domain, question, default=nil
+  def ask_for_filename domain, question, default=nil
     answer = ask domain, question, default do |s|
       if s =~ /(~([^\s\/]*))/ # twiddle directory expansion
         full = $1
@@ -391,11 +390,11 @@ class BufferManager
         elsif File.directory?(answer)
           spawn_modal "file browser", FileBrowserMode.new(answer)
         else
-          [answer]
+          answer
         end
     end
 
-    answer || []
+    answer
   end
 
   ## returns an array of labels
diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb
@@ -102,8 +102,8 @@ class EditMessageMode < LineCursorMode
   end
 
   def attach_file
-    fn = BufferManager.ask_for_filenames :attachment, "File name (enter for browser): "
-    fn.each { |f| @attachments << Pathname.new(f) }
+    fn = BufferManager.ask_for_filename :attachment, "File name (enter for browser): "
+    @attachments << Pathname.new(fn)
     update
   end
 
diff --git a/lib/sup/modes/file-browser-mode.rb b/lib/sup/modes/file-browser-mode.rb
@@ -65,7 +65,7 @@ protected
       end
     else
       begin
-        @value = [f.realpath.to_s]
+        @value = f.realpath.to_s
         @done = true
       rescue SystemCallError => e
         BufferManager.flash e.message
diff --git a/lib/sup/modes/log-mode.rb b/lib/sup/modes/log-mode.rb
@@ -38,7 +38,7 @@ class LogMode < TextMode
   end
 
   def save_to_disk
-    fn = BufferManager.ask :filename, "Save log to file: "
+    fn = BufferManager.ask_for_filename :filename, "Save log to file: "
     save_to_file(fn) { |f| f.puts text } if fn
   end
 
diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
@@ -192,11 +192,11 @@ class ThreadViewMode < LineCursorMode
     chunk = @chunk_lines[curpos] or return
     case chunk
     when Message::Attachment
-      fn = BufferManager.ask :filename, "Save attachment to file: ", chunk.filename
+      fn = BufferManager.ask_for_filename :filename, "Save attachment to file: ", chunk.filename
       save_to_file(fn) { |f| f.print chunk.raw_content } if fn
     else
       m = @message_lines[curpos]
-      fn = BufferManager.ask :filename, "Save message to file: "
+      fn = BufferManager.ask_for_filename :filename, "Save message to file: "
       save_to_file(fn) { |f| f.print m.raw_full_message } if fn
     end
   end