Skip to content

Commit 7cd8c30

Browse files
committed
some more string newline escaping fixes
1 parent 96351b0 commit 7cd8c30

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/components/strings.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ end
297297

298298
function _unescape_string_expr(expr)
299299
if headof(expr) === :STRING || headof(expr) === :TRIPLESTRING
300-
expr.val = _unescape_string(replace(valof(expr), r"(?<!\\)\\\n[\s\n]*" => ""))
300+
expr.val = _unescape_string(replace(valof(expr), r"(?<!\\)((?:\\\\)*)\\\n[\s\n]*" => s"\1"))
301301
else
302302
for a in expr
303303
_unescape_string_expr(a)

test/parser.jl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,11 @@ end
736736
@test """x = Foo.naah\"\"\"a \$(asd) sd\\\n bsf\\\\leq\n\\\\leq\"\"\" """ |> test_expr
737737
@test """\"\"\"a \$(asd) sd\\\n bsf\\\\leq\n\\\\leq\"\"\"\nfoo""" |> test_expr
738738
@test """throw(ArgumentError("invalid \$(m == 2 ? "hex (\\\\x)" :
739-
"unicode (\\\$u)") escape sequence"))""" |> test_expr
739+
"unicode (\\\$u)") escape sequence"))""" |> test_expr
740+
@test "\"a\\\\\\\\\\\nb\"" |> test_expr
741+
for c in 0:12
742+
@test test_expr(string("\"a", '\\'^c, "\nb\""))
743+
end
740744
end
741745
end
742746

0 commit comments

Comments
 (0)