Loading src/html.cpp +17 −14 Original line number Diff line number Diff line Loading @@ -388,20 +388,23 @@ void libhtmlpp::HtmlString::_buildTree() { for(size_t ii=0; ii<_Data.size(); ++ii){ BUILDTREE_STARTLOOP: if(_Data[ii]==HTMLTAG_OPEN){ if( (ii + 4) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+4), "<!--")){ size_t start=ii; if( (ii + 3) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+3), "<!--")){ size_t start=ii+3; while(ii<_Data.size()){ if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+3),"-->")) { addelement(&lastEl); lastEl->element=std::make_unique<CommentElement>(); std::copy(_Data.begin()+start,_Data.begin()+ii, std::back_inserter(static_cast<CommentElement*>(lastEl->element.get())->_Comment)); ii+=3; break; } ++ii; } }else if((ii+7) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+7),"<script")){ }else if((ii+6) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+6),"<script")){ size_t start=ii; while(ii<_Data.size()){ Loading @@ -412,7 +415,7 @@ void libhtmlpp::HtmlString::_buildTree() { std::copy(_Data.begin()+start,_Data.begin()+ii,std::back_inserter(tel)); _serialelize(tel,static_cast<SvgElement*>(lastEl->element.get())); _serialelize(tel,static_cast<ScriptElement*>(lastEl->element.get())); break; } Loading @@ -422,7 +425,7 @@ void libhtmlpp::HtmlString::_buildTree() { size_t close=++ii; while(ii<_Data.size()){ if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+8),"</script")) { if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+7),"</script")) { std::copy(_Data.begin()+close,_Data.begin()+ii, std::back_inserter(static_cast<ScriptElement*>(lastEl->element.get())->_Script)); Loading @@ -431,7 +434,7 @@ void libhtmlpp::HtmlString::_buildTree() { } ++ii; } }else if( (ii+4) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+4),"<svg")){ }else if( (ii+3) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+3),"<svg")){ size_t start=ii; while(ii<_Data.size()){ Loading @@ -452,7 +455,7 @@ void libhtmlpp::HtmlString::_buildTree() { size_t close=++ii; while(ii<_Data.size()){ if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+5),"</svg")) { if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+4),"</svg")) { std::copy(_Data.begin()+close,_Data.begin()+ii, std::back_inserter(static_cast<SvgElement*>(lastEl->element.get())->_Svg)); Loading Loading @@ -1522,9 +1525,9 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) output.append(" "); } } output.append("</"); output.append("<"); output.append(static_cast<const ScriptElement*>(el)->getTagname()); output.append(">"); output.append("/>"); if(formated) output.append("\r\n"); Loading @@ -1535,7 +1538,7 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) }break; case SvgEL:{ output.append("<"); output.append(static_cast<const SvgElement*>(el)->getTagname()); output.append(static_cast<const ScriptElement*>(el)->getTagname()); for (SvgElement::Attributes* curattr = static_cast<const SvgElement*>(el)->_firstAttr.get(); curattr; curattr = curattr->_nextAttr.get()) { output.append(" "); std::copy( Loading @@ -1554,7 +1557,9 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) } } output.append(">"); output.append("<"); output.append(static_cast<const ScriptElement*>(el)->getTagname()); output.append("/>"); if(formated){ output.append("\r\n"); for(int i=0; i<lvl+1; ++i){ Loading @@ -1572,9 +1577,7 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) output.append(" "); } } output.append("</"); output.append(static_cast<const SvgElement*>(el)->getTagname()); output.append(">"); output.append("</svg>"); if(formated) output.append("\r\n"); Loading Loading
src/html.cpp +17 −14 Original line number Diff line number Diff line Loading @@ -388,20 +388,23 @@ void libhtmlpp::HtmlString::_buildTree() { for(size_t ii=0; ii<_Data.size(); ++ii){ BUILDTREE_STARTLOOP: if(_Data[ii]==HTMLTAG_OPEN){ if( (ii + 4) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+4), "<!--")){ size_t start=ii; if( (ii + 3) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+3), "<!--")){ size_t start=ii+3; while(ii<_Data.size()){ if(std::equal(_Data.begin()+ii,_Data.begin()+(ii+3),"-->")) { addelement(&lastEl); lastEl->element=std::make_unique<CommentElement>(); std::copy(_Data.begin()+start,_Data.begin()+ii, std::back_inserter(static_cast<CommentElement*>(lastEl->element.get())->_Comment)); ii+=3; break; } ++ii; } }else if((ii+7) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+7),"<script")){ }else if((ii+6) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+6),"<script")){ size_t start=ii; while(ii<_Data.size()){ Loading @@ -412,7 +415,7 @@ void libhtmlpp::HtmlString::_buildTree() { std::copy(_Data.begin()+start,_Data.begin()+ii,std::back_inserter(tel)); _serialelize(tel,static_cast<SvgElement*>(lastEl->element.get())); _serialelize(tel,static_cast<ScriptElement*>(lastEl->element.get())); break; } Loading @@ -422,7 +425,7 @@ void libhtmlpp::HtmlString::_buildTree() { size_t close=++ii; while(ii<_Data.size()){ if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+8),"</script")) { if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+7),"</script")) { std::copy(_Data.begin()+close,_Data.begin()+ii, std::back_inserter(static_cast<ScriptElement*>(lastEl->element.get())->_Script)); Loading @@ -431,7 +434,7 @@ void libhtmlpp::HtmlString::_buildTree() { } ++ii; } }else if( (ii+4) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+4),"<svg")){ }else if( (ii+3) < _Data.size() && std::equal(_Data.begin()+ii,_Data.begin()+(ii+3),"<svg")){ size_t start=ii; while(ii<_Data.size()){ Loading @@ -452,7 +455,7 @@ void libhtmlpp::HtmlString::_buildTree() { size_t close=++ii; while(ii<_Data.size()){ if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+5),"</svg")) { if( std::equal(_Data.begin()+ii,_Data.begin()+(ii+4),"</svg")) { std::copy(_Data.begin()+close,_Data.begin()+ii, std::back_inserter(static_cast<SvgElement*>(lastEl->element.get())->_Svg)); Loading Loading @@ -1522,9 +1525,9 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) output.append(" "); } } output.append("</"); output.append("<"); output.append(static_cast<const ScriptElement*>(el)->getTagname()); output.append(">"); output.append("/>"); if(formated) output.append("\r\n"); Loading @@ -1535,7 +1538,7 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) }break; case SvgEL:{ output.append("<"); output.append(static_cast<const SvgElement*>(el)->getTagname()); output.append(static_cast<const ScriptElement*>(el)->getTagname()); for (SvgElement::Attributes* curattr = static_cast<const SvgElement*>(el)->_firstAttr.get(); curattr; curattr = curattr->_nextAttr.get()) { output.append(" "); std::copy( Loading @@ -1554,7 +1557,9 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) } } output.append(">"); output.append("<"); output.append(static_cast<const ScriptElement*>(el)->getTagname()); output.append("/>"); if(formated){ output.append("\r\n"); for(int i=0; i<lvl+1; ++i){ Loading @@ -1572,9 +1577,7 @@ void libhtmlpp::print(const Element &element, HtmlString &output,bool formated) output.append(" "); } } output.append("</"); output.append(static_cast<const SvgElement*>(el)->getTagname()); output.append(">"); output.append("</svg>"); if(formated) output.append("\r\n"); Loading