diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-07 14:42:44 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-07 14:42:44 +0000 |
commit | 2bb6fcb6fd216cb32c4997f0a5793e51e75360bd (patch) | |
tree | 6fed17113abeaa63c969c6dc67a2b5684d78ca3c | |
parent | 6b3feab965578e1cc06e8b64f55902d43da8bce6 (diff) | |
download | ruby-2bb6fcb6fd216cb32c4997f0a5793e51e75360bd.tar.gz |
* lib/rexml/parsers/baseparser.rb, test/rexml/test_comment.rb:
allow a single hyphen in comment. [Bug 5278]
Reported by Thomas Fritzsche. Thanks!!!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/rexml/parsers/baseparser.rb | 2 | ||||
-rw-r--r-- | test/rexml/test_comment.rb | 25 |
3 files changed, 32 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Wed Sep 7 23:41:24 2011 Kouhei Sutou <kou@cozmixng.org> + + * lib/rexml/parsers/baseparser.rb, test/rexml/test_comment.rb: + allow a single hyphen in comment. [Bug 5278] + Reported by Thomas Fritzsche. Thanks!!! + Wed Sep 7 17:27:18 2011 NARUSE, Yui <naruse@ruby-lang.org> * lib/yaml.rb: explicitly specify ::Object to avoid the collision with diff --git a/lib/rexml/parsers/baseparser.rb b/lib/rexml/parsers/baseparser.rb index 0f1480b07d..6cddf6fc2c 100644 --- a/lib/rexml/parsers/baseparser.rb +++ b/lib/rexml/parsers/baseparser.rb @@ -346,7 +346,7 @@ module REXML md = @source.match( COMMENT_PATTERN, true ) case md[1] - when /--/, /-$/ + when /--/, /-\z/ raise REXML::ParseException.new("Malformed comment", @source) end diff --git a/test/rexml/test_comment.rb b/test/rexml/test_comment.rb new file mode 100644 index 0000000000..ebe3eead8d --- /dev/null +++ b/test/rexml/test_comment.rb @@ -0,0 +1,25 @@ +require "test/unit/testcase" + +require 'rexml/document' + +module REXMLTest + class CommentTester < Test::Unit::TestCase + # Bug #5278 + def test_hyphen_end_line_in_doctype + xml = <<-XML +<?xml version="1.0"?> +<!DOCTYPE root [ +<!-- comment end with hyphen - + here --> +]> +<root/> + XML + document = REXML::Document.new(xml) + comments = document.doctype.children.find_all do |child| + child.is_a?(REXML::Comment) + end + assert_equal([" comment end with hyphen -\n here "], + comments.collect(&:to_s)) + end + end +end |