Sync OpenBSD patchset 368:

The UTF-8 detection idea doesn't work and I am reasonably happy with the
current methods, so remove the (already #ifdef 0'd) code.
pull/1/head
Tiago Cunha 2009-10-09 13:11:42 +00:00
parent 220f3f2384
commit cddb781127
2 changed files with 2 additions and 88 deletions

3
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.459 2009-10-06 14:14:07 tcunha Exp $ */
/* $Id: tmux.h,v 1.460 2009-10-09 13:11:42 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -1197,7 +1197,6 @@ void tty_init(struct tty *, int, char *);
void tty_resize(struct tty *);
void tty_start_tty(struct tty *);
void tty_stop_tty(struct tty *);
void tty_detect_utf8(struct tty *);
void tty_set_title(struct tty *, const char *);
void tty_update_mode(struct tty *, int);
void tty_draw_line(struct tty *, struct screen *, u_int, u_int, u_int);

87
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.139 2009-10-09 13:03:28 tcunha Exp $ */
/* $Id: tty.c,v 1.140 2009-10-09 13:11:42 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -137,10 +137,6 @@ tty_start_tty(struct tty *tty)
if (fcntl(tty->fd, F_SETFL, mode|O_NONBLOCK) == -1)
fatal("fcntl failed");
#if 0
tty_detect_utf8(tty);
#endif
if (tcgetattr(tty->fd, &tty->tio) != 0)
fatal("tcgetattr failed");
memcpy(&tio, &tty->tio, sizeof tio);
@ -221,87 +217,6 @@ tty_stop_tty(struct tty *tty)
tty_raw(tty, tty_term_string(tty->term, TTYC_RMCUP));
}
#if 0
void
tty_detect_utf8(struct tty *tty)
{
struct pollfd pfd;
char buf[7];
size_t len;
ssize_t n;
int nfds;
struct termios tio, old_tio;
#ifdef TIOCFLUSH
int what;
#endif
if (tty->flags & TTY_UTF8)
return;
/*
* If the terminal looks reasonably likely to support this, try to
* write a three-byte UTF-8 wide character to the terminal, then read
* the cursor position.
*
* XXX This entire function is a hack.
*/
/* Check if the terminal looks sort of vt100. */
if (strstr(tty_term_string(tty->term, TTYC_CLEAR), "[2J") == NULL ||
strstr(tty_term_string(tty->term, TTYC_CUP), "H") == NULL)
return;
if (tcgetattr(tty->fd, &old_tio) != 0)
fatal("tcgetattr failed");
cfmakeraw(&tio);
if (tcsetattr(tty->fd, TCSANOW, &tio) != 0)
fatal("tcsetattr failed");
#ifdef TIOCFLUSH
what = 0;
if (ioctl(tty->fd, TIOCFLUSH, &what) != 0)
fatal("ioctl(TIOCFLUSH)");
#endif
#define UTF8_TEST_DATA "\033[H\357\277\246\033[6n"
if (write(tty->fd, UTF8_TEST_DATA, (sizeof UTF8_TEST_DATA) - 1) == -1)
fatal("write failed");
#undef UTF8_TEST_DATA
len = 0;
for (;;) {
pfd.fd = tty->fd;
pfd.events = POLLIN;
nfds = poll(&pfd, 1, 500);
if (nfds == -1) {
if (errno == EAGAIN || errno == EINTR)
continue;
fatal("poll failed");
}
if (nfds == 0)
break;
if (pfd.revents & (POLLERR|POLLNVAL|POLLHUP))
break;
if (!(pfd.revents & POLLIN))
continue;
if ((n = read(tty->fd, buf + len, 1)) != 1)
break;
buf[++len] = '\0';
if (len == (sizeof buf) - 1) {
if (strcmp(buf, "\033[1;3R") == 0)
tty->flags |= TTY_UTF8;
break;
}
}
if (tcsetattr(tty->fd, TCSANOW, &old_tio) != 0)
fatal("tcsetattr failed");
}
#endif
void
tty_fill_acs(struct tty *tty)
{