From 1457cdf3d7615f42d33246fb456bcb4332b35e6a Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 19 Dec 2022 14:20:21 +0200 Subject: Disable `)` escaping in buildspec, command line variable overrides Similar to line continuations, that would make directory paths on Windows unusable, for example: b info(C:\myproj\) Note that while this is less of a problem in command line variable overrides, we disable it there for consistency. --- libbuild2/context.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'libbuild2/context.cxx') diff --git a/libbuild2/context.cxx b/libbuild2/context.cxx index ccfa7f3..eabd279 100644 --- a/libbuild2/context.cxx +++ b/libbuild2/context.cxx @@ -379,13 +379,13 @@ namespace build2 is.exceptions (istringstream::failbit | istringstream::badbit); // Similar to buildspec 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). + // `'"\$(` characters (basically what's escapable inside a double-quoted + // literal plus the single quote; note, however, that we exclude line + // continuations and `)` since they would make directory paths on + // Windows unusable). // path_name in (""); - lexer l (is, in, 1 /* line */, "\'\"\\$()"); + 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: -- cgit v1.1