Added another 60 tests, now totalling 901 all-passing tests. This change also reduces memory cost for boot by about 1300 bytes.
This change should be fully compatible with any 1.6 user scripts. This makes no change to api, only improves shell support and makes important process handle cleanup (when pipes and redirection is used - we are not auto-closing user file handles).
E.g. file systems automatically connected together with the main component, as in the internet card.
This should fix a potential crash with OC conduits in EnderIO.
Also, unit tests \o/ You'll need ScalaTest and Mockito to run them.
The issue fixed is that the hint cache was being cleared far too often, including for key-up events. The fix is to only clear the cache on related events such as clipboard and key-down (but restore cache for tab keydown).
term wrapping fixes
Backspacing or deleting during vertical wrap would not update the current end of line correctly what the text was being pulled from the next line
horizontal wrapping deletion was not using dx,dy and instead was removing text from absolute positions on the screen
horizontal wrapping was pushing spaces beyond the windowed areas
Tab complete in the lua prompt shows . on tables, but can give the wrong impression that there are no keys. Consider that the user types =filesyste[tab] and then sees =filesystem. and presses tab again. The hint table has only one entry, "=filesystem." and is cycling through that one entry and not reconsidering children of filesystem .. which is what the prompt makes the user think. This change injects a metamethod lookup in the 2nd index of a single result to repop the hint list with new children.
Delayload is lighter weight now. Improving method reuse and reducing boot costs about about 1.5k
term had some crashes and improper behavior. This fixed tab complete for 5.3 lua archs, term palette use, and missing tab complete hints. Term blinking now also supports setCursorBlink(false).
grep had a bug where patterns looking for start-of-line text would find in-line matches as well.