summaryrefslogtreecommitdiff
path: root/indra/llui/llurlentry.cpp
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2017-11-24 17:58:02 +0200
committerMnikolenko Productengine <mnikolenko@productengine.com>2017-11-24 17:58:02 +0200
commit3d7dedff268cdedbea586c3e329c0682ee841290 (patch)
tree5e039fcf276221e88c95424401d4750053353b4e /indra/llui/llurlentry.cpp
parent22049830334de572ab703132aab353f2b20a3c15 (diff)
MAINT-8023 Viewer breaks URLs with internationalized domain names
Diffstat (limited to 'indra/llui/llurlentry.cpp')
-rw-r--r--indra/llui/llurlentry.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index a4243ebfa1..a4dc5bcde1 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -190,31 +190,32 @@ bool LLUrlEntryBase::isWikiLinkCorrect(std::string url)
std::string LLUrlEntryBase::urlToLabelWithGreyQuery(const std::string &url) const
{
- LLUriParser up(unescapeUrl(url));
+ LLUriParser up(escapeUrl(url));
up.normalize();
std::string label;
up.extractParts();
up.glueFirst(label);
- return label;
+ return unescapeUrl(label);
}
std::string LLUrlEntryBase::urlToGreyQuery(const std::string &url) const
{
- LLUriParser up(unescapeUrl(url));
+ std::string escaped_url = escapeUrl(url);
+ LLUriParser up(escaped_url);
std::string label;
up.extractParts();
up.glueFirst(label, false);
- size_t pos = url.find(label);
+ size_t pos = escaped_url.find(label);
if (pos == std::string::npos)
{
return "";
}
pos += label.size();
- return url.substr(pos);
+ return unescapeUrl(escaped_url.substr(pos));
}