More robust escaping of $in, $out paths
authorNicholas Hutchinson <nshutchinson@gmail.com>
Sat, 30 Nov 2013 22:33:02 +0000 (22:33 +0000)
committerNicholas Hutchinson <nshutchinson@gmail.com>
Mon, 6 Jan 2014 19:30:28 +0000 (08:30 +1300)
commit664edba804ddd5363299f2af5183109bdc9715b1
treec50e267ade56530904676f103905d4a8a2ba3ba0
parent2517b75781decd49bc82f05f8336c509f7b2c62e
More robust escaping of $in, $out paths

In summary: don’t escape if the path doesn’t contain problematic characters, otherwise:
- Shell: enclose string in single quotes, escape embedded single quotes with the magic quote-backslash-quote sequence
- Win32: Escape double quotes by doubling the number of consecutive backslashes that precede them (if any) and adding one more. Finally, double the number of trailing backslashes, and enclose the whole thing in double quotes.
src/graph.cc
src/graph_test.cc
src/manifest_parser_test.cc
src/util.cc
src/util.h
src/util_test.cc