add latin-1 wrapper for html_entities
authorPhilipp Gesang <philipp.gesang@intra2net.com>
Mon, 29 Nov 2021 13:24:10 +0000 (14:24 +0100)
committerPhilipp Gesang <philipp.gesang@intra2net.com>
Mon, 29 Nov 2021 13:26:30 +0000 (14:26 +0100)
Still a bit underwhelming as we can't express the encoding
difference in the type system.

src/stringfunc.hxx
test/stringfunc.cpp

index d945526..06d85f9 100644 (file)
@@ -358,6 +358,11 @@ std::string smart_html_entities(const std::string &input);
 std::string html_entities(std::string str);
 std::string html_entities_to_console(std::string str);
 
+inline std::string html_entities_iso (const std::string &str)
+{
+    return html_entities (iso_to_utf8 (str));
+}
+
 typedef std::pair<std::string::size_type, std::string::size_type> CommentZone;
 std::vector<CommentZone> find_html_comments(const std::string &str);
 void remove_html_comments(std::string &str);
index 26cc0c8..90bd63a 100644 (file)
@@ -128,6 +128,12 @@ BOOST_AUTO_TEST_CASE(html_entities3)
     BOOST_CHECK_EQUAL(string("&#270; &#3889; &#32904;"), output);
 }
 
+BOOST_AUTO_TEST_CASE(entities_latin1)
+{
+    BOOST_CHECK_EQUAL((std::string)"noop", html_entities_iso ("noop"));
+    BOOST_CHECK_EQUAL((std::string)"t&auml;st", html_entities_iso ("t\xe4st"));
+    BOOST_CHECK_EQUAL((std::string)"T&Auml;ST", html_entities_iso ("T\xc4ST"));
+}
 
 
 BOOST_AUTO_TEST_CASE(nice_unit_format1)