Improve logging of screen mode changes.

This commit is contained in:
nicm
2021-06-10 07:43:44 +00:00
parent f02a6c34e0
commit 02a6b39db7
5 changed files with 67 additions and 5 deletions

View File

@ -156,8 +156,8 @@ screen_reset_tabs(struct screen *s)
void
screen_set_cursor_style(struct screen *s, u_int style)
{
switch (style)
{
log_debug("%s: new %u, was %u", __func__, style, s->cstyle);
switch (style) {
case 0:
s->cstyle = SCREEN_CURSOR_DEFAULT;
break;
@ -653,3 +653,51 @@ screen_alternate_off(struct screen *s, struct grid_cell *gc, int cursor)
if (s->cy > screen_size_y(s) - 1)
s->cy = screen_size_y(s) - 1;
}
/* Get mode as a string. */
const char *
screen_mode_to_string(int mode)
{
static char tmp[1024];
if (mode == 0)
return "NONE";
if (mode == ALL_MODES)
return "ALL";
*tmp = '\0';
if (mode & MODE_CURSOR)
strlcat(tmp, "CURSOR,", sizeof tmp);
if (mode & MODE_INSERT)
strlcat(tmp, "INSERT,", sizeof tmp);
if (mode & MODE_KCURSOR)
strlcat(tmp, "KCURSOR,", sizeof tmp);
if (mode & MODE_KKEYPAD)
strlcat(tmp, "KKEYPAD,", sizeof tmp);
if (mode & MODE_WRAP)
strlcat(tmp, "WRAP,", sizeof tmp);
if (mode & MODE_MOUSE_STANDARD)
strlcat(tmp, "STANDARD,", sizeof tmp);
if (mode & MODE_MOUSE_BUTTON)
strlcat(tmp, "BUTTON,", sizeof tmp);
if (mode & MODE_BLINKING)
strlcat(tmp, "BLINKING,", sizeof tmp);
if (mode & MODE_MOUSE_UTF8)
strlcat(tmp, "UTF8,", sizeof tmp);
if (mode & MODE_MOUSE_SGR)
strlcat(tmp, "SGR,", sizeof tmp);
if (mode & MODE_BRACKETPASTE)
strlcat(tmp, "BRACKETPASTE,", sizeof tmp);
if (mode & MODE_FOCUSON)
strlcat(tmp, "FOCUSON,", sizeof tmp);
if (mode & MODE_MOUSE_ALL)
strlcat(tmp, "ALL,", sizeof tmp);
if (mode & MODE_ORIGIN)
strlcat(tmp, "ORIGIN,", sizeof tmp);
if (mode & MODE_CRLF)
strlcat(tmp, "CRLF,", sizeof tmp);
if (mode & MODE_KEXTENDED)
strlcat(tmp, "KEXTENDED,", sizeof tmp);
tmp[strlen (tmp) - 1] = '\0';
return (tmp);
}