diff options
author | andreykproductengine <andreykproductengine@lindenlab.com> | 2019-04-12 14:34:07 +0300 |
---|---|---|
committer | andreykproductengine <andreykproductengine@lindenlab.com> | 2019-04-12 14:34:07 +0300 |
commit | 9194a97e9460fcd3836c8e20399d50a37d4f1807 (patch) | |
tree | 3bfec1491c313fa1a4e5717c2d94403b75a0d242 /indra/newview/llviewerhelputil.cpp | |
parent | 960d1169f0b73acb001adffc912797cf0f0f1687 (diff) |
Backed out changeset: ce892720a893 (SL-10924)
Diffstat (limited to 'indra/newview/llviewerhelputil.cpp')
-rw-r--r-- | indra/newview/llviewerhelputil.cpp | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/indra/newview/llviewerhelputil.cpp b/indra/newview/llviewerhelputil.cpp index 4d18a791fc..ef4b955a5e 100644 --- a/indra/newview/llviewerhelputil.cpp +++ b/indra/newview/llviewerhelputil.cpp @@ -39,80 +39,6 @@ // Build a help URL from a topic and formatter //static -std::string LLViewerHelpUtil::helpDataEncode(const std::string &component) -{ - const std::string data_marker = "data:"; - if (component.compare(0, data_marker.length(), data_marker) == 0) - { - // This is not url, but data, data part needs to be properly escaped - // data part is separated by ',' from header. Minimal data uri is "data:," - // See "data URI scheme" - size_t separator = component.find(","); - if (separator != std::string::npos) - { - size_t header_size = separator + 1; - std::string header = component.substr(0, header_size); - if (header.find("base64") != std::string::npos) - { - // assume url-safe data - return component; - } - - std::string data = component.substr(header_size, component.length() - header_size); - - const std::string allowed_sorted = - "%-." //include % since it can be a sign of being pre-escaped and is an allowed symbol - "0123456789" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "_" - "abcdefghijklmnopqrstuvwxyz"; - - bool needs_escaping = false; - - std::string::const_iterator it = data.begin(); - std::string::const_iterator end = data.end(); - std::string::const_iterator allowed_begin(allowed_sorted.begin()); - std::string::const_iterator allowed_end(allowed_sorted.end()); - std::string::value_type c; - for (; it != end; ++it) - { - c = *it; - if (!std::binary_search(allowed_begin, allowed_end, c)) - { - // found unescaped symbol - needs_escaping = true; - break; - } - } - - if (!needs_escaping) - { - // pre-escaped - return component; - } - - // Notes: Teoretically file can be partially pre-escaped, - // but we can't reliably distinguish what user intended to do, - // so escape everything and let user control the rest. - // Escapes % as well - std::string url = header + helpURLEncode(data); - - return url; - } - else - { - // corrupted or not a data scheme? Nothing we can do. - return component; - } - } - else - { - // Not a data scheme - return component; - } -} - -//static std::string LLViewerHelpUtil::helpURLEncode( const std::string &component ) { // Every character rfc3986 allows as unreserved in 2.3, minus the tilde |