From ca7337e57786a0db79865d63e797b574942795e0 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Tue, 31 Jan 2017 14:54:02 +1100 Subject: Improved CSV unparsing and more checks on doCount input --- src/CSV.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/CSV.hs') diff --git a/src/CSV.hs b/src/CSV.hs index dd56961..b4850b4 100644 --- a/src/CSV.hs +++ b/src/CSV.hs @@ -55,7 +55,10 @@ specialChars s = (separator s):(quote s):(escape s):[] unParseRecord :: Settings -> [String] -> String unParseRecord settings record = let escFunc c = if (c == escape settings || c == quote settings) then (escape settings):c:[] else c:[] - escapeField s = ((quote settings) : (concatMap escFunc s)) ++ ((quote settings):[]) + escapeField s = + if ((escape settings) `elem` s || (quote settings) `elem` s || (separator settings) `elem` s) + then ((quote settings) : (concatMap escFunc s)) ++ ((quote settings):[]) + else s in List.intercalate [separator settings] (map escapeField record) -- cgit