summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/HTMLDiagnostics.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-03-02 23:05:40 +0000
committerTed Kremenek <kremenek@apple.com>2009-03-02 23:05:40 +0000
commitc62af6c4cfde1bb2b4dede7541a00870943ddce5 (patch)
tree163de0fe0e3d7d9b1a4a922b044d70521d94b0b9 /clang/lib/Frontend/HTMLDiagnostics.cpp
parent49d64927e1920e583c2366e50353426ad17e6e72 (diff)
downloadbcm5719-llvm-c62af6c4cfde1bb2b4dede7541a00870943ddce5.tar.gz
bcm5719-llvm-c62af6c4cfde1bb2b4dede7541a00870943ddce5.zip
Adjust HTML message bubbles to utilize information from PathDiagnosticPiece::Kind.
llvm-svn: 65891
Diffstat (limited to 'clang/lib/Frontend/HTMLDiagnostics.cpp')
-rw-r--r--clang/lib/Frontend/HTMLDiagnostics.cpp38
1 files changed, 26 insertions, 12 deletions
diff --git a/clang/lib/Frontend/HTMLDiagnostics.cpp b/clang/lib/Frontend/HTMLDiagnostics.cpp
index 9996fbbcd7a..60e99be01f4 100644
--- a/clang/lib/Frontend/HTMLDiagnostics.cpp
+++ b/clang/lib/Frontend/HTMLDiagnostics.cpp
@@ -388,7 +388,7 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID,
// Next, determine the approximate size of the message bubble in em.
unsigned em;
- const unsigned max_line = 120;
+ const unsigned max_line = 110;
if (max_token >= max_line)
em = max_token / 2;
@@ -407,9 +407,16 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID,
em = characters / 2;
}
- // Now generate the message bubble.
- std::string s;
- llvm::raw_string_ostream os(s);
+ // Now generate the message bubble.
+ const char *Kind = 0;
+ switch (P.getKind()) {
+ default: break;
+ case PathDiagnosticPiece::Event: Kind = "Event"; break;
+ case PathDiagnosticPiece::ControlFlow: Kind = "Control"; break;
+ }
+
+ std::string sbuf;
+ llvm::raw_string_ostream os(sbuf);
os << "\n<tr><td class=\"num\"></td><td class=\"line\"><div id=\"";
@@ -419,19 +426,26 @@ void HTMLDiagnostics::HandlePiece(Rewriter& R, FileID BugFileID,
os << "Path" << num;
os << "\" class=\"msg";
- switch (P.getKind()) {
- default: break;
- case PathDiagnosticPiece::Event: os << " msgEvent"; break;
- case PathDiagnosticPiece::ControlFlow: os << " msgControl"; break;
- }
+ if (Kind) os << " msg" << Kind;
os << "\" style=\"margin-left:" << PosNo << "ex";
if (em < max_line/2) os << "; max-width:" << em << "em";
os << "\">";
- if (max > 1)
- os << "<span class=\"PathIndex\">[" << num << "]</span> ";
+ if (max > 1) {
+ os << "<table class=\"msgT\"><tr><td valign=\"top\">";
+ os << "<div class=\"PathIndex";
+ if (Kind) os << " PathIndex" << Kind;
+ os << "\">" << num << "</div>";
+ os << "</td><td>";
+ }
+
+ os << html::EscapeText(Msg);
+
+ if (max > 1) {
+ os << "</td></tr></table>";
+ }
- os << html::EscapeText(Msg) << "</div></td></tr>";
+ os << "</div></td></tr>";
// Insert the new html.
unsigned DisplayPos = LineEnd - FileStart;
OpenPOWER on IntegriCloud