diff --git a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs index f98633f2e8..1493e32835 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Chat/ChatModule.cs @@ -161,6 +161,9 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat string message = e.Message; LLUUID fromID = e.SenderUUID; + if(message.Length >= 1000) // libomv limit + message = message.Substring(0, 1000); + if (e.Sender != null) { avatar = scene.GetScenePresence(e.Sender.AgentId); @@ -240,4 +243,4 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat fromAgentID,(byte)src,(byte)ChatAudibleLevel.Fully); } } -} \ No newline at end of file +} diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 8ce14135d3..6b674f3038 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 babb759ce8..23177e5ee0 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) diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index a33554c0c9..f9f88832ea 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -432,8 +432,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine { // DISPLAY ERROR INWORLD string text = "Error compiling script:\r\n" + e.Message.ToString(); - if (text.Length > 1400) - text = text.Substring(0, 1400); + if (text.Length > 1000) + text = text.Substring(0, 1000); World.SimChat(Helpers.StringToField(text), ChatTypeEnum.DebugChannel, 2147483647, part.AbsolutePosition,