aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/lexer.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-12-19 11:13:11 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-12-19 11:13:11 +0200
commit0cbd2d1d03ff96eb668fc6a14311d96ed0f9f8b5 (patch)
tree74fed02118a8ea7b78e8e069981301a6c511f633 /libbuild2/lexer.cxx
parent86bd93d16bfb2d44c6d894db43b7ccd29374fccb (diff)
Restore newline escaping (line continuations) in double-quoted strings
Also make effective escaping in buildspec and command line variable overrides consistent with double-quoted strings.
Diffstat (limited to 'libbuild2/lexer.cxx')
-rw-r--r--libbuild2/lexer.cxx6
1 files changed, 3 insertions, 3 deletions
diff --git a/libbuild2/lexer.cxx b/libbuild2/lexer.cxx
index d82c135..04c15be 100644
--- a/libbuild2/lexer.cxx
+++ b/libbuild2/lexer.cxx
@@ -923,10 +923,10 @@ namespace build2
auto quoted_mode = [this] (lexer_mode m)
{
// In the double-quoted mode we only do effective escaping of the
- // special `$("\` characters plus `)` for symmetry. Nothing can be
- // escaped in single-quoted.
+ // special `$("\` characters, line continuations, plus `)` for
+ // symmetry. Nothing can be escaped in single-quoted.
//
- const char* esc (m == lexer_mode::double_quoted ? "$()\"\\" : "");
+ const char* esc (m == lexer_mode::double_quoted ? "$()\"\\\n" : "");
state_.push (state {
m, 0, nullopt, false, false, '\0', false, true, true,