Skip to content

Commit e9b3969

Browse files
committed
Move the raise statements in parse_id individually.
1 parent 30118a9 commit e9b3969

1 file changed

Lines changed: 17 additions & 15 deletions

File tree

lib/rexml/parsers/baseparser.rb

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -677,37 +677,39 @@ def parse_id(base_error_message,
677677
pubid = pubid_literal[1..-2] if pubid_literal # Remove quote
678678
system_literal = md[2]
679679
system = system_literal[1..-2] if system_literal # Remove quote
680-
return ["PUBLIC", pubid, system]
680+
["PUBLIC", pubid, system]
681681
elsif accept_public_id and (md = @source.match(Private::PUBLIC_ID_PATTERN, true))
682682
pubid = system = nil
683683
pubid_literal = md[1]
684684
pubid = pubid_literal[1..-2] if pubid_literal # Remove quote
685-
return ["PUBLIC", pubid, nil]
686-
end
687-
if @source.match?(/(?:\s+[^'"]|\s*[\[>])/um)
688-
details = "public ID literal is missing"
685+
["PUBLIC", pubid, nil]
686+
elsif @source.match?(/(?:\s+[^'"]|\s*[\[>])/um)
687+
message = "#{base_error_message}: public ID literal is missing"
688+
raise REXML::ParseException.new(message, @source)
689689
elsif !@source.match?(Private::PUBLIC_ID_PATTERN)
690-
details = "invalid public ID literal"
690+
message = "#{base_error_message}: invalid public ID literal"
691+
raise REXML::ParseException.new(message, @source)
691692
else
692-
details = "garbage after public ID literal"
693+
message = "#{base_error_message}: garbage after public ID literal"
694+
raise REXML::ParseException.new(message, @source)
693695
end
694696
elsif @source.match?("SYSTEM", true)
695697
if (md = @source.match(Private::EXTERNAL_ID_SYSTEM_PATTERN, true))
696698
system = nil
697699
system_literal = md[1]
698700
system = system_literal[1..-2] if system_literal # Remove quote
699-
return ["SYSTEM", nil, system]
700-
end
701-
if @source.match?(/(?:\s+[^'"]|\s*[\[>])/um)
702-
details = "system literal is missing"
701+
["SYSTEM", nil, system]
702+
elsif @source.match?(/(?:\s+[^'"]|\s*[\[>])/um)
703+
message = "#{base_error_message}: system literal is missing"
704+
raise REXML::ParseException.new(message, @source)
703705
else
704-
details = "invalid system literal"
706+
message = "#{base_error_message}: invalid system literal"
707+
raise REXML::ParseException.new(message, @source)
705708
end
706709
else
707-
details = "invalid ID type"
710+
message = "#{base_error_message}: invalid ID type"
711+
raise REXML::ParseException.new(message, @source)
708712
end
709-
message = "#{base_error_message}: #{details}"
710-
raise REXML::ParseException.new(message, @source)
711713
end
712714

713715
def process_comment

0 commit comments

Comments
 (0)