Home | History | Annotate | Download | only in libedit

Lines Matching refs:el

54 #include "el.h"
474 tty_getty(EditLine *el, struct termios *t)
477 while ((rv = tcgetattr(el->el_infd, t)) == -1 && errno == EINTR)
486 tty_setty(EditLine *el, int action, const struct termios *t)
489 while ((rv = tcsetattr(el->el_infd, action, t)) == -1 && errno == EINTR)
498 tty_setup(EditLine *el)
500 int rst = (el->el_flags & NO_RESET) == 0;
502 if (el->el_flags & EDIT_DISABLED)
505 if (el->el_tty.t_initialized)
508 if (!isatty(el->el_outfd)) {
510 (void) fprintf(el->el_errfile, "%s: isatty: %s\n", __func__,
515 if (tty_getty(el, &el->el_tty.t_or) == -1) {
517 (void) fprintf(el->el_errfile, "%s: tty_getty: %s\n", __func__,
522 el->el_tty.t_ts = el->el_tty.t_ex = el->el_tty.t_ed = el->el_tty.t_or;
524 el->el_tty.t_speed = tty__getspeed(&el->el_tty.t_ex);
525 el->el_tty.t_tabs = tty__gettabs(&el->el_tty.t_ex);
526 el->el_tty.t_eight = tty__geteightbit(&el->el_tty.t_ex);
528 tty_setup_flags(el, &el->el_tty.t_ex, EX_IO);
535 if (tty__cooked_mode(&el->el_tty.t_ts)) {
536 tty__getchar(&el->el_tty.t_ts, el->el_tty.t_c[TS_IO]);
541 if (el->el_tty.t_c[TS_IO][rst] !=
542 el->el_tty.t_vdisable
543 && el->el_tty.t_c[ED_IO][rst] !=
544 el->el_tty.t_vdisable)
545 el->el_tty.t_c[ED_IO][rst] =
546 el->el_tty.t_c[TS_IO][rst];
548 if (el->el_tty.t_c[TS_IO][rst] !=
549 el->el_tty.t_vdisable)
550 el->el_tty.t_c[EX_IO][rst] =
551 el->el_tty.t_c[TS_IO][rst];
553 tty__setchar(&el->el_tty.t_ex, el->el_tty.t_c[EX_IO]);
554 if (tty_setty(el, TCSADRAIN, &el->el_tty.t_ex) == -1) {
556 (void) fprintf(el->el_errfile, "%s: tty_setty: %s\n",
563 tty_setup_flags(el, &el->el_tty.t_ed, ED_IO);
565 tty__setchar(&el->el_tty.t_ed, el->el_tty.t_c[ED_IO]);
566 tty_bind_char(el, 1);
567 el->el_tty.t_initialized = 1;
572 tty_init(EditLine *el)
575 el->el_tty.t_mode = EX_IO;
576 el->el_tty.t_vdisable = _POSIX_VDISABLE;
577 el->el_tty.t_initialized = 0;
578 (void) memcpy(el->el_tty.t_t, ttyperm, sizeof(ttyperm_t));
579 (void) memcpy(el->el_tty.t_c, ttychar, sizeof(ttychar_t));
580 return tty_setup(el);
589 tty_end(EditLine *el, int how)
591 if (el->el_flags & EDIT_DISABLED)
594 if (!el->el_tty.t_initialized)
597 if (tty_setty(el, how, &el->el_tty.t_or) == -1)
600 (void) fprintf(el->el_errfile,
896 tty_bind_char(EditLine *el, int force)
899 unsigned char *t_n = el->el_tty.t_c[ED_IO];
900 unsigned char *t_o = el->el_tty.t_ed.c_cc;
907 map = el->el_map.key;
908 alt = el->el_map.alt;
909 if (el->el_map.type == MAP_VI) {
910 dmap = el->el_map.vii;
911 dalt = el->el_map.vic;
913 dmap = el->el_map.emacs;
923 keymacro_clear(el, map, old);
925 keymacro_clear(el, map, new);
927 map[(unsigned char)new[0]] = tp->bind[el->el_map.type];
929 keymacro_clear(el, alt, old);
932 keymacro_clear(el, alt, new);
934 tp->bind[el->el_map.type + 1];
959 tty_update_flag(EditLine *el, tcflag_t f, int mode, int kind)
961 f &= ~el->el_tty.t_t[mode][kind].t_clrmask;
962 f |= el->el_tty.t_t[mode][kind].t_setmask;
968 tty_update_flags(EditLine *el, int kind)
971 tt = tty__get_flag(&el->el_tty.t_ts, kind);
972 ed = tty__get_flag(&el->el_tty.t_ed, kind);
973 ex = tty__get_flag(&el->el_tty.t_ex, kind);
976 *ed = tty_update_flag(el, *tt, ED_IO, kind);
977 *ex = tty_update_flag(el, *tt, EX_IO, kind);
983 tty_update_char(EditLine *el, int mode, int c) {
984 if (!((el->el_tty.t_t[mode][MD_CHAR].t_setmask & C_SH(c)))
985 && (el->el_tty.t_c[TS_IO][c] != el->el_tty.t_c[EX_IO][c]))
986 el->el_tty.t_c[mode][c] = el->el_tty.t_c[TS_IO][c];
987 if (el->el_tty.t_t[mode][MD_CHAR].t_clrmask & C_SH(c))
988 el->el_tty.t_c[mode][c] = el->el_tty.t_vdisable;
996 tty_rawmode(EditLine *el)
999 if (el->el_tty.t_mode == ED_IO || el->el_tty.t_mode == QU_IO)
1002 if (el->el_flags & EDIT_DISABLED)
1005 if (tty_getty(el, &el->el_tty.t_ts) == -1) {
1007 (void) fprintf(el->el_errfile, "%s: tty_getty: %s\n", __func__,
1016 el->el_tty.t_eight = tty__geteightbit(&el->el_tty.t_ts);
1017 el->el_tty.t_speed = tty__getspeed(&el->el_tty.t_ts);
1019 if (tty__getspeed(&el->el_tty.t_ex) != el->el_tty.t_speed ||
1020 tty__getspeed(&el->el_tty.t_ed) != el->el_tty.t_speed) {
1021 (void) cfsetispeed(&el->el_tty.t_ex, el->el_tty.t_speed);
1022 (void) cfsetospeed(&el->el_tty.t_ex, el->el_tty.t_speed);
1023 (void) cfsetispeed(&el->el_tty.t_ed, el->el_tty.t_speed);
1024 (void) cfsetospeed(&el->el_tty.t_ed, el->el_tty.t_speed);
1026 if (tty__cooked_mode(&el->el_tty.t_ts)) {
1030 tty_update_flags(el, i);
1032 if (tty__gettabs(&el->el_tty.t_ex) == 0)
1033 el->el_tty.t_tabs = 0;
1035 el->el_tty.t_tabs = EL_CAN_TAB ? 1 : 0;
1037 tty__getchar(&el->el_tty.t_ts, el->el_tty.t_c[TS_IO]);
1044 if (el->el_tty.t_c[TS_IO][i] !=
1045 el->el_tty.t_c[EX_IO][i])
1054 tty_update_char(el, ED_IO, i);
1056 tty_bind_char(el, 0);
1057 tty__setchar(&el->el_tty.t_ed, el->el_tty.t_c[ED_IO]);
1060 tty_update_char(el, EX_IO, i);
1062 tty__setchar(&el->el_tty.t_ex, el->el_tty.t_c[EX_IO]);
1065 if (tty_setty(el, TCSADRAIN, &el->el_tty.t_ed) == -1) {
1067 (void) fprintf(el->el_errfile, "%s: tty_setty: %s\n", __func__,
1072 el->el_tty.t_mode = ED_IO;
1081 tty_cookedmode(EditLine *el)
1084 if (el->el_tty.t_mode == EX_IO)
1087 if (el->el_flags & EDIT_DISABLED)
1090 if (tty_setty(el, TCSADRAIN, &el->el_tty.t_ex) == -1) {
1092 (void) fprintf(el->el_errfile, "%s: tty_setty: %s\n", __func__,
1097 el->el_tty.t_mode = EX_IO;
1106 tty_quotemode(EditLine *el)
1108 if (el->el_tty.t_mode == QU_IO)
1111 el->el_tty.t_qu = el->el_tty.t_ed;
1113 tty_setup_flags(el, &el->el_tty.t_qu, QU_IO);
1115 if (tty_setty(el, TCSADRAIN, &el->el_tty.t_qu) == -1) {
1117 (void) fprintf(el->el_errfile, "%s: tty_setty: %s\n", __func__,
1122 el->el_tty.t_mode = QU_IO;
1131 tty_noquotemode(EditLine *el)
1134 if (el->el_tty.t_mode != QU_IO)
1136 if (tty_setty(el, TCSADRAIN, &el->el_tty.t_ed) == -1) {
1138 (void) fprintf(el->el_errfile, "%s: tty_setty: %s\n", __func__,
1143 el->el_tty.t_mode = ED_IO;
1153 tty_stty(EditLine *el, int argc __attribute__((__unused__)),
1161 struct termios *tios = &el->el_tty.t_ex;
1166 strlcpy(name, ct_encode_string(*argv++, &el->el_scratch), sizeof(name));
1176 tios = &el->el_tty.t_ed;
1181 tios = &el->el_tty.t_ex;
1186 tios = &el->el_tty.t_ts;
1190 (void) fprintf(el->el_errfile,
1201 (void) fprintf(el->el_outfile, "%s%s",
1203 el->el_tty.t_t[z][m->m_type].t_name);
1206 strlen(el->el_tty.t_t[z][m->m_type].t_name);
1209 x = (el->el_tty.t_t[z][i].t_setmask & m->m_value)
1212 if (el->el_tty.t_t[z][i].t_clrmask & m->m_value)
1223 (size_t)el->el_terminal.t_size.h) {
1224 (void) fprintf(el->el_outfile, "\n%*s",
1231 (void) fprintf(el->el_outfile, "%c%s ",
1234 (void) fprintf(el->el_outfile, "%s ",
1238 (void) fprintf(el->el_outfile, "\n");
1256 &el->el_scratch), (size_t)(p - d)) :
1258 &el->el_scratch))) == 0 &&
1263 (void) fprintf(el->el_errfile,
1270 el->el_tty.t_vdisable;
1280 el->el_tty.t_t[z][m->m_type].t_setmask |= m->m_value;
1281 el->el_tty.t_t[z][m->m_type].t_clrmask &= ~m->m_value;
1284 el->el_tty.t_t[z][m->m_type].t_setmask &= ~m->m_value;
1285 el->el_tty.t_t[z][m->m_type].t_clrmask |= m->m_value;
1288 el->el_tty.t_t[z][m->m_type].t_setmask &= ~m->m_value;
1289 el->el_tty.t_t[z][m->m_type].t_clrmask &= ~m->m_value;
1294 tty_setup_flags(el, tios, z);
1295 if (el->el_tty.t_mode == z) {
1296 if (tty_setty(el, TCSADRAIN, tios) == -1) {
1298 (void) fprintf(el->el_errfile, "%s: tty_setty: %s\n",
1314 tty_printchar(EditLine *el, unsigned char *s)
1320 for (m = el->el_tty.t_t; m->m_name; m++)
1324 (void) fprintf(el->el_errfile, "%s ^%c ",
1327 (void) fprintf(el->el_errfile, "\n");
1329 (void) fprintf(el->el_errfile, "\n");
1335 tty_setup_flags(EditLine *el, struct termios *tios, int mode)
1340 *f = tty_update_flag(el, *f, mode, kind);
1345 tty_get_signal_character(EditLine *el, int sig)
1348 tcflag_t *ed = tty__get_flag(&el->el_tty.t_ed, MD_INP);
1355 return el->el_tty.t_c[ED_IO][VINTR];
1359 return el->el_tty.t_c[ED_IO][VQUIT];
1363 return el->el_tty.t_c[ED_IO][VSTATUS];
1367 return el->el_tty.t_c[ED_IO][VSUSP];