From 7605bdfab2c8e61fa51bd0ebda618a5190e85a07 Mon Sep 17 00:00:00 2001 From: wmorgan Date: Thu, 9 Aug 2007 15:33:46 +0000 Subject: [PATCH] fix reply mode/edit field interactions git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@521 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- lib/sup/modes/edit-message-mode.rb | 7 ++++--- lib/sup/modes/reply-mode.rb | 13 ++++++++++--- lib/sup/poll.rb | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb index 795e3b3..56acd4f 100644 --- a/lib/sup/modes/edit-message-mode.rb +++ b/lib/sup/modes/edit-message-mode.rb @@ -35,6 +35,7 @@ class EditMessageMode < LineCursorMode @attachments = [] @message_id = "<#{Time.now.to_i}-sup-#{rand 10000}@#{Socket.gethostname}>" @edited = false + @skip_top_rows = opts[:skip_top_rows] || 0 super opts regen_text @@ -47,10 +48,10 @@ class EditMessageMode < LineCursorMode def handle_new_text header, body; end def edit_field - if curpos >= @header_lines.length + if (curpos - @skip_top_rows) >= @header_lines.length edit_message else - case(field = @header_lines[curpos]) + case(field = @header_lines[curpos - @skip_top_rows]) when "Subject" text = BufferManager.ask :subject, "Subject: ", @header[field] @header[field] = parse_header field, text if text @@ -105,7 +106,7 @@ class EditMessageMode < LineCursorMode end def delete_attachment - i = curpos - @attachment_lines_offset + i = (curpos - @skip_top_rows) - @attachment_lines_offset if i >= 0 && i < @attachments.size && BufferManager.ask_yes_or_no("Delete attachment #{@attachments[i]}?") @attachments.delete_at i update diff --git a/lib/sup/modes/reply-mode.rb b/lib/sup/modes/reply-mode.rb index 9000767..6438043 100644 --- a/lib/sup/modes/reply-mode.rb +++ b/lib/sup/modes/reply-mode.rb @@ -66,9 +66,9 @@ class ReplyMode < EditMessageMode refs = gen_references @headers.each do |k, v| @headers[k] = { - "To" => "", - "Cc" => "", - "Bcc" => "", + "To" => [], + "Cc" => [], + "Bcc" => [], "In-Reply-To" => "<#{@m.id}>", "Subject" => Message.reify_subj(@m.subj), "References" => refs, @@ -125,6 +125,13 @@ protected def gen_references (@m.refs + [@m.id]).map { |x| "<#{x}>" }.join(" ") end + + def edit_field + @selected_type = :user + self.header = @headers[:user] + update + super + end def move_cursor_left i = @type_labels.index @selected_type diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb index 36ea10f..822521d 100644 --- a/lib/sup/poll.rb +++ b/lib/sup/poll.rb @@ -69,7 +69,7 @@ class PollManager end m end - yield "Found #{num} messages, #{numi} to inbox" unless num == 0 + yield "Found #{num} messages, #{numi} to inbox." unless num == 0 total_num += num total_numi += numi end -- 2.45.2