map_init_meta(): * Bind all the meta keys to the appropriate ESC- sequence */
| 974 | * Bind all the meta keys to the appropriate ESC-<key> sequence |
| 975 | */ |
| 976 | private void |
| 977 | map_init_meta(EditLine *el) |
| 978 | { |
| 979 | Char buf[3]; |
| 980 | int i; |
| 981 | el_action_t *map = el->el_map.key; |
| 982 | el_action_t *alt = el->el_map.alt; |
| 983 | |
| 984 | for (i = 0; i <= 0377 && map[i] != EM_META_NEXT; i++) |
| 985 | continue; |
| 986 | |
| 987 | if (i > 0377) { |
| 988 | for (i = 0; i <= 0377 && alt[i] != EM_META_NEXT; i++) |
| 989 | continue; |
| 990 | if (i > 0377) { |
| 991 | i = 033; |
| 992 | if (el->el_map.type == MAP_VI) |
| 993 | map = alt; |
| 994 | } else |
| 995 | map = alt; |
| 996 | } |
| 997 | buf[0] = (Char) i; |
| 998 | buf[2] = 0; |
| 999 | for (i = 0200; i <= 0377; i++) |
| 1000 | switch (map[i]) { |
| 1001 | case ED_INSERT: |
| 1002 | case ED_UNASSIGNED: |
| 1003 | case ED_SEQUENCE_LEAD_IN: |
| 1004 | break; |
| 1005 | default: |
| 1006 | buf[1] = i & 0177; |
| 1007 | keymacro_add(el, buf, keymacro_map_cmd(el, (int) map[i]), XK_CMD); |
| 1008 | break; |
| 1009 | } |
| 1010 | map[(int) buf[0]] = ED_SEQUENCE_LEAD_IN; |
| 1011 | } |
| 1012 | |
| 1013 | |
| 1014 | /* map_init_vi(): |
no test coverage detected