Loading src/html.cpp +19 −7 Original line number Diff line number Diff line Loading @@ -682,26 +682,38 @@ void libhtmlpp::HtmlString::_serialelize(std::vector<char> in, libhtmlpp::HtmlEl } void libhtmlpp::HtmlEncode(const std::string &input, std::string &output){ HtmlString tmp(output); HtmlEncode(input,&tmp); output=tmp.str(); size_t ilen=input.length(); for(size_t i=0; i<ilen; ++i){ size_t ii=0; bool changed=false; while(HtmlSigns[ii][0]){ if(input[i]==HtmlSigns[ii][0][0]){ output+=HtmlSigns[ii][1]; changed=true; } ++ii; } if(!changed) output.push_back(input[i]); } } void libhtmlpp::HtmlEncode(const std::string &input, HtmlString* output){ void libhtmlpp::HtmlDecode(const std::string &input,HtmlString &output){ size_t ilen=input.length(); for(size_t i=0; i<ilen; ++i){ size_t ii=0; bool changed=false; while(HtmlSigns[ii][0]){ if(input[i]==HtmlSigns[ii][0][0]){ output->append(HtmlSigns[ii][1]); if(input.compare(i,strlen(HtmlSigns[ii][1]),HtmlSigns[ii][1]) == 0){ output << HtmlSigns[ii][0]; changed=true; } ++ii; } if(!changed) output->push_back(input[i]); output << input[i]; } output.parse(); } Loading src/html.h +1 −1 Original line number Diff line number Diff line Loading @@ -386,7 +386,7 @@ namespace libhtmlpp { */ void HtmlEncode(const std::string &input,HtmlString *output); void HtmlDecode(const std::string &input,HtmlString &output); /** * @brief Encodes special HTML characters in a string and writes into std::string. * @param input Plain input string. Loading Loading
src/html.cpp +19 −7 Original line number Diff line number Diff line Loading @@ -682,26 +682,38 @@ void libhtmlpp::HtmlString::_serialelize(std::vector<char> in, libhtmlpp::HtmlEl } void libhtmlpp::HtmlEncode(const std::string &input, std::string &output){ HtmlString tmp(output); HtmlEncode(input,&tmp); output=tmp.str(); size_t ilen=input.length(); for(size_t i=0; i<ilen; ++i){ size_t ii=0; bool changed=false; while(HtmlSigns[ii][0]){ if(input[i]==HtmlSigns[ii][0][0]){ output+=HtmlSigns[ii][1]; changed=true; } ++ii; } if(!changed) output.push_back(input[i]); } } void libhtmlpp::HtmlEncode(const std::string &input, HtmlString* output){ void libhtmlpp::HtmlDecode(const std::string &input,HtmlString &output){ size_t ilen=input.length(); for(size_t i=0; i<ilen; ++i){ size_t ii=0; bool changed=false; while(HtmlSigns[ii][0]){ if(input[i]==HtmlSigns[ii][0][0]){ output->append(HtmlSigns[ii][1]); if(input.compare(i,strlen(HtmlSigns[ii][1]),HtmlSigns[ii][1]) == 0){ output << HtmlSigns[ii][0]; changed=true; } ++ii; } if(!changed) output->push_back(input[i]); output << input[i]; } output.parse(); } Loading
src/html.h +1 −1 Original line number Diff line number Diff line Loading @@ -386,7 +386,7 @@ namespace libhtmlpp { */ void HtmlEncode(const std::string &input,HtmlString *output); void HtmlDecode(const std::string &input,HtmlString &output); /** * @brief Encodes special HTML characters in a string and writes into std::string. * @param input Plain input string. Loading