Fix several calls that had wraparound hazards.

llGetSubString("abc", 3, -1) gives "abc"; llList2List(L, 1, -1) gives L when L has length 1. In general, llGetSubString or llList2List return the whole thing when the starting index is grater than the last element in the list.

There were a number of spots with that hazard, so fix all we found.
This commit is contained in:
Sei Lisa 2017-11-01 00:36:12 +01:00 committed by Sei-Lisa
parent aa9cba13a5
commit bf8f10bfe6
15 changed files with 39 additions and 39 deletions

View file

@ -196,7 +196,7 @@ default
{
string command = llStringTrim(llGetSubString(data, 1, llSubStringIndex(data, "}") - 1), STRING_TRIM);
data = llDumpList2String(llParseString2List(data, [" "], [""]), "");
data = llGetSubString(data, llSubStringIndex(data, "}") + 1, -1);
data = llGetSubString(data, llSubStringIndex(data, "}") + 1, 99999);
list parts = llParseStringKeepNulls(data, ["<"], []);
vector pos = (vector)("<" + llList2String(parts, 1));
pos = (pos - target_prim_pos) / target_prim_rot;

View file

@ -147,7 +147,7 @@ default
if (llGetSubString(notecard_name, 0, 9) == ".MENUITEMS")
{
string command = llGetSubString(data, 0, llSubStringIndex(data, " ") - 1);
list parts = llParseString2List(llGetSubString(data, llSubStringIndex(data, " ") + 1, -1), [" | ", " |", "| ", "|"], []);
list parts = llParseString2List(llGetSubString(data, llSubStringIndex(data, " ") + 1, 99999), [" | ", " |", "| ", "|"], []);
if (command == "TOMENU" || command == "MENU")
{
}

View file

@ -85,10 +85,10 @@ default
}
else
{
data = llGetSubString(data, llSubStringIndex(data, "◆") + 1, -1);
data = llGetSubString(data, llSubStringIndex(data, "◆") + 1, 99999);
data = llStringTrim(data, STRING_TRIM);
string command = llGetSubString(data, 0, llSubStringIndex(data, " ") - 1);
list parts = llParseString2List(llGetSubString(data, llSubStringIndex(data, " ") + 1, -1), [" | ", " |", "| ", "|"], []);
list parts = llParseString2List(llGetSubString(data, llSubStringIndex(data, " ") + 1, 99999), [" | ", " |", "| ", "|"], []);
if (command == "POSE" || command == "SYNC")
{
list anims = llList2ListStrided(llDeleteSubList(parts, 0, 0), 0, -1, 2);

View file

@ -111,7 +111,7 @@ default
if (distance <= mysize.x / 2)
{
objects_to_update += id;
objects_files += llDumpList2String(llList2List(data, 1, -1), "|");
objects_files += llDumpList2String(llList2List(data, 1, 99999), "|");
}
}
}