Lines Matching refs:el

1 /*	$NetBSD: el.c,v 1.83 2016/02/24 17:13:22 christos Exp $	*/
38 static char sccsid[] = "@(#)el.c 8.2 (Berkeley) 1/3/94";
40 __RCSID("$NetBSD: el.c,v 1.83 2016/02/24 17:13:22 christos Exp $");
44 __FBSDID("$FreeBSD: stable/11/lib/libedit/el.c 343091 2019-01-16 12:04:29Z bapt $");
47 * el.c: EditLine interface functions
60 #include "el.h"
77 EditLine *el = el_malloc(sizeof(*el));
79 if (el == NULL)
82 memset(el, 0, sizeof(EditLine));
84 el->el_infile = fin;
85 el->el_outfile = fout;
86 el->el_errfile = ferr;
88 el->el_infd = fdin;
89 el->el_outfd = fdout;
90 el->el_errfd = fderr;
92 el->el_prog = Strdup(ct_decode_string(prog, &el->el_scratch));
93 if (el->el_prog == NULL) {
94 el_free(el);
101 el->el_flags = 0;
103 if (terminal_init(el) == -1) {
104 el_free(el->el_prog);
105 el_free(el);
108 (void) keymacro_init(el);
109 (void) map_init(el);
110 if (tty_init(el) == -1)
111 el->el_flags |= NO_TTY;
112 (void) ch_init(el);
113 (void) search_init(el);
114 (void) hist_init(el);
115 (void) prompt_init(el);
116 (void) sig_init(el);
117 (void) read_init(el);
119 return el;
127 el_end(EditLine *el)
130 if (el == NULL)
133 el_reset(el);
135 terminal_end(el);
136 keymacro_end(el);
137 map_end(el);
138 if (!(el->el_flags & NO_TTY))
139 tty_end(el);
140 ch_end(el);
141 search_end(el);
142 hist_end(el);
143 prompt_end(el);
144 sig_end(el);
146 el_free(el->el_prog);
148 el_free(el->el_scratch.cbuff);
149 el_free(el->el_scratch.wbuff);
150 el_free(el->el_lgcyconv.cbuff);
151 el_free(el->el_lgcyconv.wbuff);
153 el_free(el);
161 el_reset(EditLine *el)
164 tty_cookedmode(el);
165 ch_reset(el, 0); /* XXX: Do we want that? */
173 FUN(el,set)(EditLine *el, int op, ...)
178 if (el == NULL)
187 rv = prompt_set(el, p, 0, op, 1);
194 rv = ch_resizefun(el, p, arg);
201 rv = ch_aliasfun(el, p, arg);
210 rv = prompt_set(el, p, (Char)c, op, 1);
215 rv = terminal_set(el, va_arg(ap, char *));
219 rv = map_set_editor(el, va_arg(ap, Char *));
224 el->el_flags |= HANDLE_SIGNALS;
226 el->el_flags &= ~HANDLE_SIGNALS;
245 rv = map_bind(el, i, argv);
250 rv = terminal_telltc(el, i, argv);
255 rv = terminal_settc(el, i, argv);
260 rv = terminal_echotc(el, i, argv);
265 rv = tty_stty(el, i, argv);
270 EL_ABORT((el->el_errfile, "Bad op %d\n", op));
282 rv = map_addfunc(el, name, help, func);
291 rv = hist_set(el, func, ptr);
293 el->el_flags &= ~NARROW_HISTORY;
299 el->el_flags &= ~EDIT_DISABLED;
301 el->el_flags |= EDIT_DISABLED;
308 rv = el_read_setfn(el, rc);
313 el->el_data = va_arg(ap, void *);
318 if (rv && !(el->el_flags & UNBUFFERED)) {
319 el->el_flags |= UNBUFFERED;
320 read_prepare(el);
321 } else if (!rv && (el->el_flags & UNBUFFERED)) {
322 el->el_flags &= ~UNBUFFERED;
323 read_finish(el);
331 (void) tty_rawmode(el);
333 (void) tty_cookedmode(el);
348 el->el_infile = fp;
349 el->el_infd = fileno(fp);
352 el->el_outfile = fp;
353 el->el_outfd = fileno(fp);
356 el->el_errfile = fp;
357 el->el_errfd = fileno(fp);
367 re_clear_display(el);
368 re_refresh(el);
369 terminal__flush(el);
386 FUN(el,get)(EditLine *el, int op, ...)
391 if (el == NULL)
400 rv = prompt_get(el, p, 0, op);
408 rv = prompt_get(el, p, c, op);
413 rv = map_get_editor(el, va_arg(ap, const Char **));
417 *va_arg(ap, int *) = (el->el_flags & HANDLE_SIGNALS);
422 *va_arg(ap, int *) = !(el->el_flags & EDIT_DISABLED);
427 terminal_get(el, va_arg(ap, const char **));
442 rv = terminal_gettc(el, i, argv);
447 *va_arg(ap, el_rfunc_t *) = el_read_getfn(el);
452 *va_arg(ap, void **) = el->el_data;
457 *va_arg(ap, int *) = (el->el_flags & UNBUFFERED) != 0;
471 *fpp = el->el_infile;
474 *fpp = el->el_outfile;
477 *fpp = el->el_errfile;
499 FUN(el,line)(EditLine *el)
502 return (const TYPE(LineInfo) *)(void *)&el->el_line;
510 el_source(EditLine *el, const char *fname)
559 dptr = ct_decode_string(ptr, &el->el_scratch);
567 if ((error = parse_line(el, dptr)) == -1)
582 el_resize(EditLine *el)
592 if (terminal_get_size(el, &lins, &cols))
593 terminal_change_size(el, lins, cols);
603 el_beep(EditLine *el)
606 terminal_beep(el);
615 el_editmode(EditLine *el, int argc, const Char **argv)
624 el->el_flags &= ~EDIT_DISABLED;
625 tty_rawmode(el);
627 tty_cookedmode(el);
628 el->el_flags |= EDIT_DISABLED;
631 (void) fprintf(el->el_errfile, "edit: Bad value `" FSTR "'.\n",