diff options
Diffstat (limited to 'libbuild2')
-rw-r--r-- | libbuild2/context.cxx | 9 | ||||
-rw-r--r-- | libbuild2/parser.cxx | 10 |
2 files changed, 11 insertions, 8 deletions
diff --git a/libbuild2/context.cxx b/libbuild2/context.cxx index 08c4e7e..ccfa7f3 100644 --- a/libbuild2/context.cxx +++ b/libbuild2/context.cxx @@ -379,12 +379,13 @@ namespace build2 is.exceptions (istringstream::failbit | istringstream::badbit); // Similar to buildspec 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). + // `'"\$(` characters plus `)` for symmetry (basically what's escapable + // inside a double-quoted literal plus the single quote; note, however, + // that we exclude line continuations since they would make directory + // paths on Windows unusable). // path_name in ("<cmdline>"); - lexer l (is, in, 1 /* line */, "\'\"\\$()\n"); + lexer l (is, in, 1 /* line */, "\'\"\\$()"); // At the buildfile level the scope-specific variable should be // separated from the directory with a whitespace, for example: diff --git a/libbuild2/parser.cxx b/libbuild2/parser.cxx index 4350c88..2c8c8a6 100644 --- a/libbuild2/parser.cxx +++ b/libbuild2/parser.cxx @@ -8163,12 +8163,14 @@ namespace build2 buildspec parser:: parse_buildspec (istream& is, const path_name& in) { - // 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). + // We do "effective escaping" of the special `'"\$(` characters plus `)` + // for symmetry (basically what's escapable inside a double-quoted literal + // plus the single quote; note, however, that we exclude line + // continuations since they would make directory paths on Windows + // unusable). // path_ = ∈ - lexer l (is, *path_, 1 /* line */, "\'\"\\$()\n"); + lexer l (is, *path_, 1 /* line */, "\'\"\\$()"); lexer_ = &l; root_ = &ctx->global_scope.rw (); |