Use UTF-8 line drawing characters on UTF-8 terminals. Fixes some stupid

terminals (I'm looking at you, putty) which disable the vt100 ACS mode
switching sequences in UTF-8 mode.

Also on terminals without ACS at all, use ASCII equivalents where
obvious.
This commit is contained in:
Nicholas Marriott
2010-09-11 16:19:22 +00:00
parent 3696cce4ae
commit cb564bb427
6 changed files with 137 additions and 54 deletions

8
tmux.h
View File

@ -972,6 +972,8 @@ struct tty_term {
char *name;
u_int references;
char acs[UCHAR_MAX + 1][2];
struct tty_code codes[NTTYCODE];
#define TERM_256COLOURS 0x1
@ -1009,8 +1011,6 @@ struct tty {
struct grid_cell cell;
u_char acs[UCHAR_MAX + 1];
#define TTY_NOCURSOR 0x1
#define TTY_FREEZE 0x2
#define TTY_ESCAPE 0x4
@ -1372,7 +1372,6 @@ void environ_push(struct environ *);
/* tty.c */
void tty_raw(struct tty *, const char *);
u_char tty_get_acs(struct tty *, u_char);
void tty_attributes(struct tty *, const struct grid_cell *);
void tty_reset(struct tty *);
void tty_region_pane(struct tty *, const struct tty_ctx *, u_int, u_int);
@ -1426,6 +1425,9 @@ const char *tty_term_string2(
int tty_term_number(struct tty_term *, enum tty_code_code);
int tty_term_flag(struct tty_term *, enum tty_code_code);
/* tty-acs.c */
const char *tty_acs_get(struct tty *, u_char);
/* tty-keys.c */
void tty_keys_init(struct tty *);
void tty_keys_free(struct tty *);