def pipe_message
chunk = @chunk_lines[curpos]
chunk = nil unless chunk.is_a?(Chunk::Attachment)
message = @message_lines[curpos] unless chunk
return unless chunk || message
command = BufferManager.ask(:shell, "pipe command: ")
return if command.nil? || command.empty?
output = pipe_to_process(command) do |stream|
if chunk
stream.print chunk.raw_content
else
message.each_raw_message_line { |l| stream.print l }
end
end
if output
BufferManager.spawn "Output of '#{command}'", TextMode.new(output.ascii)
else
BufferManager.flash "'#{command}' done!"
end
end