git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
C++: escape control chars when rendering
03eead3Andy Arvanitis
src/Language/PureScript/Pretty/Cpp.hs+2
@@ -31,6 +31,7 @@ import Data.Maybe (fromMaybe)
31import Data.Text (Text)
31import Data.Text (Text)
32import qualified Data.Text as T
32import qualified Data.Text as T
33import Data.Monoid ((<>))
33import Data.Monoid ((<>))
34+import Numeric (showHex)
34
35
35#if __GLASGOW_HASKELL__ < 710
36#if __GLASGOW_HASKELL__ < 710
36import Control.Applicative
37import Control.Applicative
@@ -410,6 +411,7 @@ encodeChar '\r' = "\\r"
410encodeChar '"' = "\\\""
411encodeChar '"' = "\\\""
411encodeChar '\'' = "\\'"
412encodeChar '\'' = "\\'"
412encodeChar '\\' = "\\\\"
413encodeChar '\\' = "\\\\"
414+encodeChar c | isControl c = T.pack $ "\\x" ++ showHex (fromEnum c) ""
413encodeChar c = T.singleton c
415encodeChar c = T.singleton c
414
416
415-- Note: Any lone surrogates will be replaced with U+FFFD
417-- Note: Any lone surrogates will be replaced with U+FFFD