def read_xml_instruction(src, output)
m = /^\s*<\?((\w+)\s*)?(.*)$/.match src.shift_line
raise "BugBug" unless m
target = m[2] || ''
code = m[3]
until code.include?('?>')
code << "\n" << src.shift_line
end
unless code =~ /\?>\s*$/
garbage = (/\?>(.*)$/.match(code))[1]
maruku_error "Trailing garbage on last line: #{garbage.inspect}:\n" +
code.gsub(/^/, '|'), src
end
code.gsub!(/\?>\s*$/, '')
if target == 'mrk' && MaRuKu::Globals[:unsafe_features]
result = safe_execute_code(self, code)
if result
if result.kind_of? String
raise "Not expected"
else
output.push(*result)
end
end
else
output << md_xml_instr(target, code)
end
end