readline.h (2044B)
1#ifndef READLINE_H 2#define READLINE_H 3 4#define READLINE_CMD_BUF_SIZE 4095 5#define READLINE_MAX_CMDS 64 6#define READLINE_MAX_COMPLETIONS 256 7 8typedef void GCC_FMT_ATTR(2, 3) ReadLinePrintfFunc(void *opaque, 9 const char *fmt, ...); 10typedef void ReadLineFlushFunc(void *opaque); 11typedef void ReadLineFunc(void *opaque, const char *str, 12 void *readline_opaque); 13typedef void ReadLineCompletionFunc(void *opaque, 14 const char *cmdline); 15 16typedef struct ReadLineState { 17 char cmd_buf[READLINE_CMD_BUF_SIZE + 1]; 18 int cmd_buf_index; 19 int cmd_buf_size; 20 21 char last_cmd_buf[READLINE_CMD_BUF_SIZE + 1]; 22 int last_cmd_buf_index; 23 int last_cmd_buf_size; 24 25 int esc_state; 26 int esc_param; 27 28 char *history[READLINE_MAX_CMDS]; 29 int hist_entry; 30 31 ReadLineCompletionFunc *completion_finder; 32 char *completions[READLINE_MAX_COMPLETIONS]; 33 int nb_completions; 34 int completion_index; 35 36 ReadLineFunc *readline_func; 37 void *readline_opaque; 38 int read_password; 39 char prompt[256]; 40 41 ReadLinePrintfFunc *printf_func; 42 ReadLineFlushFunc *flush_func; 43 void *opaque; 44} ReadLineState; 45 46void readline_add_completion(ReadLineState *rs, const char *str); 47void readline_set_completion_index(ReadLineState *rs, int completion_index); 48 49const char *readline_get_history(ReadLineState *rs, unsigned int index); 50 51void readline_handle_byte(ReadLineState *rs, int ch); 52 53void readline_start(ReadLineState *rs, const char *prompt, int read_password, 54 ReadLineFunc *readline_func, void *readline_opaque); 55void readline_restart(ReadLineState *rs); 56void readline_show_prompt(ReadLineState *rs); 57 58ReadLineState *readline_init(ReadLinePrintfFunc *printf_func, 59 ReadLineFlushFunc *flush_func, 60 void *opaque, 61 ReadLineCompletionFunc *completion_finder); 62void readline_free(ReadLineState *rs); 63 64#endif /* READLINE_H */