diff options
Diffstat (limited to 'Logs/Remote.hs')
-rw-r--r-- | Logs/Remote.hs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Logs/Remote.hs b/Logs/Remote.hs index ccfb4bb31..5c9d67df0 100644 --- a/Logs/Remote.hs +++ b/Logs/Remote.hs @@ -72,14 +72,15 @@ configUnEscape = unescape unescape (c:rest) | c == '&' = entity rest | otherwise = c : unescape rest - entity s = if ok - then chr (Prelude.read num) : unescape rest - else '&' : unescape s + entity s + | not (null num) && ";" `isPrefixOf` r = + chr (Prelude.read num) : unescape rest + | otherwise = + '&' : unescape s where num = takeWhile isNumber s r = drop (length num) s rest = drop 1 r - ok = not (null num) && ";" `isPrefixOf` r {- for quickcheck -} prop_idempotent_configEscape :: String -> Bool |