Lines Matching defs:el

1 /*	$NetBSD: el.c,v 1.102 2025/01/03 00:40:08 rillig Exp $	*/
38 static char sccsid[] = "@(#)el.c 8.2 (Berkeley) 1/3/94";
40 __RCSID("$NetBSD: el.c,v 1.102 2025/01/03 00:40:08 rillig Exp $");
45 * el.c: EditLine interface functions
56 #include "el.h"
74 EditLine *el = el_calloc(1, sizeof(*el));
76 if (el == NULL)
79 el->el_infile = fin;
80 el->el_outfile = fout;
81 el->el_errfile = ferr;
83 el->el_infd = fdin;
84 el->el_outfd = fdout;
85 el->el_errfd = fderr;
87 el->el_prog = wcsdup(ct_decode_string(prog, &el->el_scratch));
88 if (el->el_prog == NULL) {
89 el_free(el);
96 el->el_flags = flags;
98 if (terminal_init(el) == -1) {
99 el_free(el->el_prog);
100 el_free(el);
103 (void) keymacro_init(el);
104 (void) map_init(el);
105 if (tty_init(el) == -1)
106 el->el_flags |= NO_TTY;
107 (void) ch_init(el);
108 (void) search_init(el);
109 (void) hist_init(el);
110 (void) prompt_init(el);
111 (void) sig_init(el);
112 (void) literal_init(el);
113 if (read_init(el) == -1) {
114 el_end(el);
117 return el;
131 el_end(EditLine *el)
134 if (el == NULL)
137 el_reset(el);
139 terminal_end(el);
140 keymacro_end(el);
141 map_end(el);
142 if (!(el->el_flags & NO_TTY))
143 tty_end(el, TCSAFLUSH);
144 ch_end(el);
145 read_end(el);
146 search_end(el);
147 hist_end(el);
148 prompt_end(el);
149 sig_end(el);
150 literal_end(el);
152 el_free(el->el_prog);
153 el_free(el->el_visual.cbuff);
154 el_free(el->el_visual.wbuff);
155 el_free(el->el_scratch.cbuff);
156 el_free(el->el_scratch.wbuff);
157 el_free(el->el_lgcyconv.cbuff);
158 el_free(el->el_lgcyconv.wbuff);
159 el_free(el);
167 el_reset(EditLine *el)
170 tty_cookedmode(el);
171 ch_reset(el); /* XXX: Do we want that? */
179 el_wset(EditLine *el, int op, ...)
184 if (el == NULL)
193 rv = prompt_set(el, p, 0, op, 1);
200 rv = ch_resizefun(el, p, arg);
207 rv = ch_aliasfun(el, p, arg);
216 rv = prompt_set(el, p, (wchar_t)c, op, 1);
221 rv = terminal_set(el, va_arg(ap, char *));
225 rv = map_set_editor(el, va_arg(ap, wchar_t *));
230 el->el_flags |= HANDLE_SIGNALS;
232 el->el_flags &= ~HANDLE_SIGNALS;
251 rv = map_bind(el, i, argv);
256 rv = terminal_telltc(el, i, argv);
261 rv = terminal_settc(el, i, argv);
266 rv = terminal_echotc(el, i, argv);
271 rv = tty_stty(el, i, argv);
276 EL_ABORT((el->el_errfile, "Bad op %d\n", op));
287 rv = map_addfunc(el, name, help, func);
296 rv = hist_set(el, func, ptr);
298 el->el_flags &= ~NARROW_HISTORY;
304 el->el_flags |= FIXIO;
306 el->el_flags &= ~FIXIO;
312 el->el_flags &= ~EDIT_DISABLED;
314 el->el_flags |= EDIT_DISABLED;
321 rv = el_read_setfn(el->el_read, rc);
326 el->el_data = va_arg(ap, void *);
331 if (rv && !(el->el_flags & UNBUFFERED)) {
332 el->el_flags |= UNBUFFERED;
333 read_prepare(el);
334 } else if (!rv && (el->el_flags & UNBUFFERED)) {
335 el->el_flags &= ~UNBUFFERED;
336 read_finish(el);
344 (void) tty_rawmode(el);
346 (void) tty_cookedmode(el);
361 el->el_infile = fp;
362 el->el_infd = fileno(fp);
365 el->el_outfile = fp;
366 el->el_outfd = fileno(fp);
369 el->el_errfile = fp;
370 el->el_errfd = fileno(fp);
380 re_clear_display(el);
381 re_refresh(el);
382 terminal__flush(el);
399 el_wget(EditLine *el, int op, ...)
404 if (el == NULL)
413 rv = prompt_get(el, p, 0, op);
421 rv = prompt_get(el, p, c, op);
426 rv = map_get_editor(el, va_arg(ap, const wchar_t **));
430 *va_arg(ap, int *) = (el->el_flags & HANDLE_SIGNALS);
435 *va_arg(ap, int *) = !(el->el_flags & EDIT_DISABLED);
440 *va_arg(ap, int *) = (el->el_flags & FIXIO);
445 terminal_get(el, va_arg(ap, const char **));
456 rv = terminal_gettc(el, 3, argv);
461 *va_arg(ap, el_rfunc_t *) = el_read_getfn(el->el_read);
466 *va_arg(ap, void **) = el->el_data;
471 *va_arg(ap, int *) = (el->el_flags & UNBUFFERED) != 0;
485 *fpp = el->el_infile;
488 *fpp = el->el_outfile;
491 *fpp = el->el_errfile;
513 el_wline(EditLine *el)
516 return (const LineInfoW *)(void *)&el->el_line;
524 el_source(EditLine *el, const char *fname)
580 dptr = ct_decode_string(ptr, &el->el_scratch);
588 if ((error = parse_line(el, dptr)) == -1)
603 el_resize(EditLine *el)
613 if (terminal_get_size(el, &lins, &cols))
614 terminal_change_size(el, lins, cols);
624 el_beep(EditLine *el)
627 terminal_beep(el);
636 el_editmode(EditLine *el, int argc, const wchar_t **argv)
645 el->el_flags &= ~EDIT_DISABLED;
646 tty_rawmode(el);
648 tty_cookedmode(el);
649 el->el_flags |= EDIT_DISABLED;
652 (void) fprintf(el->el_errfile, "edit: Bad value `%ls'.\n",