Mercurial > vim
changeset 13318:5e47c4bdf3a6 v8.0.1533
patch 8.0.1533: libterm doesn't support requesting fg and bg color
commit https://github.com/vim/vim/commit/674e482d1346aa1afddab62675f3a7d7a00a4894
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 24 14:03:56 2018 +0100
patch 8.0.1533: libterm doesn't support requesting fg and bg color
Problem: Libterm doesn't support requesting fg and bg color.
Solution: Implement t_RF and t_RB.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 24 Feb 2018 14:15:06 +0100 |
parents | 64be34986f54 |
children | a5a796c53846 |
files | src/libvterm/src/state.c src/libvterm/src/vterm.c src/libvterm/src/vterm_internal.h src/version.c |
diffstat | 4 files changed, 21 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/libvterm/src/state.c +++ b/src/libvterm/src/state.c @@ -1506,6 +1506,22 @@ static int on_osc(const char *command, s settermprop_string(state, VTERM_PROP_TITLE, command + 2, cmdlen - 2); return 1; } + else if(strneq(command, "10;", 3)) { + /* request foreground color: <Esc>]10;?<0x07> */ + int red = state->default_fg.red; + int blue = state->default_fg.blue; + int green = state->default_fg.green; + vterm_push_output_sprintf_ctrl(state->vt, C1_OSC, "10;rgb:%02x%02x/%02x%02x/%02x%02x\x07", red, red, green, green, blue, blue); + return 1; + } + else if(strneq(command, "11;", 3)) { + /* request background color: <Esc>]11;?<0x07> */ + int red = state->default_bg.red; + int blue = state->default_bg.blue; + int green = state->default_bg.green; + vterm_push_output_sprintf_ctrl(state->vt, C1_OSC, "11;rgb:%02x%02x/%02x%02x/%02x%02x\x07", red, red, green, green, blue, blue); + return 1; + } else if(strneq(command, "12;", 3)) { settermprop_string(state, VTERM_PROP_CURSORCOLOR, command + 3, cmdlen - 3); return 1;
--- a/src/libvterm/src/vterm.c +++ b/src/libvterm/src/vterm.c @@ -56,7 +56,7 @@ VTerm *vterm_new_with_allocator(int rows vt->strbuffer_cur = 0; vt->strbuffer = vterm_allocator_malloc(vt, vt->strbuffer_len); - vt->outbuffer_len = 64; + vt->outbuffer_len = 200; vt->outbuffer_cur = 0; vt->outbuffer = vterm_allocator_malloc(vt, vt->outbuffer_len);