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

test

parent 988479dc
Loading
Loading
Loading
Loading
+19 −21
Original line number Diff line number Diff line
@@ -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),"-->")) {
@@ -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()){
@@ -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;
@@ -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);
@@ -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;
@@ -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);