// IFfy // // Douglas Thrift // // $Id$ #include "Cleaner.hpp" void Cleaner::clean() { // XXX: do stuff if (segments.First().type != TAG || segments.First().tag != "html") { Tag tag(OPEN, "html"); segments.InsertFirst(tag); } if (segments.Last().type == TEXT) { std::string segment(segments.Last().text); if (segment.find_first_not_of("\r\n") == std::string::npos) segments.RemoveLast(); } if (segments.Last().type != TAG || segments.Last().tag != "html") { Tag tag(CLOSE, "html"); segments.InsertLast(tag); } } ios::PrintWriter& operator<<(ios::PrintWriter& pout, const Cleaner& cleaner) { _foreach (ext::Vector, segment, cleaner.segments) { switch (segment->type) { case TEXT: pout << segment->text; break; case TAG: pout << segment->tag; } } return pout; }