UrlEncode() methods from core/misc.h are now thread safe
This commit is contained in:
@@ -1264,8 +1264,15 @@ void UrlEncode(const char * in, std::string & out, bool clear_out)
|
||||
if( clear_out )
|
||||
out.clear();
|
||||
|
||||
pt::TextStream stream;
|
||||
|
||||
for(size_t i=0 ; in[i] != 0 ; ++i)
|
||||
UrlEncode(in[i], out, false);
|
||||
{
|
||||
UrlEncode(in[i], stream, true);
|
||||
|
||||
for(size_t s=0 ; s < stream.size() ; ++s)
|
||||
out += stream[s];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1275,39 +1282,44 @@ void UrlEncode(const std::string & in, std::string & out, bool clear_out)
|
||||
}
|
||||
|
||||
|
||||
|
||||
void UrlEncode(const wchar_t * in, std::string & out, bool clear_out)
|
||||
{
|
||||
static std::string ain;
|
||||
|
||||
pt::wide_to_utf8(in, ain);
|
||||
|
||||
if( clear_out )
|
||||
out.clear();
|
||||
|
||||
for(size_t i=0 ; i < ain.size() ; ++i)
|
||||
UrlEncode(ain[i], out, false);
|
||||
}
|
||||
//void UrlEncode(const wchar_t * in, std::string & out, bool clear_out)
|
||||
//{
|
||||
// if( clear_out )
|
||||
// out.clear();
|
||||
//
|
||||
// pt::TextStream stream;
|
||||
//
|
||||
// for(size_t i=0 ; in[i] != 0 ; ++i)
|
||||
// {
|
||||
// UrlEncode(in[i], stream, true);
|
||||
//
|
||||
// for(size_t s=0 ; s < stream.size() ++i)
|
||||
// out += stream[s];
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
|
||||
void UrlEncode(const std::wstring & in, std::string & out, bool clear_out)
|
||||
{
|
||||
UrlEncode(in.c_str(), out, clear_out);
|
||||
}
|
||||
//void UrlEncode(const std::wstring & in, std::string & out, bool clear_out)
|
||||
//{
|
||||
// UrlEncode(in.c_str(), out, clear_out);
|
||||
//}
|
||||
|
||||
|
||||
void UrlEncode(const wchar_t * in, std::wstring & out, bool clear_out)
|
||||
{
|
||||
static std::string ain;
|
||||
|
||||
pt::wide_to_utf8(in, ain);
|
||||
|
||||
if( clear_out )
|
||||
out.clear();
|
||||
|
||||
for(size_t i=0 ; i < ain.size() ; ++i)
|
||||
UrlEncode(ain[i], out, false);
|
||||
pt::WTextStream stream;
|
||||
|
||||
for(size_t i=0 ; in[i] != 0 ; ++i)
|
||||
{
|
||||
UrlEncode(in[i], stream, true);
|
||||
|
||||
for(size_t s=0 ; s < stream.size() ; ++s)
|
||||
out += stream[s];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1318,6 +1330,27 @@ void UrlEncode(const std::wstring & in, std::wstring & out, bool clear_out)
|
||||
|
||||
|
||||
|
||||
void UrlEncode(const pt::TextStream & in, pt::TextStream & out, bool clear_out)
|
||||
{
|
||||
if( clear_out )
|
||||
out.clear();
|
||||
|
||||
for(size_t i=0 ; i < in.size() ; ++i)
|
||||
UrlEncode(in.get_char(i), out, false);
|
||||
}
|
||||
|
||||
|
||||
void UrlEncode(const pt::WTextStream & in, pt::WTextStream & out, bool clear_out)
|
||||
{
|
||||
if( clear_out )
|
||||
out.clear();
|
||||
|
||||
for(size_t i=0 ; i < in.size() ; ++i)
|
||||
UrlEncode(in.get_wchar(i), out, false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
bool UrlDecodeFromHex(int c, int & out)
|
||||
{
|
||||
|
Reference in New Issue
Block a user