diff --git a/hledger-lib/Hledger/Write/Ods.hs b/hledger-lib/Hledger/Write/Ods.hs index 492bc0583..6fb68ce52 100644 --- a/hledger-lib/Hledger/Write/Ods.hs +++ b/hledger-lib/Hledger/Write/Ods.hs @@ -213,6 +213,18 @@ formatCell cell = in printf "" style valueType : - printf "%s" (cellContent cell) : + printf "%s" (escape $ T.unpack $ cellContent cell) : "" : [] + +escape :: String -> String +escape = + concatMap $ \c -> + case c of + '\n' -> " " + '&' -> "&" + '<' -> "<" + '>' -> ">" + '"' -> """ + '\'' -> "'" + _ -> [c]