def self.process_attribute_entry(reader, parent, attributes = nil, match = nil)
match ||= (reader.has_more_lines? ? AttributeEntryRx.match(reader.peek_line) : nil)
if match
name = match[1]
unless (value = match[2] || '').empty?
if value.end_with?(line_continuation = LINE_CONTINUATION) ||
value.end_with?(line_continuation = LINE_CONTINUATION_LEGACY)
value = value.chop.rstrip
while reader.advance
break if (next_line = reader.peek_line.strip).empty?
if (keep_open = next_line.end_with? line_continuation)
next_line = next_line.chop.rstrip
end
separator = (value.end_with? LINE_BREAK) ? EOL : ' '
value = %(#{value}#{separator}#{next_line})
break unless keep_open
end
end
end
store_attribute(name, value, (parent ? parent.document : nil), attributes)
true
else
false
end
end