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
Melanie Thielker 2008-09-02 03:43:18 +00:00
parent a5e7807612
commit 61978649ec
4 changed files with 17 additions and 7 deletions

View File

@ -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);
}
}
}
}

View File

@ -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,

View File

@ -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)

View File

@ -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,