| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
2.4.12 Alternate Interface
An alternate interface is available to plain readline(). Some
applications need to interleave keyboard I/O with file, device, or
window system I/O, typically by using a main loop to select()
on various file descriptors. To accomodate this need, readline can
also be invoked as a ‘callback’ function from an event loop. There
are functions available to make this easy.
- Function: void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
Set up the terminal for readline I/O and display the initial expanded value of prompt. Save the value of lhandler to use as a function to call when a complete line of input has been entered. The function takes the text of the line as an argument.
- Function: void rl_callback_read_char (void)
Whenever an application determines that keyboard input is available, it should call
rl_callback_read_char(), which will read the next character from the current input source. If that character completes the line,rl_callback_read_charwill invoke the lhandler function saved byrl_callback_handler_installto process the line. Before calling the lhandler function, the terminal settings are reset to the values they had before callingrl_callback_handler_install. If the lhandler function returns, the terminal settings are modified for Readline’s use again.EOFis indicated by calling lhandler with aNULLline.
- Function: void rl_callback_handler_remove (void)
Restore the terminal to its initial state and remove the line handler. This may be called from within a callback as well as independently. If the lhandler installed by
rl_callback_handler_installdoes not exit the program, either this function or the function referred to by the value ofrl_deprep_term_functionshould be called before the program exits to reset the terminal settings.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
