Loading src/html.cpp +11 −28 Changes for src/html.cpp: 11 added lines, 28 removed lines. Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "encode.h" #define HTMLTAG_OPEN '<' #define HTMLTAG_TERMINATE '/' #define HTMLTAG_CLOSE '>' #define HTMLELEMENT 0 Loading Loading @@ -103,10 +102,7 @@ void libhtmlpp::HtmlString::insert(size_t pos, char src){ void libhtmlpp::HtmlString::clear(){ _Data.clear(); for(size_t i=0; i<_HTableSize; ++i){ delete[] _HTable[i]; } delete[] _HTable; delete *_HTable; delete _RootNode; _InitString(); } Loading Loading @@ -294,7 +290,7 @@ libhtmlpp::Element* libhtmlpp::HtmlString::_buildTree(ssize_t& pos) { for (size_t i = 0; i < _HTableSize; ++i) { if(_HTable[i][0] == -1 || _HTable[i][2] == -1) if(_HTable[i][0] == -1 || _HTable[i][1] == -1) continue; addelement(&firstEl,&lastEl); Loading @@ -309,21 +305,21 @@ libhtmlpp::Element* libhtmlpp::HtmlString::_buildTree(ssize_t& pos) { _serialelize(_Data.substr(lastEl->spos,(lastEl->epos - lastEl->spos)+1), (HtmlElement**) &lastEl->element); size_t epos=0; size_t epos=i; for(size_t ii=i+1; ii<_HTableSize; ++ii){ if(_HTable[ii][0]>=0 && _HTable[ii][2]>=0){ if(_HTable[ii][0]>=0 && _HTable[ii][1]>=0){ epos=ii; break; } } if(epos < _HTableSize){ int tlen = (_HTable[epos][0]-_HTable[i][2]); int tlen = (_HTable[epos][0]-_HTable[i][1]); if(tlen>1){ addelement(&firstEl,&lastEl); lastEl->element=new TextElement(); lastEl->spos = _HTable[i][2]+1; lastEl->spos = _HTable[i][1]+1; lastEl->epos = _HTable[epos][0]-1; ((TextElement*) lastEl->element)->_Text=_Data.substr(lastEl->spos,tlen-1); lastEl->terminator=false; Loading Loading @@ -407,19 +403,15 @@ void libhtmlpp::HtmlString::_serialelize(std::string in, libhtmlpp::HtmlElement } void libhtmlpp::HtmlString::_InitString(){ _HTable=nullptr; *_HTable=nullptr; _HTableSize=0; _RootNode=nullptr; } void libhtmlpp::HtmlString::_parseTree(){ HTMLException excp; if(_HTable){ for(size_t i=0; i< _HTableSize; ++i){ delete[] _HTable[i]; } delete[] _HTable; } delete *_HTable; size_t closetag = 0; for (size_t i = 0; i < _Data.size(); ++i) { Loading @@ -436,16 +428,13 @@ void libhtmlpp::HtmlString::_parseTree(){ _HTableSize = closetag; _HTable = new ssize_t*[_HTableSize]; *_HTable = new ssize_t[_HTableSize]; for (size_t is = 0; is < _HTableSize; is++) { _HTable[is] = new ssize_t[3]; _HTable[is][0] = -1; _HTable[is][1] = -1; _HTable[is][2] = -1; } bool open=false; bool pterm=false; size_t ip=0; for(size_t ii=0; ii<_Data.length(); ++ii){ switch(_Data[ii]){ Loading @@ -453,21 +442,16 @@ void libhtmlpp::HtmlString::_parseTree(){ if(!open){ if (_Data.substr(ii, 4) != "<!--") { open = true; pterm = true; _HTable[ip][0] = ii; }else{ ii+=4; } } break; case HTMLTAG_TERMINATE: if(pterm==true) _HTable[ip][1]=ii; break; case HTMLTAG_CLOSE: if (_Data.substr(ii - 2, 3) != "-->" && open) { if(_Data.find("/script",_HTable[ip][0],ii-_HTable[ip][0])==std::string::npos){ _HTable[ip][2] = ii; _HTable[ip][1] = ii; ++ip; open = false; } Loading @@ -476,7 +460,6 @@ void libhtmlpp::HtmlString::_parseTree(){ case ' ': break; default: pterm=false; break; } } Loading src/html.h +1 −1 Changes for src/html.h: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ namespace libhtmlpp { Element* _buildTree(ssize_t& pos); DocElements *_buildtreenode(DocElements* prev,DocElements* next,DocElements *start,DocElements *end); std::string _Data; ssize_t** _HTable; ssize_t* _HTable[2]; size_t _HTableSize; HtmlElement* _RootNode; friend void HtmlEncode(const char *input,HtmlString &output); Loading Loading
src/html.cpp +11 −28 Changes for src/html.cpp: 11 added lines, 28 removed lines. Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "encode.h" #define HTMLTAG_OPEN '<' #define HTMLTAG_TERMINATE '/' #define HTMLTAG_CLOSE '>' #define HTMLELEMENT 0 Loading Loading @@ -103,10 +102,7 @@ void libhtmlpp::HtmlString::insert(size_t pos, char src){ void libhtmlpp::HtmlString::clear(){ _Data.clear(); for(size_t i=0; i<_HTableSize; ++i){ delete[] _HTable[i]; } delete[] _HTable; delete *_HTable; delete _RootNode; _InitString(); } Loading Loading @@ -294,7 +290,7 @@ libhtmlpp::Element* libhtmlpp::HtmlString::_buildTree(ssize_t& pos) { for (size_t i = 0; i < _HTableSize; ++i) { if(_HTable[i][0] == -1 || _HTable[i][2] == -1) if(_HTable[i][0] == -1 || _HTable[i][1] == -1) continue; addelement(&firstEl,&lastEl); Loading @@ -309,21 +305,21 @@ libhtmlpp::Element* libhtmlpp::HtmlString::_buildTree(ssize_t& pos) { _serialelize(_Data.substr(lastEl->spos,(lastEl->epos - lastEl->spos)+1), (HtmlElement**) &lastEl->element); size_t epos=0; size_t epos=i; for(size_t ii=i+1; ii<_HTableSize; ++ii){ if(_HTable[ii][0]>=0 && _HTable[ii][2]>=0){ if(_HTable[ii][0]>=0 && _HTable[ii][1]>=0){ epos=ii; break; } } if(epos < _HTableSize){ int tlen = (_HTable[epos][0]-_HTable[i][2]); int tlen = (_HTable[epos][0]-_HTable[i][1]); if(tlen>1){ addelement(&firstEl,&lastEl); lastEl->element=new TextElement(); lastEl->spos = _HTable[i][2]+1; lastEl->spos = _HTable[i][1]+1; lastEl->epos = _HTable[epos][0]-1; ((TextElement*) lastEl->element)->_Text=_Data.substr(lastEl->spos,tlen-1); lastEl->terminator=false; Loading Loading @@ -407,19 +403,15 @@ void libhtmlpp::HtmlString::_serialelize(std::string in, libhtmlpp::HtmlElement } void libhtmlpp::HtmlString::_InitString(){ _HTable=nullptr; *_HTable=nullptr; _HTableSize=0; _RootNode=nullptr; } void libhtmlpp::HtmlString::_parseTree(){ HTMLException excp; if(_HTable){ for(size_t i=0; i< _HTableSize; ++i){ delete[] _HTable[i]; } delete[] _HTable; } delete *_HTable; size_t closetag = 0; for (size_t i = 0; i < _Data.size(); ++i) { Loading @@ -436,16 +428,13 @@ void libhtmlpp::HtmlString::_parseTree(){ _HTableSize = closetag; _HTable = new ssize_t*[_HTableSize]; *_HTable = new ssize_t[_HTableSize]; for (size_t is = 0; is < _HTableSize; is++) { _HTable[is] = new ssize_t[3]; _HTable[is][0] = -1; _HTable[is][1] = -1; _HTable[is][2] = -1; } bool open=false; bool pterm=false; size_t ip=0; for(size_t ii=0; ii<_Data.length(); ++ii){ switch(_Data[ii]){ Loading @@ -453,21 +442,16 @@ void libhtmlpp::HtmlString::_parseTree(){ if(!open){ if (_Data.substr(ii, 4) != "<!--") { open = true; pterm = true; _HTable[ip][0] = ii; }else{ ii+=4; } } break; case HTMLTAG_TERMINATE: if(pterm==true) _HTable[ip][1]=ii; break; case HTMLTAG_CLOSE: if (_Data.substr(ii - 2, 3) != "-->" && open) { if(_Data.find("/script",_HTable[ip][0],ii-_HTable[ip][0])==std::string::npos){ _HTable[ip][2] = ii; _HTable[ip][1] = ii; ++ip; open = false; } Loading @@ -476,7 +460,6 @@ void libhtmlpp::HtmlString::_parseTree(){ case ' ': break; default: pterm=false; break; } } Loading
src/html.h +1 −1 Changes for src/html.h: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ namespace libhtmlpp { Element* _buildTree(ssize_t& pos); DocElements *_buildtreenode(DocElements* prev,DocElements* next,DocElements *start,DocElements *end); std::string _Data; ssize_t** _HTable; ssize_t* _HTable[2]; size_t _HTableSize; HtmlElement* _RootNode; friend void HtmlEncode(const char *input,HtmlString &output); Loading