Loading src/html.cpp +28 −18 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ libhtmlpp::HtmlString::HtmlString(char str) : HtmlString(){ } libhtmlpp::HtmlString::HtmlString(const std::string& str) : HtmlString(){ std::copy(str.begin(),str.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(str.begin(),str.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); } libhtmlpp::HtmlString::~HtmlString(){ Loading @@ -110,7 +110,7 @@ libhtmlpp::HtmlString::~HtmlString(){ } libhtmlpp::HtmlString::HtmlString(const libhtmlpp::HtmlString& str) : HtmlString() { std::copy(str._Data.begin(),str._Data.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(str._Data.begin(),str._Data.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); } void libhtmlpp::HtmlString::push_back(const char src){ Loading @@ -118,7 +118,9 @@ void libhtmlpp::HtmlString::push_back(const char src){ } void libhtmlpp::HtmlString::append(const std::string& src) { std::copy(src.begin(),src.cend(),std::back_inserter(_Data)); if(src.empty()) return; std::copy(src.begin(),src.end(),std::back_inserter(_Data)); } void libhtmlpp::HtmlString::append(libhtmlpp::HtmlString& hstring) { Loading Loading @@ -155,13 +157,13 @@ libhtmlpp::HtmlString & libhtmlpp::HtmlString::operator+=(libhtmlpp::HtmlString& libhtmlpp::HtmlString & libhtmlpp::HtmlString::operator=(const std::string &src){ clear(); std::copy(src.begin(),src.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(src.begin(),src.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); return *this; } libhtmlpp::HtmlString& libhtmlpp::HtmlString::operator=(const libhtmlpp::HtmlString& src){ clear(); std::copy(src._Data.begin(),src._Data.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(src._Data.begin(),src._Data.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); return *this; } Loading Loading @@ -220,9 +222,17 @@ size_t libhtmlpp::HtmlString::size() const{ } const std::string libhtmlpp::HtmlString::str(){ _Data.erase(std::remove(_Data.begin(), _Data.end(), '\0'), _Data.end()); _Data.push_back('\0'); return std::string(_Data.begin(),_Data.end()); } const char *libhtmlpp::HtmlString::c_str(){ _Data.erase(std::remove(_Data.begin(), _Data.end(), '\0'), _Data.end()); _Data.push_back('\0'); return _Data.data(); } const std::vector<char>& libhtmlpp::HtmlString::data() { return _Data; } Loading Loading @@ -582,7 +592,7 @@ void libhtmlpp::HtmlEncode(const std::string &input, HtmlString* output){ libhtmlpp::HtmlElement::HtmlElement(const std::string &tagname) : HtmlElement(){ std::copy(tagname.begin(),tagname.cend(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); std::copy(tagname.begin(),tagname.end(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); } libhtmlpp::HtmlElement::HtmlElement() : Element() { Loading Loading @@ -653,13 +663,13 @@ int libhtmlpp::Element::getType() const{ void libhtmlpp::HtmlElement::setTagname(const std::string &name){ _TagName.clear(); _TagName.resize(name.length()); std::copy(name.begin(),name.cend(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); std::copy(name.begin(),name.end(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); } const std::string libhtmlpp::HtmlElement::getTagname() const{ if(_TagName.empty()) return ""; return std::string(_TagName.begin(),_TagName.cend()); return std::string(_TagName.begin(),_TagName.end()); } void libhtmlpp::HtmlElement::insertChild(const libhtmlpp::Element* el){ Loading Loading @@ -1126,7 +1136,7 @@ libhtmlpp::TextElement & libhtmlpp::TextElement::operator=(const libhtmlpp::Elem } void libhtmlpp::TextElement::setText(const std::string& txt){ std::copy(txt.begin(),txt.cend(),std::back_inserter(_Text)); std::copy(txt.begin(),txt.end(),std::back_inserter(_Text)); } const std::string libhtmlpp::TextElement::getText(){ Loading Loading @@ -1160,7 +1170,7 @@ libhtmlpp::CommentElement & libhtmlpp::CommentElement::operator=(const libhtmlpp } void libhtmlpp::CommentElement::setComment(const std::string& txt){ std::copy(txt.begin(),txt.cend(), std::copy(txt.begin(),txt.end(), std::insert_iterator<std::vector<char>>(_Comment,_Comment.begin())); } Loading Loading @@ -1194,7 +1204,7 @@ libhtmlpp::ScriptElement & libhtmlpp::ScriptElement::operator=(const libhtmlpp:: } void libhtmlpp::ScriptElement::setScript(const std::string& script){ std::copy(script.begin(),script.cend(), std::copy(script.begin(),script.end(), std::insert_iterator<std::vector<char>>(_Script,_Script.begin())); } Loading Loading @@ -1338,7 +1348,7 @@ void libhtmlpp::HtmlPage::_CheckHeader(const HtmlString &page){ void libhtmlpp::print(Element* el, HtmlString &output,bool formated) { auto isContainer = [](const std::string &tagname) { for(int i=0; ContainerTypes[i]; ++i){ if(std::equal(tagname.begin(),tagname.cend(),ContainerTypes[i])) if(std::equal(tagname.begin(),tagname.end(),ContainerTypes[i])) return true; } return false; Loading Loading @@ -1540,7 +1550,7 @@ SEARCHBYID: childs.push(((HtmlElement*)curel)->_childElement); } std::string idname=((HtmlElement*)curel)->getAtributte("id"); if(!idname.empty() && std::equal(id.begin(),id.cend(),idname.begin()) ){ if(!idname.empty() && std::equal(id.begin(),id.end(),idname.begin()) ){ return (HtmlElement*)curel; } } Loading @@ -1567,7 +1577,7 @@ SEARCHBYTAG: childs.push(((HtmlElement*)curel)->_childElement); } const std::string tname=((HtmlElement*)curel)->getTagname(); if(!tname.empty() && std::equal(tag.begin(),tag.cend(),tname.begin())){ if(!tname.empty() && std::equal(tag.begin(),tag.end(),tname.begin())){ return (HtmlElement*)curel; } } Loading @@ -1589,7 +1599,7 @@ void libhtmlpp::HtmlElement::setAttribute(const std::string &name, const std::st Attributes* cattr = nullptr; for (Attributes* curattr = _firstAttr; curattr; curattr=curattr->_nextAttr) { if ( std::equal(name.begin(),name.cend(),curattr->_Key.begin()) ) { if ( std::equal(name.begin(),name.end(),curattr->_Key.begin()) ) { cattr = curattr; } } Loading @@ -1603,10 +1613,10 @@ void libhtmlpp::HtmlElement::setAttribute(const std::string &name, const std::st } cattr = _lastAttr; cattr->_Key.resize(name.length()); std::copy(name.begin(),name.cend(),cattr->_Key.begin() ); std::copy(name.begin(),name.end(),cattr->_Key.begin() ); } cattr->_Value.resize(value.length()); std::copy(value.begin(),value.cend(),cattr->_Value.begin()); std::copy(value.begin(),value.end(),cattr->_Value.begin()); } void libhtmlpp::HtmlElement::setIntAttribute(const std::string& name, int value) { Loading @@ -1622,7 +1632,7 @@ const std::string libhtmlpp::HtmlElement::getAtributte(const std::string& name) continue; } if (!curattr->_Key.empty() && std::equal(name.begin(), name.cend(), curattr->_Key.begin())) { if (!curattr->_Key.empty() && std::equal(name.begin(), name.end(), curattr->_Key.begin())) { return std::string(curattr->_Value.begin(), curattr->_Value.end()); } } Loading src/html.h +1 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,7 @@ namespace libhtmlpp { const std::vector<char>& data(); const std::string str(); const char *c_str(); libhtmlpp::Element *parse(); bool validate(std::string *err); Loading Loading
src/html.cpp +28 −18 Original line number Diff line number Diff line Loading @@ -99,7 +99,7 @@ libhtmlpp::HtmlString::HtmlString(char str) : HtmlString(){ } libhtmlpp::HtmlString::HtmlString(const std::string& str) : HtmlString(){ std::copy(str.begin(),str.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(str.begin(),str.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); } libhtmlpp::HtmlString::~HtmlString(){ Loading @@ -110,7 +110,7 @@ libhtmlpp::HtmlString::~HtmlString(){ } libhtmlpp::HtmlString::HtmlString(const libhtmlpp::HtmlString& str) : HtmlString() { std::copy(str._Data.begin(),str._Data.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(str._Data.begin(),str._Data.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); } void libhtmlpp::HtmlString::push_back(const char src){ Loading @@ -118,7 +118,9 @@ void libhtmlpp::HtmlString::push_back(const char src){ } void libhtmlpp::HtmlString::append(const std::string& src) { std::copy(src.begin(),src.cend(),std::back_inserter(_Data)); if(src.empty()) return; std::copy(src.begin(),src.end(),std::back_inserter(_Data)); } void libhtmlpp::HtmlString::append(libhtmlpp::HtmlString& hstring) { Loading Loading @@ -155,13 +157,13 @@ libhtmlpp::HtmlString & libhtmlpp::HtmlString::operator+=(libhtmlpp::HtmlString& libhtmlpp::HtmlString & libhtmlpp::HtmlString::operator=(const std::string &src){ clear(); std::copy(src.begin(),src.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(src.begin(),src.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); return *this; } libhtmlpp::HtmlString& libhtmlpp::HtmlString::operator=(const libhtmlpp::HtmlString& src){ clear(); std::copy(src._Data.begin(),src._Data.cend(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); std::copy(src._Data.begin(),src._Data.end(),std::insert_iterator<std::vector<char>>(_Data,_Data.begin())); return *this; } Loading Loading @@ -220,9 +222,17 @@ size_t libhtmlpp::HtmlString::size() const{ } const std::string libhtmlpp::HtmlString::str(){ _Data.erase(std::remove(_Data.begin(), _Data.end(), '\0'), _Data.end()); _Data.push_back('\0'); return std::string(_Data.begin(),_Data.end()); } const char *libhtmlpp::HtmlString::c_str(){ _Data.erase(std::remove(_Data.begin(), _Data.end(), '\0'), _Data.end()); _Data.push_back('\0'); return _Data.data(); } const std::vector<char>& libhtmlpp::HtmlString::data() { return _Data; } Loading Loading @@ -582,7 +592,7 @@ void libhtmlpp::HtmlEncode(const std::string &input, HtmlString* output){ libhtmlpp::HtmlElement::HtmlElement(const std::string &tagname) : HtmlElement(){ std::copy(tagname.begin(),tagname.cend(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); std::copy(tagname.begin(),tagname.end(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); } libhtmlpp::HtmlElement::HtmlElement() : Element() { Loading Loading @@ -653,13 +663,13 @@ int libhtmlpp::Element::getType() const{ void libhtmlpp::HtmlElement::setTagname(const std::string &name){ _TagName.clear(); _TagName.resize(name.length()); std::copy(name.begin(),name.cend(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); std::copy(name.begin(),name.end(),std::insert_iterator<std::vector<char>>(_TagName,_TagName.begin()) ); } const std::string libhtmlpp::HtmlElement::getTagname() const{ if(_TagName.empty()) return ""; return std::string(_TagName.begin(),_TagName.cend()); return std::string(_TagName.begin(),_TagName.end()); } void libhtmlpp::HtmlElement::insertChild(const libhtmlpp::Element* el){ Loading Loading @@ -1126,7 +1136,7 @@ libhtmlpp::TextElement & libhtmlpp::TextElement::operator=(const libhtmlpp::Elem } void libhtmlpp::TextElement::setText(const std::string& txt){ std::copy(txt.begin(),txt.cend(),std::back_inserter(_Text)); std::copy(txt.begin(),txt.end(),std::back_inserter(_Text)); } const std::string libhtmlpp::TextElement::getText(){ Loading Loading @@ -1160,7 +1170,7 @@ libhtmlpp::CommentElement & libhtmlpp::CommentElement::operator=(const libhtmlpp } void libhtmlpp::CommentElement::setComment(const std::string& txt){ std::copy(txt.begin(),txt.cend(), std::copy(txt.begin(),txt.end(), std::insert_iterator<std::vector<char>>(_Comment,_Comment.begin())); } Loading Loading @@ -1194,7 +1204,7 @@ libhtmlpp::ScriptElement & libhtmlpp::ScriptElement::operator=(const libhtmlpp:: } void libhtmlpp::ScriptElement::setScript(const std::string& script){ std::copy(script.begin(),script.cend(), std::copy(script.begin(),script.end(), std::insert_iterator<std::vector<char>>(_Script,_Script.begin())); } Loading Loading @@ -1338,7 +1348,7 @@ void libhtmlpp::HtmlPage::_CheckHeader(const HtmlString &page){ void libhtmlpp::print(Element* el, HtmlString &output,bool formated) { auto isContainer = [](const std::string &tagname) { for(int i=0; ContainerTypes[i]; ++i){ if(std::equal(tagname.begin(),tagname.cend(),ContainerTypes[i])) if(std::equal(tagname.begin(),tagname.end(),ContainerTypes[i])) return true; } return false; Loading Loading @@ -1540,7 +1550,7 @@ SEARCHBYID: childs.push(((HtmlElement*)curel)->_childElement); } std::string idname=((HtmlElement*)curel)->getAtributte("id"); if(!idname.empty() && std::equal(id.begin(),id.cend(),idname.begin()) ){ if(!idname.empty() && std::equal(id.begin(),id.end(),idname.begin()) ){ return (HtmlElement*)curel; } } Loading @@ -1567,7 +1577,7 @@ SEARCHBYTAG: childs.push(((HtmlElement*)curel)->_childElement); } const std::string tname=((HtmlElement*)curel)->getTagname(); if(!tname.empty() && std::equal(tag.begin(),tag.cend(),tname.begin())){ if(!tname.empty() && std::equal(tag.begin(),tag.end(),tname.begin())){ return (HtmlElement*)curel; } } Loading @@ -1589,7 +1599,7 @@ void libhtmlpp::HtmlElement::setAttribute(const std::string &name, const std::st Attributes* cattr = nullptr; for (Attributes* curattr = _firstAttr; curattr; curattr=curattr->_nextAttr) { if ( std::equal(name.begin(),name.cend(),curattr->_Key.begin()) ) { if ( std::equal(name.begin(),name.end(),curattr->_Key.begin()) ) { cattr = curattr; } } Loading @@ -1603,10 +1613,10 @@ void libhtmlpp::HtmlElement::setAttribute(const std::string &name, const std::st } cattr = _lastAttr; cattr->_Key.resize(name.length()); std::copy(name.begin(),name.cend(),cattr->_Key.begin() ); std::copy(name.begin(),name.end(),cattr->_Key.begin() ); } cattr->_Value.resize(value.length()); std::copy(value.begin(),value.cend(),cattr->_Value.begin()); std::copy(value.begin(),value.end(),cattr->_Value.begin()); } void libhtmlpp::HtmlElement::setIntAttribute(const std::string& name, int value) { Loading @@ -1622,7 +1632,7 @@ const std::string libhtmlpp::HtmlElement::getAtributte(const std::string& name) continue; } if (!curattr->_Key.empty() && std::equal(name.begin(), name.cend(), curattr->_Key.begin())) { if (!curattr->_Key.empty() && std::equal(name.begin(), name.end(), curattr->_Key.begin())) { return std::string(curattr->_Value.begin(), curattr->_Value.end()); } } Loading
src/html.h +1 −0 Original line number Diff line number Diff line Loading @@ -253,6 +253,7 @@ namespace libhtmlpp { const std::vector<char>& data(); const std::string str(); const char *c_str(); libhtmlpp::Element *parse(); bool validate(std::string *err); Loading