From 61978649ec1642f1c0bf0a3aa6492cebefab85d3 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Tue, 2 Sep 2008 03:43:18 +0000 Subject: Change some chat output functions so that text is truncated at 1000 chars to avoid the exception thrown by libomv at 1100 chars. Change string->int conversion so it copes with non-numeric chars after the number and no longer uses a float to parse the value. --- OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 6 +++--- OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | 9 ++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Shared') diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 8ce1413..6b674f3 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -517,9 +517,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance try { // DISPLAY ERROR INWORLD - string text = "Runtime error:\n" + e.ToString(); - if (text.Length > 1400) - text = text.Substring(0, 1400); + string text = "Runtime error:\n" + e.InnerException.ToString(); + if (text.Length > 1000) + text = text.Substring(0, 1000); m_Engine.World.SimChat(Helpers.StringToField(text), ChatTypeEnum.DebugChannel, 2147483647, part.AbsolutePosition, diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs index babb759..23177e5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs @@ -1394,8 +1394,15 @@ namespace OpenSim.Region.ScriptEngine.Shared static public explicit operator LSLInteger(string s) { + 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"; + // double.Parse() used because s could be "123.9" for example. - return new LSLInteger(double.Parse(s)); + return new LSLInteger(int.Parse(v)); } static public implicit operator LSLInteger(uint u) -- cgit v1.1