mirror of
https://github.com/opensim/opensim.git
synced 2026-07-31 13:55:35 +08:00
corrected osMakeNotecard(string data) text length was calculated wrong. The Linden text format defines a byte count in that format.
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
This commit is contained in:
@@ -1825,13 +1825,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
// Create new asset
|
||||
AssetBase asset = new AssetBase(UUID.Random(), name, (sbyte)AssetType.Notecard, m_host.OwnerID.ToString());
|
||||
asset.Description = description;
|
||||
byte[] a;
|
||||
byte[] b;
|
||||
byte[] c;
|
||||
|
||||
int textLength = data.Length;
|
||||
data
|
||||
= "Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length "
|
||||
+ textLength.ToString() + "\n" + data + "}\n";
|
||||
b = Util.UTF8.GetBytes(data);
|
||||
|
||||
asset.Data = Util.UTF8.GetBytes(data);
|
||||
a = Util.UTF8.GetBytes(
|
||||
"Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length " + b.Length.ToString() + "\n");
|
||||
|
||||
c = Util.UTF8.GetBytes("}");
|
||||
|
||||
byte[] d = new byte[a.Length + b.Length + c.Length];
|
||||
Buffer.BlockCopy(a, 0, d, 0, a.Length);
|
||||
Buffer.BlockCopy(b, 0, d, a.Length, b.Length);
|
||||
Buffer.BlockCopy(c, 0, d, a.Length + b.Length, c.Length);
|
||||
|
||||
asset.Data = d;
|
||||
World.AssetService.Store(asset);
|
||||
|
||||
// Create Task Entry
|
||||
|
||||
Reference in New Issue
Block a user