Lines Matching refs:cl
29 struct cmdline *cl = rdl->opaque; in cmdline_valid_buffer() local
31 ret = cmdline_parse(cl, buf); in cmdline_valid_buffer()
33 cmdline_printf(cl, "Ambiguous command\n"); in cmdline_valid_buffer()
35 cmdline_printf(cl, "Command not found\n"); in cmdline_valid_buffer()
37 cmdline_printf(cl, "Bad arguments\n"); in cmdline_valid_buffer()
45 struct cmdline *cl = rdl->opaque; in cmdline_complete_buffer() local
46 return cmdline_complete(cl, buf, state, dstbuf, dstsize); in cmdline_complete_buffer()
53 struct cmdline *cl; in cmdline_write_char() local
58 cl = rdl->opaque; in cmdline_write_char()
60 if (cl->s_out >= 0) in cmdline_write_char()
61 ret = write(cl->s_out, &c, 1); in cmdline_write_char()
68 cmdline_set_prompt(struct cmdline *cl, const char *prompt) in cmdline_set_prompt() argument
70 if (!cl || !prompt) in cmdline_set_prompt()
72 strlcpy(cl->prompt, prompt, sizeof(cl->prompt)); in cmdline_set_prompt()
78 struct cmdline *cl; in cmdline_new() local
84 cl = malloc(sizeof(struct cmdline)); in cmdline_new()
85 if (cl == NULL) in cmdline_new()
87 memset(cl, 0, sizeof(struct cmdline)); in cmdline_new()
88 cl->s_in = s_in; in cmdline_new()
89 cl->s_out = s_out; in cmdline_new()
90 cl->ctx = ctx; in cmdline_new()
92 ret = rdline_init(&cl->rdl, cmdline_write_char, cmdline_valid_buffer, in cmdline_new()
95 free(cl); in cmdline_new()
99 cl->rdl.opaque = cl; in cmdline_new()
100 cmdline_set_prompt(cl, prompt); in cmdline_new()
101 rdline_newline(&cl->rdl, cl->prompt); in cmdline_new()
103 return cl; in cmdline_new()
107 cmdline_get_rdline(struct cmdline *cl) in cmdline_get_rdline() argument
109 return &cl->rdl; in cmdline_get_rdline()
113 cmdline_free(struct cmdline *cl) in cmdline_free() argument
117 if (!cl) in cmdline_free()
120 if (cl->s_in > 2) in cmdline_free()
121 close(cl->s_in); in cmdline_free()
122 if (cl->s_out != cl->s_in && cl->s_out > 2) in cmdline_free()
123 close(cl->s_out); in cmdline_free()
124 free(cl); in cmdline_free()
128 cmdline_printf(const struct cmdline *cl, const char *fmt, ...) in cmdline_printf() argument
132 if (!cl || !fmt) in cmdline_printf()
135 if (cl->s_out < 0) in cmdline_printf()
138 cmdline_vdprintf(cl->s_out, fmt, ap); in cmdline_printf()
143 cmdline_in(struct cmdline *cl, const char *buf, int size) in cmdline_in() argument
150 if (!cl || !buf) in cmdline_in()
154 ret = rdline_char_in(&cl->rdl, buf[i]); in cmdline_in()
157 buffer = rdline_get_buffer(&cl->rdl); in cmdline_in()
158 history = rdline_get_history_item(&cl->rdl, 0); in cmdline_in()
168 rdline_add_history(&cl->rdl, buffer); in cmdline_in()
169 rdline_newline(&cl->rdl, cl->prompt); in cmdline_in()
180 cmdline_quit(struct cmdline *cl) in cmdline_quit() argument
182 if (!cl) in cmdline_quit()
184 rdline_quit(&cl->rdl); in cmdline_quit()
188 cmdline_poll(struct cmdline *cl) in cmdline_poll() argument
194 if (!cl) in cmdline_poll()
196 else if (cl->rdl.status == RDLINE_EXITED) in cmdline_poll()
199 status = cmdline_poll_char(cl); in cmdline_poll()
204 read_status = cmdline_read_char(cl, &c); in cmdline_poll()
208 status = cmdline_in(cl, &c, 1); in cmdline_poll()
209 if (status < 0 && cl->rdl.status != RDLINE_EXITED) in cmdline_poll()
213 return cl->rdl.status; in cmdline_poll()
217 cmdline_interact(struct cmdline *cl) in cmdline_interact() argument
221 if (!cl) in cmdline_interact()
226 if (cmdline_read_char(cl, &c) <= 0) in cmdline_interact()
228 if (cmdline_in(cl, &c, 1) < 0) in cmdline_interact()