Lines Matching refs:el
106 keymacro_init(EditLine *el) in keymacro_init() argument
109 el->el_keymacro.buf = el_malloc(KEY_BUFSIZ * in keymacro_init()
110 sizeof(*el->el_keymacro.buf)); in keymacro_init()
111 if (el->el_keymacro.buf == NULL) in keymacro_init()
113 el->el_keymacro.map = NULL; in keymacro_init()
114 keymacro_reset(el); in keymacro_init()
122 keymacro_end(EditLine *el) in keymacro_end() argument
125 el_free(el->el_keymacro.buf); in keymacro_end()
126 el->el_keymacro.buf = NULL; in keymacro_end()
127 node__free(el->el_keymacro.map); in keymacro_end()
135 keymacro_map_cmd(EditLine *el, int cmd) in keymacro_map_cmd() argument
138 el->el_keymacro.val.cmd = (el_action_t) cmd; in keymacro_map_cmd()
139 return &el->el_keymacro.val; in keymacro_map_cmd()
147 keymacro_map_str(EditLine *el, Char *str) in keymacro_map_str() argument
150 el->el_keymacro.val.str = str; in keymacro_map_str()
151 return &el->el_keymacro.val; in keymacro_map_str()
161 keymacro_reset(EditLine *el) in keymacro_reset() argument
164 node__put(el, el->el_keymacro.map); in keymacro_reset()
165 el->el_keymacro.map = NULL; in keymacro_reset()
179 keymacro_get(EditLine *el, Char *ch, keymacro_value_t *val) in keymacro_get() argument
182 return node_trav(el, el->el_keymacro.map, ch, val); in keymacro_get()
193 keymacro_add(EditLine *el, const Char *key, keymacro_value_t *val, int ntype) in keymacro_add() argument
197 (void) fprintf(el->el_errfile, in keymacro_add()
202 (void) fprintf(el->el_errfile, in keymacro_add()
206 if (el->el_keymacro.map == NULL) in keymacro_add()
208 el->el_keymacro.map = node__get(key[0]); in keymacro_add()
212 (void) node__try(el, el->el_keymacro.map, key, val, ntype); in keymacro_add()
221 keymacro_clear(EditLine *el, el_action_t *map, const Char *in) in keymacro_clear() argument
228 ((map == el->el_map.key && in keymacro_clear()
229 el->el_map.alt[(unsigned char)*in] != ED_SEQUENCE_LEAD_IN) || in keymacro_clear()
230 (map == el->el_map.alt && in keymacro_clear()
231 el->el_map.key[(unsigned char)*in] != ED_SEQUENCE_LEAD_IN))) in keymacro_clear()
232 (void) keymacro_delete(el, in); in keymacro_clear()
241 keymacro_delete(EditLine *el, const Char *key) in keymacro_delete() argument
245 (void) fprintf(el->el_errfile, in keymacro_delete()
249 if (el->el_keymacro.map == NULL) in keymacro_delete()
252 (void) node__delete(el, &el->el_keymacro.map, key); in keymacro_delete()
262 keymacro_print(EditLine *el, const Char *key) in keymacro_print() argument
266 if (el->el_keymacro.map == NULL && *key == 0) in keymacro_print()
269 el->el_keymacro.buf[0] = '"'; in keymacro_print()
270 if (node_lookup(el, key, el->el_keymacro.map, (size_t)1) <= -1) in keymacro_print()
272 (void) fprintf(el->el_errfile, "Unbound extended key \"" FSTR in keymacro_print()
283 node_trav(EditLine *el, keymacro_node_t *ptr, Char *ch, keymacro_value_t *val) in node_trav() argument
290 if (FUN(el,getc)(el, ch) != 1) {/* if EOF or error */ in node_trav() local
295 return node_trav(el, ptr->next, ch, val); in node_trav()
306 return node_trav(el, ptr->sibling, ch, val); in node_trav()
320 node__try(EditLine *el, keymacro_node_t *ptr, const Char *str, in node__try() argument
337 node__put(el, ptr->next); in node__try()
351 EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", in node__try()
366 EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ntype)); in node__try()
373 (void) node__try(el, ptr->next, str, val, ntype); in node__try()
383 node__delete(EditLine *el, keymacro_node_t **inptr, const Char *str) in node__delete() argument
408 node__put(el, ptr); in node__delete()
411 node__delete(el, &ptr->next, str) == 1) { in node__delete()
419 node__put(el, ptr); in node__delete()
431 node__put(EditLine *el, keymacro_node_t *ptr) in node__put() argument
437 node__put(el, ptr->next); in node__put()
440 node__put(el, ptr->sibling); in node__put()
452 EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ptr->type)); in node__put()
493 node_lookup(EditLine *el, const Char *str, keymacro_node_t *ptr, size_t cnt) in node_lookup() argument
502 (void) node_enum(el, ptr, cnt); in node_lookup()
508 used = ct_visual_char(el->el_keymacro.buf + cnt, in node_lookup()
514 return (node_lookup(el, str + 1, ptr->next, in node_lookup()
520 el->el_keymacro.buf[px] = '"'; in node_lookup()
521 el->el_keymacro.buf[px + 1] = '\0'; in node_lookup()
522 keymacro_kprint(el, el->el_keymacro.buf, in node_lookup()
532 return (node_lookup(el, str, ptr->sibling, in node_lookup()
545 node_enum(EditLine *el, keymacro_node_t *ptr, size_t cnt) in node_enum() argument
550 el->el_keymacro.buf[++cnt] = '"'; in node_enum()
551 el->el_keymacro.buf[++cnt] = '\0'; in node_enum()
552 (void) fprintf(el->el_errfile, in node_enum()
554 (void) fprintf(el->el_errfile, " \"" FSTR "...\"\n", in node_enum()
555 el->el_keymacro.buf); in node_enum()
560 (void) fprintf(el->el_errfile, in node_enum()
566 used = ct_visual_char(el->el_keymacro.buf + cnt, KEY_BUFSIZ - cnt, in node_enum()
570 el->el_keymacro.buf[cnt + (size_t)used ] = '"'; in node_enum()
571 el->el_keymacro.buf[cnt + (size_t)used + 1] = '\0'; in node_enum()
572 keymacro_kprint(el, el->el_keymacro.buf, &ptr->val, ptr->type); in node_enum()
574 (void) node_enum(el, ptr->next, cnt + (size_t)used); in node_enum()
578 (void) node_enum(el, ptr->sibling, cnt); in node_enum()
588 keymacro_kprint(EditLine *el, const Char *key, keymacro_value_t *val, int ntype) in keymacro_kprint() argument
601 (void) fprintf(el->el_outfile, fmt, in keymacro_kprint()
602 ct_encode_string(key, &el->el_scratch), unparsbuf); in keymacro_kprint()
605 for (fp = el->el_map.help; fp->name; fp++) in keymacro_kprint()
609 (void) fprintf(el->el_outfile, fmt, in keymacro_kprint()
610 ct_encode_string(key, &el->el_scratch), unparsbuf); in keymacro_kprint()
615 (void) fprintf(el->el_outfile, in keymacro_kprint()
621 EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ntype)); in keymacro_kprint()
625 (void) fprintf(el->el_outfile, fmt, ct_encode_string(key, in keymacro_kprint()
626 &el->el_scratch), "no input"); in keymacro_kprint()