1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "tools/gn/config_values_extractors.h" 6 7 #include "tools/gn/escape.h" 8 9 namespace { 10 11 class EscapedStringWriter { 12 public: 13 EscapedStringWriter(const EscapeOptions& escape_options) 14 : escape_options_(escape_options) { 15 } 16 17 void operator()(const std::string& s, std::ostream& out) const { 18 out << " "; 19 EscapeStringToStream(out, s, escape_options_); 20 } 21 22 private: 23 const EscapeOptions& escape_options_; 24 }; 25 26 } // namespace 27 28 void RecursiveTargetConfigStringsToStream( 29 const Target* target, 30 const std::vector<std::string>& (ConfigValues::* getter)() const, 31 const EscapeOptions& escape_options, 32 std::ostream& out) { 33 RecursiveTargetConfigToStream(target, getter, 34 EscapedStringWriter(escape_options), out); 35 } 36