Lines Matching refs:cl
22 struct cmdline *cl = rdl->opaque; in cmdline_valid_buffer() local
24 ret = cmdline_parse(cl, buf); in cmdline_valid_buffer()
26 cmdline_printf(cl, "Ambiguous command\n"); in cmdline_valid_buffer()
28 cmdline_printf(cl, "Command not found\n"); in cmdline_valid_buffer()
30 cmdline_printf(cl, "Bad arguments\n"); in cmdline_valid_buffer()
38 struct cmdline *cl = rdl->opaque; in cmdline_complete_buffer() local
39 return cmdline_complete(cl, buf, state, dstbuf, dstsize); in cmdline_complete_buffer()
46 struct cmdline *cl; in cmdline_write_char() local
51 cl = rdl->opaque; in cmdline_write_char()
53 if (cl->s_out >= 0) in cmdline_write_char()
54 ret = write(cl->s_out, &c, 1); in cmdline_write_char()
61 cmdline_set_prompt(struct cmdline *cl, const char *prompt) in cmdline_set_prompt() argument
63 if (!cl || !prompt) in cmdline_set_prompt()
65 strlcpy(cl->prompt, prompt, sizeof(cl->prompt)); in cmdline_set_prompt()
71 struct cmdline *cl; in cmdline_new() local
77 cl = malloc(sizeof(struct cmdline)); in cmdline_new()
78 if (cl == NULL) in cmdline_new()
80 memset(cl, 0, sizeof(struct cmdline)); in cmdline_new()
81 cl->s_in = s_in; in cmdline_new()
82 cl->s_out = s_out; in cmdline_new()
83 cl->ctx = ctx; in cmdline_new()
85 ret = rdline_init(&cl->rdl, cmdline_write_char, cmdline_valid_buffer, in cmdline_new()
86 cmdline_complete_buffer, cl); in cmdline_new()
88 free(cl); in cmdline_new()
92 cmdline_set_prompt(cl, prompt); in cmdline_new()
93 rdline_newline(&cl->rdl, cl->prompt); in cmdline_new()
95 return cl; in cmdline_new()
99 cmdline_get_rdline(struct cmdline *cl) in cmdline_get_rdline() argument
101 return &cl->rdl; in cmdline_get_rdline()
105 cmdline_free(struct cmdline *cl) in cmdline_free() argument
109 if (!cl) in cmdline_free()
112 if (cl->s_in > 2) in cmdline_free()
113 close(cl->s_in); in cmdline_free()
114 if (cl->s_out != cl->s_in && cl->s_out > 2) in cmdline_free()
115 close(cl->s_out); in cmdline_free()
116 free(cl); in cmdline_free()
120 cmdline_printf(const struct cmdline *cl, const char *fmt, ...) in cmdline_printf() argument
124 if (!cl || !fmt) in cmdline_printf()
127 if (cl->s_out < 0) in cmdline_printf()
130 cmdline_vdprintf(cl->s_out, fmt, ap); in cmdline_printf()
135 cmdline_in(struct cmdline *cl, const char *buf, int size) in cmdline_in() argument
142 if (!cl || !buf) in cmdline_in()
146 ret = rdline_char_in(&cl->rdl, buf[i]); in cmdline_in()
149 buffer = rdline_get_buffer(&cl->rdl); in cmdline_in()
150 history = rdline_get_history_item(&cl->rdl, 0); in cmdline_in()
160 rdline_add_history(&cl->rdl, buffer); in cmdline_in()
161 rdline_newline(&cl->rdl, cl->prompt); in cmdline_in()
172 cmdline_quit(struct cmdline *cl) in cmdline_quit() argument
174 if (!cl) in cmdline_quit()
176 rdline_quit(&cl->rdl); in cmdline_quit()
180 cmdline_poll(struct cmdline *cl) in cmdline_poll() argument
186 if (!cl) in cmdline_poll()
188 else if (cl->rdl.status == RDLINE_EXITED) in cmdline_poll()
191 status = cmdline_poll_char(cl); in cmdline_poll()
196 read_status = cmdline_read_char(cl, &c); in cmdline_poll()
200 status = cmdline_in(cl, &c, 1); in cmdline_poll()
201 if (status < 0 && cl->rdl.status != RDLINE_EXITED) in cmdline_poll()
205 return cl->rdl.status; in cmdline_poll()
209 cmdline_interact(struct cmdline *cl) in cmdline_interact() argument
213 if (!cl) in cmdline_interact()
218 if (cmdline_read_char(cl, &c) <= 0) in cmdline_interact()
220 if (cmdline_in(cl, &c, 1) < 0) in cmdline_interact()