From 0cbd2d1d03ff96eb668fc6a14311d96ed0f9f8b5 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 19 Dec 2022 11:13:11 +0200 Subject: 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. --- libbuild2/parser.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'libbuild2/parser.cxx') diff --git a/libbuild2/parser.cxx b/libbuild2/parser.cxx index 5128979..4350c88 100644 --- a/libbuild2/parser.cxx +++ b/libbuild2/parser.cxx @@ -8163,11 +8163,12 @@ namespace build2 buildspec parser:: parse_buildspec (istream& is, const path_name& in) { - // We do "effective escaping" and only for ['"\$(] (basically what's - // necessary inside a double-quoted literal plus the single quote). + // We do "effective escaping" of the special `'"\$(` characters, line + // continuations, plus `)` for symmetry (basically what's escapable inside + // a double-quoted literal plus the single quote). // path_ = ∈ - lexer l (is, *path_, 1 /* line */, "\'\"\\$("); + lexer l (is, *path_, 1 /* line */, "\'\"\\$()\n"); lexer_ = &l; root_ = &ctx->global_scope.rw (); -- cgit v1.1