Loading src/html.cpp +19 −27 Original line number Diff line number Diff line Loading @@ -79,7 +79,6 @@ namespace libhtmlpp { libhtmlpp::HtmlString::HtmlString(){ _HTable=nullptr; _HTableSize=0; _RootNode=nullptr; } libhtmlpp::HtmlString::HtmlString(const char* str) : HtmlString(){ Loading @@ -97,7 +96,6 @@ libhtmlpp::HtmlString::~HtmlString(){ } } delete[] _HTable; delete _RootNode; } libhtmlpp::HtmlString::HtmlString(const libhtmlpp::HtmlString& str) : HtmlString() { Loading Loading @@ -137,11 +135,9 @@ void libhtmlpp::HtmlString::clear(){ } } delete[] _HTable; delete _RootNode; _HTable=nullptr; _HTableSize=0; _RootNode=nullptr; _Data.clear(); } Loading Loading @@ -239,14 +235,11 @@ const char * libhtmlpp::HtmlString::c_str(){ return _CStr.data(); } libhtmlpp::HtmlElement* libhtmlpp::HtmlString::parse() { void libhtmlpp::HtmlString::parse(HtmlElement &dest) { HTMLException excp; _parseTree(); long pos = 0; if(_RootNode) delete _RootNode; _RootNode = (HtmlElement*)_buildTree(pos); return _RootNode; dest=(HtmlElement*)_buildTree(pos); } bool libhtmlpp::HtmlString::validate(std::string *err){ Loading Loading @@ -1054,12 +1047,13 @@ const char * libhtmlpp::CommentElement::getComment(){ libhtmlpp::HtmlPage::HtmlPage(){ } libhtmlpp::HtmlPage::~HtmlPage(){ } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadFile(const char* path){ void libhtmlpp::HtmlPage::loadFile(libhtmlpp::HtmlElement &html,const char* path){ std::string data; char tmp[HTML_BLOCKSIZE]; std::ifstream fs; Loading @@ -1076,33 +1070,29 @@ libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadFile(const char* path){ } fs.close(); _CheckHeader(data); libhtmlpp::HtmlElement *el=loadString(data); return el; } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const std::string &src){ _Page=src.c_str(); return _Page.parse(); loadString(html,data); } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const char *src){ _Page=src; return _Page.parse(); void libhtmlpp::HtmlPage::loadString(libhtmlpp::HtmlElement &html,const std::string &src){ HtmlString buf=src.c_str(); buf.parse(html); } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const HtmlString &node){ return _Page.parse(); void libhtmlpp::HtmlPage::loadString(libhtmlpp::HtmlElement &html,const char *src){ HtmlString buf=src; buf.parse(html); } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const HtmlString *node){ return _Page.parse(); void libhtmlpp::HtmlPage::loadString(libhtmlpp::HtmlElement &html,const HtmlString &node){ HtmlString buf=node; buf.parse(html); } void libhtmlpp::HtmlPage::saveFile(const char* path){ void libhtmlpp::HtmlPage::saveFile(libhtmlpp::HtmlElement &html,const char* path){ HtmlString data; std::ofstream fs; print(_Page.parse(),data); print(&html,data); try{ fs.open(path); Loading Loading @@ -1438,10 +1428,12 @@ void libhtmlpp::HtmlTable::insert(libhtmlpp::HtmlElement* element){ for(Column *ccol=crow->_firstColumn; ccol; ccol=ccol->_nextColumn ){ HtmlString buf; HtmlElement element; buf << "<td>"; buf << ccol->Data.c_str(); buf << "</td>"; hrow.appendChild(buf.parse()); buf.parse(element); hrow.appendChild(&element); } element->appendChild(&hrow); Loading src/html.h +7 −9 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ namespace libhtmlpp { void clear(); bool empty(); const char * c_str(); HtmlElement* parse(); void parse(HtmlElement &dest); bool validate(std::string *err); private: void _parseTree(); Loading @@ -225,7 +225,6 @@ namespace libhtmlpp { std::vector<char> _CStr; long** _HTable; size_t _HTableSize; HtmlElement* _RootNode; friend void HtmlEncode(const char *input,HtmlString *output); }; Loading @@ -236,15 +235,14 @@ namespace libhtmlpp { public: HtmlPage(); ~HtmlPage(); HtmlElement *loadFile(const char* path); void saveFile(const char* path); HtmlElement *loadString(const std::string &src); HtmlElement *loadString(const char *src); HtmlElement *loadString(const HtmlString &node); HtmlElement *loadString(const HtmlString *node); void loadFile(libhtmlpp::HtmlElement &html,const char* path); void saveFile(libhtmlpp::HtmlElement &html,const char* path); void loadString(libhtmlpp::HtmlElement &html,const std::string &src); void loadString(libhtmlpp::HtmlElement &html,const char *src); void loadString(libhtmlpp::HtmlElement &html,const HtmlString &node); void loadString(libhtmlpp::HtmlElement &html,const HtmlString *node); private: void _CheckHeader(const HtmlString& page); HtmlString _Page; }; class HtmlTable { Loading test/htmlcopytest.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -61,15 +61,17 @@ private: int main(int arc,char *argv[]){ libhtmlpp::HtmlPage page; try{ libhtmlpp::Element *index=page.loadFile(argv[1]); libhtmlpp::HtmlElement index; HtmlCopy cpy(index); page.loadFile(index,argv[1]); HtmlCopy cpy(&index); libhtmlpp::HtmlString html; std::cout << "Orginal html:" << std::endl; libhtmlpp::print(index,html); libhtmlpp::print(&index,html); std::cout << html.c_str() << std::endl; std::cout << "Modified html:" << std::endl; Loading test/htmlpagetest.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -37,9 +37,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. int main(int arc,char *argv[]){ libhtmlpp::HtmlPage page; try{ libhtmlpp::Element *index=page.loadFile(argv[1]); libhtmlpp::HtmlElement index; page.loadFile(index,argv[1]); libhtmlpp::HtmlString html; libhtmlpp::print(index,html); libhtmlpp::print(&index,html); std::cout << html.c_str() << std::endl; std::cout << Green << "Test Passed!" << NOCOLOR << std::endl; }catch(libhtmlpp::HTMLException &exp){ Loading Loading
src/html.cpp +19 −27 Original line number Diff line number Diff line Loading @@ -79,7 +79,6 @@ namespace libhtmlpp { libhtmlpp::HtmlString::HtmlString(){ _HTable=nullptr; _HTableSize=0; _RootNode=nullptr; } libhtmlpp::HtmlString::HtmlString(const char* str) : HtmlString(){ Loading @@ -97,7 +96,6 @@ libhtmlpp::HtmlString::~HtmlString(){ } } delete[] _HTable; delete _RootNode; } libhtmlpp::HtmlString::HtmlString(const libhtmlpp::HtmlString& str) : HtmlString() { Loading Loading @@ -137,11 +135,9 @@ void libhtmlpp::HtmlString::clear(){ } } delete[] _HTable; delete _RootNode; _HTable=nullptr; _HTableSize=0; _RootNode=nullptr; _Data.clear(); } Loading Loading @@ -239,14 +235,11 @@ const char * libhtmlpp::HtmlString::c_str(){ return _CStr.data(); } libhtmlpp::HtmlElement* libhtmlpp::HtmlString::parse() { void libhtmlpp::HtmlString::parse(HtmlElement &dest) { HTMLException excp; _parseTree(); long pos = 0; if(_RootNode) delete _RootNode; _RootNode = (HtmlElement*)_buildTree(pos); return _RootNode; dest=(HtmlElement*)_buildTree(pos); } bool libhtmlpp::HtmlString::validate(std::string *err){ Loading Loading @@ -1054,12 +1047,13 @@ const char * libhtmlpp::CommentElement::getComment(){ libhtmlpp::HtmlPage::HtmlPage(){ } libhtmlpp::HtmlPage::~HtmlPage(){ } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadFile(const char* path){ void libhtmlpp::HtmlPage::loadFile(libhtmlpp::HtmlElement &html,const char* path){ std::string data; char tmp[HTML_BLOCKSIZE]; std::ifstream fs; Loading @@ -1076,33 +1070,29 @@ libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadFile(const char* path){ } fs.close(); _CheckHeader(data); libhtmlpp::HtmlElement *el=loadString(data); return el; } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const std::string &src){ _Page=src.c_str(); return _Page.parse(); loadString(html,data); } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const char *src){ _Page=src; return _Page.parse(); void libhtmlpp::HtmlPage::loadString(libhtmlpp::HtmlElement &html,const std::string &src){ HtmlString buf=src.c_str(); buf.parse(html); } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const HtmlString &node){ return _Page.parse(); void libhtmlpp::HtmlPage::loadString(libhtmlpp::HtmlElement &html,const char *src){ HtmlString buf=src; buf.parse(html); } libhtmlpp::HtmlElement *libhtmlpp::HtmlPage::loadString(const HtmlString *node){ return _Page.parse(); void libhtmlpp::HtmlPage::loadString(libhtmlpp::HtmlElement &html,const HtmlString &node){ HtmlString buf=node; buf.parse(html); } void libhtmlpp::HtmlPage::saveFile(const char* path){ void libhtmlpp::HtmlPage::saveFile(libhtmlpp::HtmlElement &html,const char* path){ HtmlString data; std::ofstream fs; print(_Page.parse(),data); print(&html,data); try{ fs.open(path); Loading Loading @@ -1438,10 +1428,12 @@ void libhtmlpp::HtmlTable::insert(libhtmlpp::HtmlElement* element){ for(Column *ccol=crow->_firstColumn; ccol; ccol=ccol->_nextColumn ){ HtmlString buf; HtmlElement element; buf << "<td>"; buf << ccol->Data.c_str(); buf << "</td>"; hrow.appendChild(buf.parse()); buf.parse(element); hrow.appendChild(&element); } element->appendChild(&hrow); Loading
src/html.h +7 −9 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ namespace libhtmlpp { void clear(); bool empty(); const char * c_str(); HtmlElement* parse(); void parse(HtmlElement &dest); bool validate(std::string *err); private: void _parseTree(); Loading @@ -225,7 +225,6 @@ namespace libhtmlpp { std::vector<char> _CStr; long** _HTable; size_t _HTableSize; HtmlElement* _RootNode; friend void HtmlEncode(const char *input,HtmlString *output); }; Loading @@ -236,15 +235,14 @@ namespace libhtmlpp { public: HtmlPage(); ~HtmlPage(); HtmlElement *loadFile(const char* path); void saveFile(const char* path); HtmlElement *loadString(const std::string &src); HtmlElement *loadString(const char *src); HtmlElement *loadString(const HtmlString &node); HtmlElement *loadString(const HtmlString *node); void loadFile(libhtmlpp::HtmlElement &html,const char* path); void saveFile(libhtmlpp::HtmlElement &html,const char* path); void loadString(libhtmlpp::HtmlElement &html,const std::string &src); void loadString(libhtmlpp::HtmlElement &html,const char *src); void loadString(libhtmlpp::HtmlElement &html,const HtmlString &node); void loadString(libhtmlpp::HtmlElement &html,const HtmlString *node); private: void _CheckHeader(const HtmlString& page); HtmlString _Page; }; class HtmlTable { Loading
test/htmlcopytest.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -61,15 +61,17 @@ private: int main(int arc,char *argv[]){ libhtmlpp::HtmlPage page; try{ libhtmlpp::Element *index=page.loadFile(argv[1]); libhtmlpp::HtmlElement index; HtmlCopy cpy(index); page.loadFile(index,argv[1]); HtmlCopy cpy(&index); libhtmlpp::HtmlString html; std::cout << "Orginal html:" << std::endl; libhtmlpp::print(index,html); libhtmlpp::print(&index,html); std::cout << html.c_str() << std::endl; std::cout << "Modified html:" << std::endl; Loading
test/htmlpagetest.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -37,9 +37,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. int main(int arc,char *argv[]){ libhtmlpp::HtmlPage page; try{ libhtmlpp::Element *index=page.loadFile(argv[1]); libhtmlpp::HtmlElement index; page.loadFile(index,argv[1]); libhtmlpp::HtmlString html; libhtmlpp::print(index,html); libhtmlpp::print(&index,html); std::cout << html.c_str() << std::endl; std::cout << Green << "Test Passed!" << NOCOLOR << std::endl; }catch(libhtmlpp::HTMLException &exp){ Loading