Lines Matching refs:el

1 /*	$NetBSD: el.c,v 1.72 2013/01/22 20:23:21 christos Exp $	*/
38 static char sccsid[] = "@(#)el.c 8.2 (Berkeley) 1/3/94";
40 __RCSID("$NetBSD: el.c,v 1.72 2013/01/22 20:23:21 christos Exp $");
49 * el.c: EditLine interface functions
59 #include "el.h"
98 EditLine *el = el_malloc(sizeof(*el));
100 if (el == NULL)
103 memset(el, 0, sizeof(EditLine));
105 el->el_infile = fin;
106 el->el_outfile = fout;
107 el->el_errfile = ferr;
109 el->el_infd = fdin;
110 el->el_outfd = fdout;
111 el->el_errfd = fderr;
113 el->el_prog = Strdup(ct_decode_string(prog, &el->el_scratch));
114 if (el->el_prog == NULL) {
115 el_free(el);
122 el->el_flags = 0;
126 el->el_flags |= CHARSET_IS_UTF8;
130 if (terminal_init(el) == -1) {
131 el_free(el->el_prog);
132 el_free(el);
135 (void) keymacro_init(el);
136 (void) map_init(el);
137 if (tty_init(el) == -1)
138 el->el_flags |= NO_TTY;
139 (void) ch_init(el);
140 (void) search_init(el);
141 (void) hist_init(el);
142 (void) prompt_init(el);
143 (void) sig_init(el);
144 (void) read_init(el);
146 return el;
154 el_end(EditLine *el)
157 if (el == NULL)
160 el_reset(el);
162 terminal_end(el);
163 keymacro_end(el);
164 map_end(el);
165 tty_end(el);
166 ch_end(el);
167 search_end(el);
168 hist_end(el);
169 prompt_end(el);
170 sig_end(el);
172 el_free(el->el_prog);
174 el_free(el->el_scratch.cbuff);
175 el_free(el->el_scratch.wbuff);
176 el_free(el->el_lgcyconv.cbuff);
177 el_free(el->el_lgcyconv.wbuff);
179 el_free(el);
187 el_reset(EditLine *el)
190 tty_cookedmode(el);
191 ch_reset(el, 0); /* XXX: Do we want that? */
199 FUN(el,set)(EditLine *el, int op, ...)
204 if (el == NULL)
213 rv = prompt_set(el, p, 0, op, 1);
220 rv = ch_resizefun(el, p, arg);
229 rv = prompt_set(el, p, c, op, 1);
234 rv = terminal_set(el, va_arg(ap, char *));
238 rv = map_set_editor(el, va_arg(ap, Char *));
243 el->el_flags |= HANDLE_SIGNALS;
245 el->el_flags &= ~HANDLE_SIGNALS;
264 rv = map_bind(el, i, argv);
269 rv = terminal_telltc(el, i, argv);
274 rv = terminal_settc(el, i, argv);
279 rv = terminal_echotc(el, i, argv);
284 rv = tty_stty(el, i, argv);
289 EL_ABORT((el->el_errfile, "Bad op %d\n", op));
301 rv = map_addfunc(el, name, help, func);
310 rv = hist_set(el, func, ptr);
311 if (!(el->el_flags & CHARSET_IS_UTF8))
312 el->el_flags &= ~NARROW_HISTORY;
318 el->el_flags &= ~EDIT_DISABLED;
320 el->el_flags |= EDIT_DISABLED;
327 rv = el_read_setfn(el, rc);
328 el->el_flags &= ~NARROW_READ;
333 el->el_data = va_arg(ap, void *);
338 if (rv && !(el->el_flags & UNBUFFERED)) {
339 el->el_flags |= UNBUFFERED;
340 read_prepare(el);
341 } else if (!rv && (el->el_flags & UNBUFFERED)) {
342 el->el_flags &= ~UNBUFFERED;
343 read_finish(el);
351 (void) tty_rawmode(el);
353 (void) tty_cookedmode(el);
368 el->el_infile = fp;
369 el->el_infd = fileno(fp);
372 el->el_outfile = fp;
373 el->el_outfd = fileno(fp);
376 el->el_errfile = fp;
377 el->el_errfd = fileno(fp);
387 re_clear_display(el);
388 re_refresh(el);
389 terminal__flush(el);
406 FUN(el,get)(EditLine *el, int op, ...)
411 if (el == NULL)
420 rv = prompt_get(el, p, 0, op);
428 rv = prompt_get(el, p, c, op);
433 rv = map_get_editor(el, va_arg(ap, const Char **));
437 *va_arg(ap, int *) = (el->el_flags & HANDLE_SIGNALS);
442 *va_arg(ap, int *) = !(el->el_flags & EDIT_DISABLED);
447 terminal_get(el, va_arg(ap, const char **));
462 rv = terminal_gettc(el, i, argv);
467 *va_arg(ap, el_rfunc_t *) = el_read_getfn(el);
472 *va_arg(ap, void **) = el->el_data;
477 *va_arg(ap, int *) = (el->el_flags & UNBUFFERED) != 0;
491 *fpp = el->el_infile;
494 *fpp = el->el_outfile;
497 *fpp = el->el_errfile;
519 FUN(el,line)(EditLine *el)
522 return (const TYPE(LineInfo) *)(void *)&el->el_line;
530 el_source(EditLine *el, const char *fname)
562 dptr = ct_decode_string(ptr, &el->el_scratch);
573 if ((error = parse_line(el, dptr)) == -1)
587 el_resize(EditLine *el)
597 if (terminal_get_size(el, &lins, &cols))
598 terminal_change_size(el, lins, cols);
608 el_beep(EditLine *el)
611 terminal_beep(el);
620 el_editmode(EditLine *el, int argc, const Char **argv)
629 el->el_flags &= ~EDIT_DISABLED;
630 tty_rawmode(el);
632 tty_cookedmode(el);
633 el->el_flags |= EDIT_DISABLED;
636 (void) fprintf(el->el_errfile, "edit: Bad value `" FSTR "'.\n",