version 1.121, 2017/05/12 13:00:56 |
version 1.122, 2017/05/28 23:23:40 |
|
|
static void input_reset_cell(struct input_ctx *); |
static void input_reset_cell(struct input_ctx *); |
|
|
static void input_osc_4(struct window_pane *, const char *); |
static void input_osc_4(struct window_pane *, const char *); |
|
static void input_osc_10(struct window_pane *, const char *); |
|
static void input_osc_11(struct window_pane *, const char *); |
static void input_osc_52(struct window_pane *, const char *); |
static void input_osc_52(struct window_pane *, const char *); |
static void input_osc_104(struct window_pane *, const char *); |
static void input_osc_104(struct window_pane *, const char *); |
|
|
|
|
case 4: |
case 4: |
input_osc_4(ictx->wp, p); |
input_osc_4(ictx->wp, p); |
break; |
break; |
case 52: |
case 10: |
input_osc_52(ictx->wp, p); |
input_osc_10(ictx->wp, p); |
break; |
break; |
|
case 11: |
|
input_osc_11(ictx->wp, p); |
|
break; |
case 12: |
case 12: |
if (*p != '?') /* ? is colour request */ |
if (*p != '?') /* ? is colour request */ |
screen_set_cursor_colour(ictx->ctx.s, p); |
screen_set_cursor_colour(ictx->ctx.s, p); |
break; |
break; |
|
case 52: |
|
input_osc_52(ictx->wp, p); |
|
break; |
case 104: |
case 104: |
input_osc_104(ictx->wp, p); |
input_osc_104(ictx->wp, p); |
break; |
break; |
|
|
bad: |
bad: |
log_debug("bad OSC 4: %s", p); |
log_debug("bad OSC 4: %s", p); |
free(copy); |
free(copy); |
|
} |
|
|
|
/* Handle the OSC 10 sequence for setting background colour. */ |
|
static void |
|
input_osc_10(struct window_pane *wp, const char *p) |
|
{ |
|
u_int r, g, b; |
|
|
|
if (sscanf(p, "rgb:%2x/%2x/%2x", &r, &g, &b) != 3) |
|
goto bad; |
|
|
|
wp->colgc.fg = colour_join_rgb(r, g, b); |
|
wp->flags |= PANE_REDRAW; |
|
|
|
return; |
|
|
|
bad: |
|
log_debug("bad OSC 10: %s", p); |
|
} |
|
|
|
/* Handle the OSC 11 sequence for setting background colour. */ |
|
static void |
|
input_osc_11(struct window_pane *wp, const char *p) |
|
{ |
|
u_int r, g, b; |
|
|
|
if (sscanf(p, "rgb:%2x/%2x/%2x", &r, &g, &b) != 3) |
|
goto bad; |
|
|
|
wp->colgc.bg = colour_join_rgb(r, g, b); |
|
wp->flags |= PANE_REDRAW; |
|
|
|
return; |
|
|
|
bad: |
|
log_debug("bad OSC 11: %s", p); |
} |
} |
|
|
/* Handle the OSC 52 sequence for setting the clipboard. */ |
/* Handle the OSC 52 sequence for setting the clipboard. */ |