lib/sup/modes/thread_view_mode.rb in sup-0.16.0 vs lib/sup/modes/thread_view_mode.rb in sup-0.17.0
- old
+ new
@@ -1,7 +1,5 @@
-require 'shellwords'
-
module Redwood
class ThreadViewMode < LineCursorMode
## this holds all info we need to lay out a message
class MessageLayout
@@ -352,25 +350,25 @@
def edit_as_new
m = @message_lines[curpos] or return
mode = ComposeMode.new(:body => m.quotable_body_lines, :to => m.to, :cc => m.cc, :subj => m.subj, :bcc => m.bcc, :refs => m.refs, :replytos => m.replytos)
BufferManager.spawn "edit as new", mode
- mode.edit_message
+ mode.default_edit_message
end
def save_to_disk
chunk = @chunk_lines[curpos] or return
case chunk
when Chunk::Attachment
default_dir = $config[:default_attachment_save_dir]
default_dir = ENV["HOME"] if default_dir.nil? || default_dir.empty?
- default_fn = File.expand_path File.join(default_dir, Shellwords.escape(chunk.filename))
+ default_fn = File.expand_path File.join(default_dir, chunk.filename)
fn = BufferManager.ask_for_filename :filename, "Save attachment to file or directory: ", default_fn, true
# if user selects directory use file name from message
if fn and File.directory? fn
- fn = File.join(fn, Shellwords.escape(chunk.filename))
+ fn = File.join(fn, chunk.filename)
end
save_to_file(fn) { |f| f.print chunk.raw_content } if fn
else
m = @message_lines[curpos]
@@ -390,11 +388,11 @@
num = 0
num_errors = 0
m.chunks.each do |chunk|
next unless chunk.is_a?(Chunk::Attachment)
- fn = File.join(folder, Shellwords.escape(chunk.filename))
+ fn = File.join(folder, chunk.filename)
num_errors += 1 unless save_to_file(fn, false) { |f| f.print chunk.raw_content }
num += 1
end
if num == 0
@@ -421,11 +419,11 @@
m = @message_lines[curpos] or return
if m.is_draft?
mode = ResumeMode.new m
BufferManager.spawn "Edit message", mode
BufferManager.kill_buffer self.buffer
- mode.edit_message
+ mode.default_edit_message
else
BufferManager.flash "Not a draft message!"
end
end
@@ -454,17 +452,19 @@
return continue_search_in_buffer if in_search? # err.. don't know why im doing this
m = (curpos ... @message_lines.length).argfind { |i| @message_lines[i] }
return unless m
+ nextm = @layout[m].next
+ return unless nextm
+
if @layout[m].toggled_state == true
@layout[m].state = :closed
@layout[m].toggled_state = false
update
end
- nextm = @layout[m].next
if @layout[nextm].state == :closed
@layout[nextm].state = :open
@layout[nextm].toggled_state = true
end
@@ -491,16 +491,18 @@
def jump_to_prev_and_open force_alignment=nil
m = (0 .. curpos).to_a.reverse.argfind { |i| @message_lines[i] }
return unless m
+ nextm = @layout[m].prev
+ return unless nextm
+
if @layout[m].toggled_state == true
@layout[m].state = :closed
@layout[m].toggled_state = false
update
end
- nextm = @layout[m].prev
if @layout[nextm].state == :closed
@layout[nextm].state = :open
@layout[nextm].toggled_state = true
end