diff options
| -rw-r--r-- | indra/llui/llurlentry.cpp | 11 | ||||
| -rw-r--r-- | indra/llui/llurlregistry.cpp | 35 | 
2 files changed, 9 insertions, 37 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));  } diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index fa6593267a..ba6fa1e2e9 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -212,7 +212,7 @@ 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)  	{ @@ -223,33 +223,6 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL  		// fill in the LLUrlMatch object and return it  		std::string url = text.substr(match_start, match_end - match_start + 1); -		LLUrlEntryBase *stripped_entry = NULL; -		if((match_entry != mUrlEntryNoLink) && (match_entry != mUrlEntryHTTPLabel) && (match_entry !=mUrlEntrySLLabel) -		        && LLStringUtil::containsNonprintable(url)) -		{ -			LLStringUtil::stripNonprintable(url); - -			std::vector<LLUrlEntryBase *>::iterator iter; -			for (iter = mUrlEntry.begin(); iter != mUrlEntry.end(); ++iter) -			{ -				LLUrlEntryBase *url_entry = *iter; -				U32 start = 0, end = 0; -				if (matchRegex(url.c_str(), url_entry->getPattern(), start, end)) -				{ -					if (mLLUrlEntryInvalidSLURL == *iter) -					{ -						if(url_entry && url_entry->isSLURLvalid(url)) -						{ -							continue; -						} -					} -					stripped_entry = url_entry; -					break; -				} -			} -		} - -  		if (match_entry == mUrlEntryTrusted)  		{  			LLUriParser up(url); @@ -257,12 +230,10 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL  			url = up.normalizedUri();  		} -		std::string url_label = stripped_entry? stripped_entry->getLabel(url, cb) : match_entry->getLabel(url, cb); -		std::string url_query = stripped_entry? stripped_entry->getQuery(url) : match_entry->getQuery(url);  		match.setValues(match_start, match_end,  						match_entry->getUrl(url), -						url_label, -						url_query, +						match_entry->getLabel(url, cb), +						match_entry->getQuery(url),  						match_entry->getTooltip(url),  						match_entry->getIcon(url),  						match_entry->getStyle(), | 
