From f7a40f4d6d3df694bc5f257714da3c3b7683909e Mon Sep 17 00:00:00 2001 From: Aristotle Pagaltzis Date: Tue, 20 Jan 2009 10:12:23 +0100 Subject: [PATCH 1/2] entitify ampersands to prevent malformed unescaping output --- lib/jekyll/filters.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 6cfa6361..cb7c5d51 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -14,7 +14,7 @@ module Jekyll end def xml_escape(input) - input.gsub("<", "<").gsub(">", ">") + input.gsub("&", "&").gsub("<", "<").gsub(">", ">") end def number_of_words(input) @@ -36,4 +36,4 @@ module Jekyll end end -end \ No newline at end of file +end From ea70d8ac7ae26f16191c24c0350f81a72c4e1919 Mon Sep 17 00:00:00 2001 From: Aristotle Pagaltzis Date: Tue, 20 Jan 2009 10:21:22 +0100 Subject: [PATCH 2/2] add minimal tests for xml_escape filter --- test/test_filters.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/test/test_filters.rb b/test/test_filters.rb index 50da2d32..9cd25f6d 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -29,4 +29,9 @@ class TestFilters < Test::Unit::TestCase assert_equal "chunky, bacon, bits, and pieces", @filter.array_to_sentence_string(["chunky", "bacon", "bits", "pieces"]) end -end \ No newline at end of file + def test_xml_escape_with_ampersands + assert_equal "AT&T", @filter.xml_escape("AT&T") + assert_equal "<code>command &lt;filename&gt;</code>", @filter.xml_escape("command <filename>") + end + +end