@@ -100,11 +100,15 @@ toEntities (c:cs)
100100-- Unescapes XML entities
101101fromEntities :: String -> String
102102fromEntities ('&':xs) =
103− case lookupEntity ent of
103+ case lookupEntity ent' of
104104 Just c -> c : fromEntities rest
105105 Nothing -> '&' : fromEntities xs
106106 where (ent, rest) = case break (\c -> isSpace c || c == ';') xs of
107107 (zs,';':ys) -> (zs,ys)
108− _ -> ("",xs)
108+ (zs, ys) -> (zs,ys)
109+ ent' = case ent of
110+ '#':_ -> ent
111+ _ -> ent ++ ";"
112+
109113fromEntities (x:xs) = x : fromEntities xs
110114fromEntities [] = []