aboutsummaryrefslogtreecommitdiff
path: root/build2/parser.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-07-23 16:09:49 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-07-25 08:05:43 +0200
commitad7d4bd0722aa70ba634900cebf93a1b1814fed9 (patch)
treefbfa28c4602dea0be178e63d1e6a1b2667e85190 /build2/parser.cxx
parenta8bef4ff20100c518816c641ae1ff9783306c167 (diff)
Only do "effective escaping" (['"\$(]) on the command line
This will make things more convenient on Windows provided we use "sane" paths (no spaces, no (), etc).
Diffstat (limited to 'build2/parser.cxx')
-rw-r--r--build2/parser.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/build2/parser.cxx b/build2/parser.cxx
index 99e4227..a64a94e 100644
--- a/build2/parser.cxx
+++ b/build2/parser.cxx
@@ -2680,7 +2680,10 @@ namespace build2
{
path_ = &name;
- lexer l (is, *path_, &paren_processor);
+ // We do "effective escaping" and only for ['"\$(] (basically what's
+ // necessary inside a double-quoted literal plus the single quote).
+ //
+ lexer l (is, *path_, "\'\"\\$(", &paren_processor);
lexer_ = &l;
target_ = nullptr;
scope_ = root_ = global_scope;