summaryrefslogtreecommitdiffstats
path: root/clang/Driver/HTMLPrint.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-19 01:30:02 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-19 01:30:02 +0000
commit5ddff028610e471ff689006a04d59dcbe61fe49e (patch)
tree2d4ff7fc9ab41b20019ffcec2f234567263f85de /clang/Driver/HTMLPrint.cpp
parent265f780c2222fc356e99e6010ad79ba239d850ce (diff)
downloadbcm5719-llvm-5ddff028610e471ff689006a04d59dcbe61fe49e.tar.gz
bcm5719-llvm-5ddff028610e471ff689006a04d59dcbe61fe49e.zip
More cleanups to HTML rewriter API: remove the InsertTag method; was too complicated
and clients can achieve a cleaner design just by inserting tags directly. Reserve the "html" namespace for meta-level operations (e.g., escaping text, etc.) llvm-svn: 48524
Diffstat (limited to 'clang/Driver/HTMLPrint.cpp')
-rw-r--r--clang/Driver/HTMLPrint.cpp32
1 files changed, 21 insertions, 11 deletions
diff --git a/clang/Driver/HTMLPrint.cpp b/clang/Driver/HTMLPrint.cpp
index 6c8a1d1aadb..acb011c2160 100644
--- a/clang/Driver/HTMLPrint.cpp
+++ b/clang/Driver/HTMLPrint.cpp
@@ -50,22 +50,32 @@ HTMLPrinter::~HTMLPrinter() {
html::EscapeText(R, FileID);
html::AddLineNumbers(R, FileID);
- html::InsertOuterTag(R, html::PRE, StartLoc, EndLoc, 0, 0, true);
- html::InsertOuterTag(R, html::BODY, StartLoc, EndLoc, NULL, "\n", true);
- // Generate CSS.
+ // Generate header
+
+ {
+ std::ostringstream os;
- std::ostringstream css;
- css << "\n <style type=\"text/css\">\n";
- css << " .nums, .lines { vertical-align:top }\n";
- css << " .nums { padding-right:.5em; width:2.5em }\n";
- css << " </style>\n";
+ os << "<html>\n<head>\n"
+ << " <style type=\"text/css\">\n"
+ << " .nums, .lines { vertical-align:top }\n"
+ << " .nums { padding-right:.5em; width:2.5em }\n"
+ << " </style>\n"
+ << "</head>\n"
+ << "<body>\n<pre>";
+ R.InsertTextBefore(StartLoc, os.str().c_str(), os.str().size());
+ }
- // Add <head> and <html> tags.
+ // Generate footer
- html::InsertTagBefore(R, html::HEAD, StartLoc, StartLoc, 0,css.str().c_str());
- html::InsertOuterTag(R, html::HTML, StartLoc, EndLoc, 0, "\n");
+ {
+ std::ostringstream os;
+
+ os << "</pre>\n</body></html>\n";
+ R.InsertTextAfter(EndLoc, os.str().c_str(), os.str().size());
+ }
+
// Emit the HTML.
OpenPOWER on IntegriCloud