Just num -> [(chr num)]
--- |A list of tuples whose first entry is a regular expression
--- matching XML entities, and whose second entry is the ASCII
--- character represented by that entity.
+-- | A list of tuples whose first entry is a regular expression
+-- matching XML entities, and whose second entry is the ASCII
+-- character represented by that entity.
+--
+-- For some reason, ampersands are escaped twice in the status
+-- text. Rather than unescape everything twice, we just stick "amp"
+-- in the list again.
xml_entities :: [(String, String)]
xml_entities = [("[lr]dquo", "\""),
("quot", "\""),
("[mn]dash", "-"),
("nbsp", " "),
("amp", "&"),
+ ("amp", "&"),
("lt", "<"),
("gt", ">"),
("hellip", "…")]
xml_tests :: [Test]
-xml_tests = [ test_replace_entities ]
+xml_tests = [ test_replace_entities, test_double_unescape ]
test_replace_entities :: Test
where
actual_text = (replace_entities ""The moon is gay……" said <insert the current president of the United States of America>. “It’s OK—–he’s not a real doctor.”")
expected_text = "\"The moon is gay……\" said <insert the current president of the United States of America>. \"It’s OK--he’s not a real doctor.\""
+
+
+test_double_unescape :: Test
+test_double_unescape =
+ TestCase $ assertEqual "The status text is unescaped twice." expected_text actual_text
+ where
+ actual_text = (replace_entities "As a kid, I'd pull a girl's hair to let her know I liked her, but now that I'm older &amp; wiser I simply hit her with my car.")
+ expected_text = "As a kid, I'd pull a girl's hair to let her know I liked her, but now that I'm older & wiser I simply hit her with my car."