Commit c7bde06c authored by jan.koester's avatar jan.koester
Browse files

fxied

parent 1a37fb22
Loading
Loading
Loading
Loading
+17 −14
Original line number Diff line number Diff line
@@ -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()){
@@ -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;
                    }
@@ -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));
@@ -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()){
@@ -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));
@@ -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");

@@ -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(
@@ -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){
@@ -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");