diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 6d4d7310..997a0f5d 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -83,7 +83,7 @@ module Jekyll # # Returns the escaped String. def xml_escape(input) - CGI.escapeHTML(input) + CGI.escapeHTML(input.to_s) end # CGI escape a string for use in a URL. Replaces any special characters diff --git a/test/test_filters.rb b/test/test_filters.rb index 8c6e0259..67bcd096 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -93,6 +93,10 @@ class TestFilters < Test::Unit::TestCase assert_equal "<code>command &lt;filename&gt;</code>", @filter.xml_escape("command <filename>") end + should "not error when xml escaping nil" do + assert_equal "", @filter.xml_escape(nil) + end + should "escape space as plus" do assert_equal "my+things", @filter.cgi_escape("my things") end