From f6b77fea9163de9fdf23e0ca59947479ca2de6ee Mon Sep 17 00:00:00 2001 From: Karlson2k Date: Tue, 14 Jan 2014 04:46:25 +0400 Subject: Scraper::FindMovie: don't use "ToLower" with UTF-8 --- xbmc/addons/Scraper.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/xbmc/addons/Scraper.cpp b/xbmc/addons/Scraper.cpp index b4684bcdd1..90fb81167b 100644 --- a/xbmc/addons/Scraper.cpp +++ b/xbmc/addons/Scraper.cpp @@ -572,8 +572,6 @@ std::vector CScraper::FindMovie(XFILE::CCurlFile &fcurl, const CStd if (!fFirst) StringUtils::Replace(sTitle, '-',' '); - StringUtils::ToLower(sTitle); - vector vcsIn(1); g_charsetConverter.utf8To(SearchStringEncoding(), sTitle, vcsIn[0]); CURL::Encode(vcsIn[0]); -- cgit v1.2.3 From 6a641bf832dc621f253d268b2d29b7766acd4085 Mon Sep 17 00:00:00 2001 From: Karlson2k Date: Tue, 14 Jan 2014 05:26:06 +0400 Subject: CURL::Encode: don't use locale-dependent isalnum, refactoring, add comments --- xbmc/URL.cpp | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/xbmc/URL.cpp b/xbmc/URL.cpp index 07154fbd1a..eccc72fe6e 100644 --- a/xbmc/URL.cpp +++ b/xbmc/URL.cpp @@ -745,24 +745,21 @@ void CURL::Decode(CStdString& strURLData) void CURL::Encode(CStdString& strURLData) { - CStdString strResult; + std::string strResult; /* wonder what a good value is here is, depends on how often it occurs */ strResult.reserve( strURLData.length() * 2 ); - for (int i = 0; i < (int)strURLData.size(); ++i) + for (size_t i = 0; i < strURLData.size(); ++i) { - int kar = (unsigned char)strURLData[i]; - //if (kar == ' ') strResult += '+'; // obsolete - if (isalnum(kar) || strchr("-_.!()" , kar) ) // Don't URL encode these according to RFC1738 - { - strResult += kar; - } + const char kar = strURLData[i]; + + // Don't URL encode "-_.!()" according to RFC1738 + // TODO: Update it to "-_.~" after Gotham according to RFC3986 + if (StringUtils::isasciialphanum(kar) || kar == '-' || kar == '.' || kar == '_' || kar == '!' || kar == '(' || kar == ')') + strResult.push_back(kar); else - { - CStdString strTmp = StringUtils::Format("%%%02.2x", kar); - strResult += strTmp; - } + strResult += StringUtils::Format("%%%02.2x", (unsigned int)((unsigned char)kar)); // TODO: Change to "%%%02.2X" after Gotham } strURLData = strResult; } -- cgit v1.2.3