| Index: tools/gn/escape.cc
|
| diff --git a/tools/gn/escape.cc b/tools/gn/escape.cc
|
| index 58bb04e7f771e7f207a3bb293d009ec74264d47e..06f6ee8bec3d6b6758a62b498506b26aa09c85da 100644
|
| --- a/tools/gn/escape.cc
|
| +++ b/tools/gn/escape.cc
|
| @@ -48,6 +48,17 @@ void EscapeStringToString_Ninja(const base::StringPiece& str,
|
| NinjaEscapeChar(str[i], dest);
|
| }
|
|
|
| +template<typename DestString>
|
| +void EscapeStringToString_NinjaPreformatted(const base::StringPiece& str,
|
| + DestString* dest) {
|
| + // Only Ninja-escape $.
|
| + for (size_t i = 0; i < str.size(); i++) {
|
| + if (str[i] == '$')
|
| + dest->push_back('$');
|
| + dest->push_back(str[i]);
|
| + }
|
| +}
|
| +
|
| // Escape for CommandLineToArgvW and additionally escape Ninja characters.
|
| //
|
| // The basic algorithm is if the string doesn't contain any parse-affecting
|
| @@ -166,6 +177,9 @@ void EscapeStringToString(const base::StringPiece& str,
|
| NOTREACHED();
|
| }
|
| break;
|
| + case ESCAPE_NINJA_PREFORMATTED_COMMAND:
|
| + EscapeStringToString_NinjaPreformatted(str, dest);
|
| + break;
|
| default:
|
| NOTREACHED();
|
| }
|
|
|