From d5257abdb1e09de531640313dfffbfd63aeadfd3 Mon Sep 17 00:00:00 2001
From: Maxim Nikolenko <mnikolenko@productengine.com>
Date: Fri, 2 Dec 2022 00:45:34 +0200
Subject: SL-18734 certain links are not displayed appropriately

---
 indra/llui/llurlentry.cpp    | 1 +
 indra/llui/llurlregistry.cpp | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

(limited to 'indra/llui')

diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index 1547a4ba5c..6a9070634c 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -206,6 +206,7 @@ bool LLUrlEntryBase::isWikiLinkCorrect(const std::string &labeled_url) const
     {
         return (chr == L'\u02D0') // "Modifier Letter Colon"
             || (chr == L'\uFF1A') // "Fullwidth Colon"
+            || (chr == L'\u2236') // "Ratio"
             || (chr == L'\uFE55'); // "Small Colon"
     },
         L'\u003A'); // Colon
diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp
index c9d7013a11..23f3dca3fb 100644
--- a/indra/llui/llurlregistry.cpp
+++ b/indra/llui/llurlregistry.cpp
@@ -169,7 +169,7 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL
 	for (it = mUrlEntry.begin(); it != mUrlEntry.end(); ++it)
 	{
 		//Skip for url entry icon if content is not trusted
-		if(!is_content_trusted && (mUrlEntryIcon == *it))
+		if((mUrlEntryIcon == *it) && ((text.find("Hand") != std::string::npos) || !is_content_trusted))
 		{
 			continue;
 		}
-- 
cgit v1.2.3


From 6dec98a14ca052a3600556815e6b215eed15e97d Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Tue, 24 Jan 2023 21:51:24 +0200
Subject: SL-17425 Crash when having more than one dependent floater #2

---
 indra/llui/llfloater.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

(limited to 'indra/llui')

diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index d413fab270..2303cd24b7 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -759,11 +759,13 @@ void LLFloater::closeFloater(bool app_quitting)
         }
 
 		// now close dependent floater
-		for(handle_set_iter_t dependent_it = mDependents.begin();
-			dependent_it != mDependents.end(); )
+		while(mDependents.size() > 0)
 		{
+            handle_set_iter_t dependent_it = mDependents.begin();
 			LLFloater* floaterp = dependent_it->get();
-            dependent_it = mDependents.erase(dependent_it);
+            // normally removeDependentFloater will do this, but in
+            // case floaterp is somehow invalid or orphaned, erase now
+            mDependents.erase(dependent_it);
             if (floaterp)
             {
                 floaterp->mDependeeHandle = LLHandle<LLFloater>();
-- 
cgit v1.2.3