From: wmorgan Date: Sat, 25 Aug 2007 05:56:08 +0000 (+0000) Subject: tab completion for all filename prompts X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=e6a28b6d0cfb36c3af8bdf33f60dec42125af4de;p=sup tab completion for all filename prompts git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@545 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb index 467675a..e235070 100644 --- 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 index 5f7e712..76ac2d1 100644 --- 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 index 0105d73..3c68eec 100644 --- 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 index 0a386d5..8daa75e 100644 --- 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 index b5b2cfa..4252437 100644 --- 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