From 2a1f3920c678398a53a82eb154703213f40c896c Mon Sep 17 00:00:00 2001 From: Henning Thielemann Date: Sat, 27 Jul 2024 23:51:02 +0200 Subject: [PATCH] lib: Write.Ods.escape: escape cell contents --- hledger-lib/Hledger/Write/Ods.hs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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]