I had mentioned this once or twice awhile back but even I neglected to notice my own mistake.
The script engine was using a priority level of each command being executed, this level determined whether or not the command could be executed safely now or if it needed to be executed later, with 3 stacks (input, processing, execution stack) commands are moved from one to the other, some specific commands skip the processing stack all together.
Once the execution stack contains an item certain processing can't occur until the execution stack is emptied.
An invalid command or a few others such as /enqueue, /queue selected, RAW command would yield until the execution stack was emptied and this caused the out of order sequences we both have noticed.
While this is clear to me now, it was not entirely obvious to me while trying to solve these problems.
This way makes everything overly complicated (as well as unclear and out of order); after several hours of testing I can't recall exactly why it was even done this way, I am fairly sure it had something to do with queuing the selected items and then deleting them but not entirely sure.
I am changing this and eliminating the priority based ordering for now.
With this change everything now appears to work exactly as intended based on all my test scripts as well as the ones you provided.
I am also changing the way the script handles failures so that if a failure occurs within a command block or included script then the failure only stops execution within that scope, allowing the remaining script to finish.
Code:
/cd /System/
/selectall -d
{
/cd %p%f
site chmod 777 %p%f
}
/uncd
CWD /System/Config.Msi
250 CWD command successful.
site chmod 777 /System/Config.Msi
...
CWD /System/Documents and Settings
550 CWD failed. No permission.
< /cd failed as a result site chmod is not performed >
...
CWD /System/DvTape
250 CWD command successful.
site chmod 777 /System/DvTape
I am performing a massive code cleanup of the script engine and I should have an updated build for you to test later tonight or tomorrow.