From 2d3ff5a7aee24024765629d17ebff351ea11c9bb Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 21 Jul 2008 19:57:57 +0000 Subject: [PATCH] Make the GraphWriter be more consistent about the string used for the graph "title" and the graph "label", as there are differences in interpretation of these strings between viewers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53871 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/GraphWriter.h | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/include/llvm/Support/GraphWriter.h b/include/llvm/Support/GraphWriter.h index dab09e57c6a..afb2f545bbd 100644 --- a/include/llvm/Support/GraphWriter.h +++ b/include/llvm/Support/GraphWriter.h @@ -85,7 +85,7 @@ public: std::string GraphName = DOTTraits::getGraphName(G); if (!Name.empty()) - O << "digraph " << Name << " {\n"; + O << "digraph \"" << DOT::EscapeString(Name) << "\" {\n"; else if (!GraphName.empty()) O << "digraph \"" << DOT::EscapeString(GraphName) << "\" {\n"; else @@ -94,7 +94,9 @@ public: if (DOTTraits::renderGraphFromBottomUp()) O << "\trankdir=\"BT\";\n"; - if (!GraphName.empty()) + if (!Name.empty()) + O << "\tlabel=\"" << DOT::EscapeString(Name) << "\";\n"; + else if (!GraphName.empty()) O << "\tlabel=\"" << DOT::EscapeString(GraphName) << "\";\n"; O << DOTTraits::getGraphProperties(G); O << "\n"; @@ -234,12 +236,13 @@ public: template std::ostream &WriteGraph(std::ostream &O, const GraphType &G, - const std::string &Name = "") { + const std::string &Name = "", + const std::string &Title = "") { // Start the graph emission process... GraphWriter W(O, G); // Output the header for the graph... - W.writeHeader(Name); + W.writeHeader(Title); // Emit all of the nodes in the graph... W.writeNodes(); @@ -273,24 +276,10 @@ sys::Path WriteGraph(const GraphType &G, std::ofstream O(Filename.c_str()); if (O.good()) { - // Start the graph emission process... - GraphWriter W(O, G); - - // Output the header for the graph... - W.writeHeader(Title); - - // Emit all of the nodes in the graph... - W.writeNodes(); - - // Output any customizations on the graph - DOTGraphTraits::addCustomGraphFeatures(G, W); - - // Output the end of the graph - W.writeFooter(); + WriteGraph(O, G, Name, Title); cerr << " done. \n"; O.close(); - } else { cerr << "error opening file for writing!\n"; Filename.clear(); -- 2.34.1