on master help sign in
Escape newlines in GLSL blocks
a6568a6Evan Czaplicki
compiler/src/Parse/Shader.hs+4−2
@@ -1,4 +1,5 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2+{-# LANGUAGE OverloadedStrings #-}
2module Parse.Shader
3module Parse.Shader
3 ( shader
4 ( shader
4 )
5 )
@@ -28,10 +29,11 @@ import qualified Parse.Primitives.Shader as Shader
28
29
29shader :: R.Position -> Parser Src.Expr
30shader :: R.Position -> Parser Src.Expr
30shader start@(R.Position row col) =
31shader start@(R.Position row col) =
31− do src <- Shader.block
32+ do block <- Shader.block
32− shdr <- parseSource row col (Text.unpack src)
33+ shdr <- parseSource row col (Text.unpack block)
33 end@(R.Position row2 col2) <- getPosition
34 end@(R.Position row2 col2) <- getPosition
34 let uid = List.intercalate ":" (map show [row, col, row2, col2])
35 let uid = List.intercalate ":" (map show [row, col, row2, col2])
36+ let src = Text.replace "\n" "\\n" (Text.replace "\r\n" "\\n" block)
35 return (A.at start end (Src.Shader (Text.pack uid) src shdr))
37 return (A.at start end (Src.Shader (Text.pack uid) src shdr))
36
38
37
39