Re: [dev] [st] [PATCH] Implement OSC 12 (change text cursor color)

From: Hiltjo Posthuma <hiltjo_AT_codemadness.org>
Date: Sun, 4 Jun 2017 18:15:10 +0200

On Sun, Jun 04, 2017 at 05:25:36PM +0200, Arkadiusz Hiler wrote:
> This escape sequence comes from xterm and derivatives and allows
> terminal to change cursor color.
>
> In xterm it supported only #RRGGBB color format, but starting with rxvt
> it allows to change the color using indexes from the color table.
>
> We support only color indexes.
>
> Use: echo -ne "\033]12;$COLOR_INDEX\007"
> Where $COLOR_INDEX is index of color in colorname[]
> ---
> st.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/st.c b/st.c
> index 8d4a9f2..1e9b92e 100644
> --- a/st.c
> +++ b/st.c
> _AT_@ -1897,6 +1897,20 @@ strhandle(void)
> redraw();
> }
> return;
> + case 12:
> + if (narg == 2)
> + {
> + int j = atoi(strescseq.args[1]);
> +
> + if (j >= 0 && j < sizeof(colorname))

I've not tested the patch, but I think this line should be:

> + if (j >= 0 && j < sizeof(colorname) / sizeof(*colorname))

> + {
> + defaultcs = j;
> + redraw();
> + return;
> + }
> + }
> + fprintf(stderr, "erresc: invalid OSC 12 use");
> + return;
> }
> break;
> case 'k': /* old title set compatibility */
> --
> 2.13.0
>
>

-- 
Kind regards,
Hiltjo
Received on Sun Jun 04 2017 - 18:15:10 CEST

This archive was generated by hypermail 2.3.0 : Sun Jun 04 2017 - 18:24:13 CEST