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.0.6.0-stable
parent
a5e7807612
commit
61978649ec
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue