This looks a little bit differently than the forth version for the time being, just to get off the ground- rather than a paging system, it's implemented as a simple carousel like the kernel selector.
Details
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 15160
Event Timeline
stand/lua/core.lua | ||
---|---|---|
202–203 | Might insert a nil check for curenv in here, before the unique check. (Or not, it shouldn't happen based on the corresponding C code.) | |
229 | I might name this differently to make it clear it is a predicate rather than a verb. | |
stand/lua/menu.lua | ||
58 | spaces around .. | |
62 | I don't really understand how the menu data works, so I am skipping this part. I'll take your word for it. | |
309 | spaces around .. |
Ship it, modulo this menu system has grown really large and isn't exactly data driven any more due to all of the embedded lambda functions. I'm not sure there's a better way to encompass all of this, though. We've basically got a novel, barebones UI toolkit.
I think for its lifespan in the tree it's debatable whether it's grown any less data driven than it already was. =) It already had quite a few lambdas in the form that I took it over from [1], I just added another interpretation for name/func and a couple more lambdas to bring it into parity with its Forth fourth cousin.
I also am not sure there's a better way to encompass all this. Forth had some dynamic stuff (swapping of menu entries and hiding of others) that would be kind of hard to capture if I simplified it much further.
[1] https://svnweb.freebsd.org/base/head/stand/lua/menu.lua?revision=329167&view=markup