@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
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
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
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,
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
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