From b111e644416d8b9a28f1473b97cfc23d611099d9 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Tue, 10 Aug 2010 15:06:04 -0700 Subject: Applied patch for SNOW-636: parse links to maps.secondlife.com in chat as slurls (viewer2 slurl format) --- linden/indra/llui/lltexteditor.cpp | 6 ++++++ linden/indra/newview/llurldispatcher.cpp | 9 ++++++++- linden/indra/newview/llviewermessage.cpp | 5 +++++ 3 files changed, 19 insertions(+), 1 deletion(-) (limited to 'linden') diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp index 00fa517..2d46943 100644 --- a/linden/indra/llui/lltexteditor.cpp +++ b/linden/indra/llui/lltexteditor.cpp @@ -4547,6 +4547,12 @@ BOOL LLTextEditor::findHTML(const std::string &line, S32 *begin, S32 *end) const std::string slurlID = "slurl.com/secondlife/"; strpos = url.find(slurlID); + if (strpos < 0) + { + slurlID="maps.secondlife.com/secondlife/"; + strpos = url.find(slurlID); + } + if (strpos < 0) { slurlID="secondlife://"; diff --git a/linden/indra/newview/llurldispatcher.cpp b/linden/indra/newview/llurldispatcher.cpp index 7c50bd4..f9b6b39 100644 --- a/linden/indra/newview/llurldispatcher.cpp +++ b/linden/indra/newview/llurldispatcher.cpp @@ -53,6 +53,7 @@ const std::string SLURL_SL_HELP_PREFIX = "secondlife://app."; const std::string SLURL_SL_PREFIX = "sl://"; const std::string SLURL_SECONDLIFE_PREFIX = "secondlife://"; const std::string SLURL_SLURL_PREFIX = "http://slurl.com/secondlife/"; +const std::string SLURL_SLURL_ALT_PREFIX = "http://maps.secondlife.com/secondlife/"; const std::string SLURL_APP_TOKEN = "app/"; @@ -117,6 +118,7 @@ bool LLURLDispatcherImpl::isSLURL(const std::string& url) if (matchPrefix(url, SLURL_SL_PREFIX)) return true; if (matchPrefix(url, SLURL_SECONDLIFE_PREFIX)) return true; if (matchPrefix(url, SLURL_SLURL_PREFIX)) return true; + if (matchPrefix(url, SLURL_SLURL_ALT_PREFIX)) return true; return false; } @@ -125,7 +127,8 @@ bool LLURLDispatcherImpl::isSLURLCommand(const std::string& url) { if (matchPrefix(url, SLURL_SL_PREFIX + SLURL_APP_TOKEN) || matchPrefix(url, SLURL_SECONDLIFE_PREFIX + "/" + SLURL_APP_TOKEN) - || matchPrefix(url, SLURL_SLURL_PREFIX + SLURL_APP_TOKEN) ) + || matchPrefix(url, SLURL_SLURL_PREFIX + SLURL_APP_TOKEN) + || matchPrefix(url, SLURL_SLURL_ALT_PREFIX + SLURL_APP_TOKEN)) { return true; } @@ -364,6 +367,10 @@ std::string LLURLDispatcherImpl::stripProtocol(const std::string& url) { stripped.erase(0, SLURL_SLURL_PREFIX.length()); } + else if (matchPrefix(stripped, SLURL_SLURL_ALT_PREFIX)) + { + stripped.erase(0, SLURL_SLURL_ALT_PREFIX.length()); + } return stripped; } diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index 9bd11e8..fb1e7cf 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp @@ -1295,6 +1295,11 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task) // Strip any SLURL from the message display. (DEV-2754) std::string msg = info->mDesc; int indx = msg.find(" ( http://slurl.com/secondlife/"); + if(indx == std::string::npos) + { + // try to find new slurl host + indx = msg.find(" ( http://maps.secondlife.com/secondlife/"); + } if(indx >= 0) { LLStringUtil::truncate(msg, indx); -- cgit v1.1