mirror of
https://xff.cz/git/u-boot/
synced 2025-09-03 01:32:47 +02:00
cli: Create a function to process characters
Move most of the inner loop from cread_line() into a new function. This will allow using it from other code. This involves adding a few more members to the state struct. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -31,11 +31,16 @@ struct cli_ch_state {
|
||||
* @num: Current cursor position, where 0 is the start
|
||||
* @eol_num: Number of characters in the buffer
|
||||
* @insert: true if in 'insert' mode
|
||||
* @buf: Buffer containing line
|
||||
* @prompt: Prompt for the line
|
||||
*/
|
||||
struct cli_line_state {
|
||||
uint num;
|
||||
uint eol_num;
|
||||
uint len;
|
||||
bool insert;
|
||||
char *buf;
|
||||
const char *prompt;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -243,6 +248,16 @@ void cli_ch_init(struct cli_ch_state *cch);
|
||||
*/
|
||||
int cli_ch_process(struct cli_ch_state *cch, int ichar);
|
||||
|
||||
/**
|
||||
* cread_line_process_ch() - Process a character for line input
|
||||
*
|
||||
* @cls: CLI line state
|
||||
* @ichar: Character to process
|
||||
* Return: 0 if input is complete, with line in cls->buf, -EINTR if input was
|
||||
* cancelled with Ctrl-C, -EAGAIN if more characters are needed
|
||||
*/
|
||||
int cread_line_process_ch(struct cli_line_state *cls, char ichar);
|
||||
|
||||
/** cread_print_hist_list() - Print the command-line history list */
|
||||
void cread_print_hist_list(void);
|
||||
|
||||
|
Reference in New Issue
Block a user