Skip to content

Commit 2c3edd0

Browse files
authored
Merge pull request #84 from tammela/fix-issue-83
fix: fix issue #83
2 parents a9aa804 + e338059 commit 2c3edd0

File tree

5 files changed

+13
-0
lines changed

5 files changed

+13
-0
lines changed

src/FormatVisitor.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,6 +1060,11 @@ antlrcpp::Any FormatVisitor::visitString(LuaParser::StringContext* ctx) {
10601060
*newstr.begin() = quote;
10611061
*newstr.rbegin() = quote;
10621062

1063+
// undo a transformation that invalidates strings in certain conditions
1064+
if (newstr.at(newstr.size() - 2) == '\\' &&
1065+
newstr.at(newstr.size() - 3) != '\\')
1066+
newstr.insert(newstr.size() - 2, "\\");
1067+
10631068
cur_writer() << newstr;
10641069
return nullptr;
10651070
}

test/testdata/literals/_doublequote.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ local foo = '\''
33
local bar = 'don\'t'
44
local bar = '"'
55
local foobar = '\\\\"'
6+
local kek = '\\'
7+
local topkek = 'a\\'

test/testdata/literals/_singlequote.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ local foo = "\""
33
local bar = "don't"
44
local foo = "'"
55
local foobar = "\\\\'"
6+
local kek = "\\"
7+
local topkek = "a\\"

test/testdata/literals/doublequote.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ local foo = "'"
33
local bar = "don't"
44
local bar = "\""
55
local foobar = "\\\\\""
6+
local kek = "\\"
7+
local topkek = "a\\"

test/testdata/literals/singlequote.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ local foo = '"'
33
local bar = 'don\'t'
44
local foo = '\''
55
local foobar = '\\\\\''
6+
local kek = '\\'
7+
local topkek = 'a\\'

0 commit comments

Comments
 (0)