diff options
Diffstat (limited to 'tools/gn/escape.cc')
-rw-r--r-- | tools/gn/escape.cc | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/tools/gn/escape.cc b/tools/gn/escape.cc deleted file mode 100644 index 5fc7b6f..0000000 --- a/tools/gn/escape.cc +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "tools/gn/escape.h" - -#include "base/containers/stack_container.h" - -namespace { - -template<typename DestString> -void EscapeStringToString(const base::StringPiece& str, - const EscapeOptions& options, - DestString* dest) { - bool used_quotes = false; - - for (size_t i = 0; i < str.size(); i++) { - if (str[i] == '$' && options.mode == ESCAPE_NINJA) { - // Escape dollars signs since ninja treats these specially. - dest->push_back('$'); - dest->push_back('$'); - } else if (str[i] == '"' && options.mode == ESCAPE_SHELL) { - // Escape quotes with backslashes for the command-line (Ninja doesn't - // care). - dest->push_back('\\'); - dest->push_back('"'); - } else if (str[i] == ' ') { - if (options.mode == ESCAPE_NINJA) { - // For ninja just escape spaces with $. - dest->push_back('$'); - } else if (options.mode == ESCAPE_SHELL && !options.inhibit_quoting) { - // For the shell, quote the whole string. - if (!used_quotes) { - used_quotes = true; - dest->insert(dest->begin(), '"'); - } - } - dest->push_back(' '); -#if defined(OS_WIN) - } else if (str[i] == '/' && options.convert_slashes) { - // Convert slashes on Windows if requested. - dest->push_back('\\'); -#else - } else if (str[i] == '\\' && options.mode == ESCAPE_SHELL) { - // For non-Windows shell, escape backslashes. - dest->push_back('\\'); - dest->push_back('\\'); -#endif - } else { - dest->push_back(str[i]); - } - } - - if (used_quotes) - dest->push_back('"'); -} - -} // namespace - -std::string EscapeString(const base::StringPiece& str, - const EscapeOptions& options) { - std::string result; - result.reserve(str.size() + 4); // Guess we'll add a couple of extra chars. - EscapeStringToString(str, options, &result); - return result; -} - -void EscapeStringToStream(std::ostream& out, - const base::StringPiece& str, - const EscapeOptions& options) { - // Escape to a stack buffer and then write out to the stream. - base::StackVector<char, 256> result; - result->reserve(str.size() + 4); // Guess we'll add a couple of extra chars. - EscapeStringToString(str, options, &result.container()); - if (!result->empty()) - out.write(result->data(), result->size()); -} |