17#ifndef ECOLI_EDITLINE_
18#define ECOLI_EDITLINE_
40#define EC_EDITLINE_HISTORY_SIZE 128
60#define EC_EDITLINE_DISABLE_SIGNALS 0x01
67#define EC_EDITLINE_DISABLE_HISTORY 0x02
80#define EC_EDITLINE_DISABLE_COMPLETION 0x04
87#define EC_EDITLINE_DEFAULT_SIGHANDLER 0x08
89typedef int (*ec_editline_cmpl_t)(
struct ec_editline *editline,
int c);
99ec_editline(
const char *name, FILE *f_in, FILE *f_out, FILE *f_err,
105void ec_editline_free(
struct ec_editline *editline);
110EditLine *ec_editline_get_el(
struct ec_editline *editline);
113const struct ec_node *ec_editline_get_node(
struct ec_editline *editline);
114void ec_editline_set_node(
struct ec_editline *editline,
135int ec_editline_set_history(
struct ec_editline *editline,
136 size_t hist_size,
const char *hist_file);
139ec_editline_print_cols(
struct ec_editline *editline,
140 char const *
const *matches,
size_t n);
142void ec_editline_free_completions(
char **matches,
size_t len);
144ec_editline_get_completions(
const struct ec_comp *cmpl,
char ***matches_out);
146ec_editline_append_chars(
const struct ec_comp *cmpl);
149ec_editline_get_helps(
const struct ec_editline *editline,
const char *line,
152ec_editline_print_helps(
struct ec_editline *editline,
158ec_editline_get_suggestions(
const struct ec_editline *editline,
160 char **full_line,
int *pos);
163ec_editline_set_prompt(
struct ec_editline *editline,
const char *prompt);
166ec_editline_set_prompt_esc(
struct ec_editline *editline,
const char *prompt,
169char *ec_editline_curline(
const struct ec_editline *editline,
170 bool trim_after_cursor);
177char *ec_editline_gets(
struct ec_editline *editline);
184ec_editline_parse(
struct ec_editline *editline,
const struct ec_node *node);
187ec_editline_complete(EditLine *el,
int c);
struct ec_node * ec_node(const char *typename, const char *id)
struct ec_pnode * ec_pnode(const struct ec_node *node)