diff --git a/lib/rdoc/markup/attribute_manager.rb b/lib/rdoc/markup/attribute_manager.rb index 3296d17af2..6edb30b867 100644 --- a/lib/rdoc/markup/attribute_manager.rb +++ b/lib/rdoc/markup/attribute_manager.rb @@ -246,7 +246,7 @@ def add_special pattern, name # Processes +str+ converting attributes, HTML and specials def flow str - @str = str + @str = str.dup mask_protected_sequences diff --git a/test/test_rdoc_markup_attribute_manager.rb b/test/test_rdoc_markup_attribute_manager.rb index c0f7666a01..b51e422474 100644 --- a/test/test_rdoc_markup_attribute_manager.rb +++ b/test/test_rdoc_markup_attribute_manager.rb @@ -332,6 +332,14 @@ def test_protect @am.flow("\\_cat_dog")) end + def test_lost_tag_for_the_second_time + str = "cat dog" + assert_equal(["cat ", @tt_on, "dog", @tt_off], + @am.flow(str)) + assert_equal(["cat ", @tt_on, "dog", @tt_off], + @am.flow(str)) + end + def test_special @am.add_special(RDoc::CrossReference::CROSSREF_REGEXP, :CROSSREF)