[ruby-trunk - Bug #8701][Open] REXML bug in parsing notation declarations

Issue #8701 has been reported by ohai (Ippei Obayashi).


Bug #8701: REXML bug in parsing notation declarations

Author: ohai (Ippei Obayashi)
Status: Open
Priority: Normal
Assignee: kou (Kouhei S.)
Category: lib
Target version:
ruby -v: ruby 2.1.0dev (2013-07-28 trunk 42214) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

添付したコード(test_notationdecl.rb)を実行すると、[“x”, “y”, “z”]
が表示することが期待されますが、[“y”, “z”] と表示されます。

パースに使っている正規表現の問題で, 添付したパッチ(rexml-dtd-notationdecl-fix.patch)で直ると思います。
テストも添付しています。

このパーサではあちこちで ^ で始まる正規表現が使われていますが、おそらくすべて \A
のつもりであろうと思われます。添付したパッチでは関係のある部分だけ修正していますが、他の正規表現も修正したほうが良いかもしれません。

Issue #8701 has been updated by kou (Kouhei S.).

ありがとうございます!

既存のテストを整理してから取り込んだので遅くなってしまいました。

DOCTYPEの中のやつは全部\Aを意図していそうだったのでそうしました。DOCTYPEの外のやつはパッと見だと判断がつかなかったのでまだそのままにしてあります。


Bug #8701: REXML bug in parsing notation declarations

Author: ohai (Ippei Obayashi)
Status: Closed
Priority: Normal
Assignee: kou (Kouhei S.)
Category: lib
Target version:
ruby -v: ruby 2.1.0dev (2013-07-28 trunk 42214) [x86_64-linux]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN

添付したコード(test_notationdecl.rb)を実行すると、[“x”, “y”, “z”]
が表示することが期待されますが、[“y”, “z”] と表示されます。

パースに使っている正規表現の問題で, 添付したパッチ(rexml-dtd-notationdecl-fix.patch)で直ると思います。
テストも添付しています。

このパーサではあちこちで ^ で始まる正規表現が使われていますが、おそらくすべて \A
のつもりであろうと思われます。添付したパッチでは関係のある部分だけ修正していますが、他の正規表現も修正したほうが良いかもしれません。