From 084ea99be62d63afc4d91f5f7b9118f39f02754c Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Tue, 9 Sep 2008 01:01:45 +0000
Subject: Fix string -> int cast to variable

---
 OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index f149f60..481f671 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -1335,8 +1335,14 @@ namespace OpenSim.Region.ScriptEngine.Shared
 
             public static explicit operator LSLInteger(LSLString s)
             {
-                // double.Parse() used because s could be "123.9" for example.
-                return new LSLInteger(double.Parse(s.m_string));
+                Regex r = new Regex("^[ ]*-?[0-9][0-9]*");
+                Match m = r.Match(s);
+                string v = m.Groups[0].Value;
+
+                if (v == String.Empty)
+                    v = "0";
+
+                return new LSLInteger(int.Parse(v));
             }
 
             public static explicit operator LSLString(double d)
@@ -1467,7 +1473,6 @@ namespace OpenSim.Region.ScriptEngine.Shared
                 if (v == String.Empty)
                     v = "0";
 
-                // double.Parse() used because s could be "123.9" for example.
                 return new LSLInteger(int.Parse(v));
             }
 
-- 
cgit v1.1