mirror of
https://github.com/tmux/tmux.git
synced 2025-09-04 15:26:58 +00:00
Sync OpenBSD patchset 915:
Support xterm(1) cursor colour change sequences through terminfo(5) Cc (set) and Cr (reset) extensions. Originally by Sean Estabrooks, tweaked by me and Ailin Nemui.
This commit is contained in:
38
input.c
38
input.c
@ -1,4 +1,4 @@
|
||||
/* $Id: input.c,v 1.117 2011-03-19 23:30:37 tcunha Exp $ */
|
||||
/* $Id: input.c,v 1.118 2011-05-22 16:25:02 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -1445,17 +1445,39 @@ input_enter_osc(struct input_ctx *ictx)
|
||||
void
|
||||
input_exit_osc(struct input_ctx *ictx)
|
||||
{
|
||||
u_char *p = ictx->input_buf;
|
||||
int option;
|
||||
|
||||
if (ictx->flags & INPUT_DISCARD)
|
||||
return;
|
||||
log_debug("%s: \"%s\"", __func__, ictx->input_buf);
|
||||
|
||||
if (ictx->input_len < 2 || ictx->input_buf[1] != ';')
|
||||
return;
|
||||
if (ictx->input_buf[0] != '0' && ictx->input_buf[0] != '2')
|
||||
if (ictx->input_len < 1 || *p < '0' || *p > '9')
|
||||
return;
|
||||
|
||||
screen_set_title(ictx->ctx.s, ictx->input_buf + 2);
|
||||
server_status_window(ictx->wp->window);
|
||||
log_debug("%s: \"%s\"", __func__, p);
|
||||
|
||||
option = 0;
|
||||
while (*p >= '0' && *p <= '9')
|
||||
option = option * 10 + *p++ - '0';
|
||||
if (*p == ';')
|
||||
p++;
|
||||
|
||||
switch (option) {
|
||||
case 0:
|
||||
case 2:
|
||||
screen_set_title(ictx->ctx.s, p);
|
||||
server_status_window(ictx->wp->window);
|
||||
break;
|
||||
case 12:
|
||||
screen_set_cursor_colour(ictx->ctx.s, p);
|
||||
break;
|
||||
case 112:
|
||||
if (*p == '\0') /* No arguments allowed. */
|
||||
screen_set_cursor_colour(ictx->ctx.s, "");
|
||||
break;
|
||||
default:
|
||||
log_debug("%s: unknown '%u'", __func__, option);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* APC string started. */
|
||||
|
Reference in New Issue
Block a user