diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2015-12-04 16:09:15 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2015-12-04 16:09:15 -0500 |
commit | d69a0e692e420e5b95e9bcb4ad1e7c5cfa283468 (patch) | |
tree | dba5f50b894e52ad961f599702f3da801e3518b9 /indra/llui | |
parent | c4de6b93d3c3f182fc7bf28e5c285e4d14da0764 (diff) | |
parent | 6ed6158ac68076b6a6242a3a74a3394846227e04 (diff) |
Automated merge with ssh://bitbucket.org/nat_linden/viewer-no-leap-test
Diffstat (limited to 'indra/llui')
-rwxr-xr-x | indra/llui/llkeywords.cpp | 11 | ||||
-rwxr-xr-x | indra/llui/llurlentry.cpp | 5 | ||||
-rwxr-xr-x | indra/llui/llurlregistry.cpp | 7 | ||||
-rwxr-xr-x | indra/llui/llurlregistry.h | 1 | ||||
-rwxr-xr-x | indra/llui/tests/llurlentry_test.cpp | 14 |
5 files changed, 27 insertions, 11 deletions
diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp index 6750ee482a..fc4a007d9e 100755 --- a/indra/llui/llkeywords.cpp +++ b/indra/llui/llkeywords.cpp @@ -296,7 +296,7 @@ void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group } color_group = getColorGroup(group); - LL_INFOS("SyntaxLSL") << "Group: '" << group << "', using color: '" << color_group << "'" << LL_ENDL; + LL_DEBUGS("SyntaxLSL") << "Group: '" << group << "', using color: '" << color_group << "'" << LL_ENDL; if (tokens.isMap()) { @@ -331,7 +331,14 @@ void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group switch (token_type) { case LLKeywordToken::TT_CONSTANT: - color_group = getColorGroup(group + "-" + getAttribute("type")); + if (getAttribute("type").length() > 0) + { + color_group = getColorGroup(group + "-" + getAttribute("type")); + } + else + { + color_group = getColorGroup(group); + } tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value"); break; case LLKeywordToken::TT_EVENT: diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 7f6cc22e90..576fff5fb2 100755 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -449,7 +449,10 @@ std::string LLUrlEntrySLURL::getLocation(const std::string &url) const // LLUrlEntrySecondlifeURL::LLUrlEntrySecondlifeURL() { - mPattern = boost::regex("https?://([-\\w\\.]*\\.)?(secondlife|lindenlab)\\.com(:\\d{1,5})?\\/\\S*", + mPattern = boost::regex("((http://([-\\w\\.]*\\.)?(secondlife|lindenlab)\\.com)" + "|" + "(https://([-\\w\\.]*\\.)?(secondlife|lindenlab)\\.com(:\\d{1,5})?))" + "\\/\\S*", boost::regex::perl|boost::regex::icase); mIcon = "Hand"; diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index 69eefa736c..23c6d5a954 100755 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -41,7 +41,8 @@ LLUrlRegistry::LLUrlRegistry() mUrlEntry.reserve(20); // Urls are matched in the order that they were registered - registerUrl(new LLUrlEntryNoLink()); + mUrlEntryNoLink = new LLUrlEntryNoLink(); + registerUrl(mUrlEntryNoLink); mUrlEntryIcon = new LLUrlEntryIcon(); registerUrl(mUrlEntryIcon); mLLUrlEntryInvalidSLURL = new LLUrlEntryInvalidSLURL(); @@ -214,7 +215,6 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL // did we find a match? if so, return its details in the match object if (match_entry) { - // Skip if link is an email with an empty username (starting with @). See MAINT-5371. if (match_start > 0 && text.substr(match_start - 1, 1) == "@") return false; @@ -223,7 +223,8 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL std::string url = text.substr(match_start, match_end - match_start + 1); LLUrlEntryBase *stripped_entry = NULL; - if(LLStringUtil::containsNonprintable(url)) + if((match_entry != mUrlEntryNoLink) && (match_entry != mUrlEntryHTTPLabel) && (match_entry !=mUrlEntrySLLabel) + && LLStringUtil::containsNonprintable(url)) { LLStringUtil::stripNonprintable(url); diff --git a/indra/llui/llurlregistry.h b/indra/llui/llurlregistry.h index 5ce4048d5d..24c3a2b513 100755 --- a/indra/llui/llurlregistry.h +++ b/indra/llui/llurlregistry.h @@ -98,6 +98,7 @@ private: LLUrlEntryBase* mLLUrlEntryInvalidSLURL; LLUrlEntryBase* mUrlEntryHTTPLabel; LLUrlEntryBase* mUrlEntrySLLabel; + LLUrlEntryBase* mUrlEntryNoLink; }; #endif diff --git a/indra/llui/tests/llurlentry_test.cpp b/indra/llui/tests/llurlentry_test.cpp index 96e94c0f80..dde54c78c4 100755 --- a/indra/llui/tests/llurlentry_test.cpp +++ b/indra/llui/tests/llurlentry_test.cpp @@ -838,17 +838,21 @@ namespace tut "search something https://marketplace.secondlife.com/products/search on marketplace and test the https", "https://marketplace.secondlife.com/products/search"); - testRegex("match urls with port", url, - "let's specify some port http://secondlife.com:888/status", - "http://secondlife.com:888/status"); + testRegex("match HTTPS urls with port", url, + "let's specify some port https://secondlife.com:888/status", + "https://secondlife.com:888/status"); + + testRegex("don't match HTTP urls with port", url, + "let's specify some port for HTTP http://secondlife.com:888/status", + ""); testRegex("don't match urls w/o protocol", url, "looks like an url something www.marketplace.secondlife.com/products but no https prefix", ""); testRegex("but with a protocol www is fine", url, - "so let's add a protocol http://www.marketplace.secondlife.com:8888/products", - "http://www.marketplace.secondlife.com:8888/products"); + "so let's add a protocol https://www.marketplace.secondlife.com:8888/products", + "https://www.marketplace.secondlife.com:8888/products"); testRegex("don't match urls w/o protocol", url, "and even no www something secondlife.com/status", |