From: Douglas Gregor Date: Wed, 30 Nov 2011 15:00:49 +0000 (+0000) Subject: Switch the module map printer over to X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7f5fd8e79c5e528da0307792efd354ffa202722d;p=clang Switch the module map printer over to raw_ostream::write_escaped. Thanks, Benjamin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145491 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Lex/ModuleMap.cpp b/lib/Lex/ModuleMap.cpp index 984c7985e0..72d2bee796 100644 --- a/lib/Lex/ModuleMap.cpp +++ b/lib/Lex/ModuleMap.cpp @@ -72,31 +72,6 @@ static void indent(llvm::raw_ostream &OS, unsigned Spaces) { OS << std::string(Spaces, ' '); } -static void printEscapedString(llvm::raw_ostream &OS, StringRef String) { - for (StringRef::iterator I = String.begin(), E = String.end(); I != E; ++I) { - unsigned char Char = *I; - - switch (Char) { - default: - if (isprint(Char)) - OS << (char)Char; - else // Output anything hard as an octal escape. - OS << '\\' - << (char)('0'+ ((Char >> 6) & 7)) - << (char)('0'+ ((Char >> 3) & 7)) - << (char)('0'+ ((Char >> 0) & 7)); - break; - // Handle some common non-printable cases to make dumps prettier. - case '\\': OS << "\\\\"; break; - case '"': OS << "\\\""; break; - case '\n': OS << "\\n"; break; - case '\t': OS << "\\t"; break; - case '\a': OS << "\\a"; break; - case '\b': OS << "\\b"; break; - } - } -} - void ModuleMap::Module::print(llvm::raw_ostream &OS, unsigned Indent) const { indent(OS, Indent); if (IsFramework) @@ -108,14 +83,14 @@ void ModuleMap::Module::print(llvm::raw_ostream &OS, unsigned Indent) const { if (UmbrellaHeader) { indent(OS, Indent + 2); OS << "umbrella \""; - printEscapedString(OS, UmbrellaHeader->getName()); + OS.write_escaped(UmbrellaHeader->getName()); OS << "\"\n"; } for (unsigned I = 0, N = Headers.size(); I != N; ++I) { indent(OS, Indent + 2); OS << "header \""; - printEscapedString(OS, Headers[I]->getName()); + OS.write_escaped(Headers[I]->getName()); OS << "\"\n"; }