aboutsummaryrefslogtreecommitdiff
path: root/tty.c
diff options
context:
space:
mode:
authornicm <nicm>2015-01-20 08:18:04 +0000
committernicm <nicm>2015-01-20 08:18:04 +0000
commit16bdd970dcc68e50f26c512b3ead628b9b899c88 (patch)
tree62d7c4b928766cfc532ab197adf4482116439d1b /tty.c
parentd45150267656530b8503375555a1814fcfe6a15a (diff)
downloadrtmux-16bdd970dcc68e50f26c512b3ead628b9b899c88.tar.gz
rtmux-16bdd970dcc68e50f26c512b3ead628b9b899c88.tar.bz2
rtmux-16bdd970dcc68e50f26c512b3ead628b9b899c88.zip
Support blinking cursor mode, both the xterm CSI ?12 h/l and (the
backwards) screen CSI 34 h/l. From Guanpeng Xu.
Diffstat (limited to 'tty.c')
-rw-r--r--tty.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/tty.c b/tty.c
index 9f57c365..2ff2fccc 100644
--- a/tty.c
+++ b/tty.c
@@ -482,10 +482,14 @@ tty_update_mode(struct tty *tty, int mode, struct screen *s)
mode &= ~MODE_CURSOR;
changed = mode ^ tty->mode;
- if (changed & MODE_CURSOR) {
- if (mode & MODE_CURSOR)
- tty_putcode(tty, TTYC_CNORM);
- else
+ if (changed & (MODE_CURSOR|MODE_BLINKING)) {
+ if (mode & MODE_CURSOR) {
+ if (mode & MODE_BLINKING &&
+ tty_term_has(tty->term, TTYC_CVVIS))
+ tty_putcode(tty, TTYC_CVVIS);
+ else
+ tty_putcode(tty, TTYC_CNORM);
+ } else
tty_putcode(tty, TTYC_CIVIS);
}
if (tty->cstyle != s->cstyle) {