Loading src/html.cpp +19 −21 Original line number Diff line number Diff line Loading @@ -372,8 +372,7 @@ void libhtmlpp::HtmlString::_buildTree() { for(size_t ii=0; ii<_Data.size(); ++ii){ BUILDTREE_STARTLOOP: if(_Data[ii]==HTMLTAG_OPEN){ if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+4), "<!--")){ ii+=4; if(ii + 4 < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+4), "<!--")){ size_t start=ii; while(ii<_Data.size()){ if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+3),"-->")) { Loading @@ -386,7 +385,7 @@ BUILDTREE_STARTLOOP: } ++ii; } }else if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+7),"<script")){ }else if(ii+7 < _Data.size() && std::equal(_Data.begin() + ii, _Data.begin() + (ii + 7), "<script")) { size_t start=ii; while(ii<_Data.size()){ Loading @@ -408,9 +407,8 @@ BUILDTREE_STARTLOOP: size_t close=++ii; while(ii<_Data.size()){ while(ii+8<_Data.size()){ if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+8),"</script")) { std::copy(_Data.begin()+close,_Data.begin()+ii, std::back_inserter(((ScriptElement*)lastEl->element.get())->_Script)); ii+=8; Loading @@ -421,8 +419,6 @@ BUILDTREE_STARTLOOP: }else if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+4),"<svg")){ size_t start=ii; ii+=4; while(ii<_Data.size()){ if(_Data[ii]==HTMLTAG_CLOSE) { addelement(&lastEl); Loading Loading @@ -451,7 +447,7 @@ BUILDTREE_STARTLOOP: ++ii; } }else { size_t start=++ii; size_t start=+ii; addelement(&lastEl); lastEl->element=std::make_unique<HtmlElement>(); bool term=false; Loading Loading @@ -1217,19 +1213,21 @@ libhtmlpp::HtmlPage::~HtmlPage(){ void libhtmlpp::HtmlPage::loadFile(libhtmlpp::HtmlElement &html,const std::string& path){ std::string data; char tmp[HTML_BLOCKSIZE]; std::ifstream fs; try{ fs.open(path); }catch(std::exception &e){ std::ifstream fs(path); if(!fs.is_open()){ HTMLException excp; throw excp[HTMLException::Critical] << e.what(); throw excp[HTMLException::Critical] << "Can't open file: " << path; } while (fs.good() && !fs.eof()) { fs.read(tmp, HTML_BLOCKSIZE); data.append(tmp,fs.gcount()); } fs.seekg(std::ios::end, 0); data.reserve(fs.tellg()); fs.seekg(std::ios::beg, 0); data.assign((std::istreambuf_iterator<char>(fs)), std::istreambuf_iterator<char>()); fs.close(); _CheckHeader(data); Loading Loading
src/html.cpp +19 −21 Original line number Diff line number Diff line Loading @@ -372,8 +372,7 @@ void libhtmlpp::HtmlString::_buildTree() { for(size_t ii=0; ii<_Data.size(); ++ii){ BUILDTREE_STARTLOOP: if(_Data[ii]==HTMLTAG_OPEN){ if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+4), "<!--")){ ii+=4; if(ii + 4 < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+4), "<!--")){ size_t start=ii; while(ii<_Data.size()){ if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+3),"-->")) { Loading @@ -386,7 +385,7 @@ BUILDTREE_STARTLOOP: } ++ii; } }else if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+7),"<script")){ }else if(ii+7 < _Data.size() && std::equal(_Data.begin() + ii, _Data.begin() + (ii + 7), "<script")) { size_t start=ii; while(ii<_Data.size()){ Loading @@ -408,9 +407,8 @@ BUILDTREE_STARTLOOP: size_t close=++ii; while(ii<_Data.size()){ while(ii+8<_Data.size()){ if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+8),"</script")) { std::copy(_Data.begin()+close,_Data.begin()+ii, std::back_inserter(((ScriptElement*)lastEl->element.get())->_Script)); ii+=8; Loading @@ -421,8 +419,6 @@ BUILDTREE_STARTLOOP: }else if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+4),"<svg")){ size_t start=ii; ii+=4; while(ii<_Data.size()){ if(_Data[ii]==HTMLTAG_CLOSE) { addelement(&lastEl); Loading Loading @@ -451,7 +447,7 @@ BUILDTREE_STARTLOOP: ++ii; } }else { size_t start=++ii; size_t start=+ii; addelement(&lastEl); lastEl->element=std::make_unique<HtmlElement>(); bool term=false; Loading Loading @@ -1217,19 +1213,21 @@ libhtmlpp::HtmlPage::~HtmlPage(){ void libhtmlpp::HtmlPage::loadFile(libhtmlpp::HtmlElement &html,const std::string& path){ std::string data; char tmp[HTML_BLOCKSIZE]; std::ifstream fs; try{ fs.open(path); }catch(std::exception &e){ std::ifstream fs(path); if(!fs.is_open()){ HTMLException excp; throw excp[HTMLException::Critical] << e.what(); throw excp[HTMLException::Critical] << "Can't open file: " << path; } while (fs.good() && !fs.eof()) { fs.read(tmp, HTML_BLOCKSIZE); data.append(tmp,fs.gcount()); } fs.seekg(std::ios::end, 0); data.reserve(fs.tellg()); fs.seekg(std::ios::beg, 0); data.assign((std::istreambuf_iterator<char>(fs)), std::istreambuf_iterator<char>()); fs.close(); _CheckHeader(data); Loading