From 79680891a73be074aa449a9ccdf695b0afd300d8 Mon Sep 17 00:00:00 2001
From: James Cook <james@lindenlab.com>
Date: Fri, 28 Dec 2007 22:19:29 +0000
Subject: [PATCH] svn merge -r 76394:76651
 svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-18-6-Viewer to pick
 up LLURI escaping fix and all other changes since last sync.  Not reviewed.

---
 doc/contributions.txt    | 3 +++
 indra/llcommon/lluri.cpp | 4 +++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/doc/contributions.txt b/doc/contributions.txt
index 4d2584f1eb3..0c360e7f84d 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -33,6 +33,7 @@ Alissa Sabre
 	VWR-1410
 	VWR-2116
 	VWR-2826
+	VWR-4010
 Angus Boyd
 	VWR-592
 Argent Stonecutter
@@ -151,6 +152,8 @@ Kage Pixel
 Kunnis Basiat
 	VWR-82
 	VWR-102
+march Korda
+	SVC-1020
 Matthew Dowd
 	VWR-1344
 	VWR-1736
diff --git a/indra/llcommon/lluri.cpp b/indra/llcommon/lluri.cpp
index 5e4dec7f82c..deeee3173df 100644
--- a/indra/llcommon/lluri.cpp
+++ b/indra/llcommon/lluri.cpp
@@ -57,7 +57,9 @@ std::string LLURI::escape(const std::string& str, const std::string & allowed)
 		  {
 		    ostr << "%"
 			 << std::uppercase << std::hex << std::setw(2) << std::setfill('0')
-			 << static_cast<U32>(c);
+			 // VWR-4010 Cannot cast to U32 because sign-extension on 
+			 // chars > 128 will result in FFFFFFC3 instead of F3.
+			 << static_cast<S32>(static_cast<U8>(c));
 		  }
 		else
 		  {
-- 
GitLab