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.
It should help ensuring that you have the right script contents when saving. It also provides a short description, to get a rough idea of what it's about.
The only code change is the product name in [AV]xcite! to add a TM symbol to Xcite!
There is a .lsl file (the Lockguard plugin) and there may be more to come, so mention ".lslo or .lsl" instead of just ".lslo".
One user in the group had problems because the AVpos notecard had never been saved; to prevent that, add instructions on preparing an empty AVpos notecard that has been saved.
The problem has been observed in some items using [AV]faces.
So far the only way I've found to reproduce it was resetting one of the [AV]sit scripts while [AV]faces was reproducing a sequence. Other triggers may be possible.
When no one is sitting, it's still possible to get a menu that has a [SECURITY] option, via RLV's ONTOUCH ASK. This breaks the assumption in the [BACK] button handler, which sent the [ADJUST] menu to an active sitter, and when there was no sitter, the menu was sent to all sitters instead, causing multiple dialogs to be generated. Repro details are in #35.
Fix by disabling the [BACK] button when no active sitter is set. The alternative of faking a click is not viable because we've lost the information of what prim was clicked, which is essential for RLV to know where to force-sit the victim.
Disabling [BACK] is a bit rude on the user, but it has the advantage that they have to click the desired prim again, therefore the information is recovered.
Fixes#35.
It served no practical purpose and used undefined variables to define values that weren't used anyway.
Also, comment out the variables that aren't used after parsing the X-SecondLife headers.
All variable values in SQL statements should use IntSQL or StrSQL as appropriate, rather than variables directly, with the exception of the table name.
This is akin to using htmlspecialchars to include text in HTML, or urlencode to include text in a URL. Normally you have the text in raw form and convert it as appropriate depending on where you're inserting it.
- Get rid of Y2K38 problems https://xkcd.com/607/
- This also removes default value and on-update value for the timestamp, but these were being set explicitly so no harm done.
- Set the text field's character set to UTF-8.
- Set the link's character set to UTF-8.
This will allow replacing the main file without needing to re-add the settings.
For example, settings.php can be always kept up-to-date locally via a symbolic link, without altering the configuration.