commit 7605bdfab2c8e61fa51bd0ebda618a5190e85a07
parent 45b4d6b3f89c379d3a52dba28bb0aeb4e5eb8ef3
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Thu, 9 Aug 2007 15:33:46 +0000
fix reply mode/edit field interactions
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@521 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
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
@@ -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
@@ -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
@@ -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