INPUT HANDLING Written by Deathblade, 4-Sep-94. [ note: I'm still working on this, but this should serve as a quick description of input handling until I can get this completed. ] GUElib uses an input system that is quite a bit different from most other mudlibs. There are two main changes: the parser and the modal input system. The input system is discussed here, see /doc/std/parser for more information on the GUElib parser. The objective of the input system is to deal with nested input modes. A classic example is performing a "more" from within another. On many muds, this will fail due to the non-reentrant usage of input_to() and non-reentrancy in whatever is performing the "more" functionality (it is quite common to have the player object perform this function and it is usually done with non-reentrant code). The new input system centers around three functions on the player object: void modal_push(string func, int secure) void modal_pop() void modal_func(string func, int secure) The first function sets up the calling object as a modal input handler. All input will then be passed to the given function until a modal_pop() is sent. The function receiving the input may be changed with the modal_func() function. Both modal_push() and modal_func() take a second parameter indicating whether the input should be hidden (as in a password). ### need more here. discuss MORE_OB and EDIT_OB as helpful pieces ### of code. ### Beek: This *really* needs a few examples of how to do simple things so we don't have to pile through tons of docs just to do the equivalent of input_to :) -Beek