version 1.187, 2015/09/02 17:43:25 |
version 1.188, 2015/09/25 23:30:12 |
|
|
char s[32]; |
char s[32]; |
|
|
/* |
/* |
* If the terminfo entry has 256 colours, assume that setaf and setab |
* If the terminfo entry has 256 colours and setaf and setab exist, |
* work correctly. |
* assume that they work correctly. |
*/ |
*/ |
if (tty->term->flags & TERM_256COLOURS) { |
if (tty->term->flags & TERM_256COLOURS) { |
if (*type == '3') |
if (*type == '3') { |
|
if (!tty_term_has(tty->term, TTYC_SETAF)) |
|
goto fallback; |
tty_putcode1(tty, TTYC_SETAF, colour); |
tty_putcode1(tty, TTYC_SETAF, colour); |
else |
} else { |
|
if (!tty_term_has(tty->term, TTYC_SETAB)) |
|
goto fallback; |
tty_putcode1(tty, TTYC_SETAB, colour); |
tty_putcode1(tty, TTYC_SETAB, colour); |
|
} |
return (0); |
return (0); |
} |
} |
|
|
|
|
* If the user has specified -2 to the client, setaf and setab may not |
* If the user has specified -2 to the client, setaf and setab may not |
* work, so send the usual sequence. |
* work, so send the usual sequence. |
*/ |
*/ |
if (tty->term_flags & TERM_256COLOURS) { |
if (tty->term_flags & TERM_256COLOURS) |
xsnprintf(s, sizeof s, "\033[%s;5;%hhum", type, colour); |
goto fallback; |
tty_puts(tty, s); |
|
return (0); |
|
} |
|
|
|
return (-1); |
return (-1); |
|
|
|
fallback: |
|
xsnprintf(s, sizeof s, "\033[%s;5;%hhum", type, colour); |
|
tty_puts(tty, s); |
|
return (0); |
} |
} |
|
|
void |
void |