0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

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.
This commit is contained in:
Bram Moolenaar
2018-02-24 14:03:56 +01:00
parent cc0f2be880
commit 674e482d13
4 changed files with 21 additions and 2 deletions

View File

@@ -1506,6 +1506,22 @@ static int on_osc(const char *command, size_t cmdlen, void *user)
settermprop_string(state, VTERM_PROP_TITLE, command + 2, cmdlen - 2); settermprop_string(state, VTERM_PROP_TITLE, command + 2, cmdlen - 2);
return 1; 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)) { else if(strneq(command, "12;", 3)) {
settermprop_string(state, VTERM_PROP_CURSORCOLOR, command + 3, cmdlen - 3); settermprop_string(state, VTERM_PROP_CURSORCOLOR, command + 3, cmdlen - 3);
return 1; return 1;

View File

@@ -56,7 +56,7 @@ VTerm *vterm_new_with_allocator(int rows, int cols, VTermAllocatorFunctions *fun
vt->strbuffer_cur = 0; vt->strbuffer_cur = 0;
vt->strbuffer = vterm_allocator_malloc(vt, vt->strbuffer_len); vt->strbuffer = vterm_allocator_malloc(vt, vt->strbuffer_len);
vt->outbuffer_len = 64; vt->outbuffer_len = 200;
vt->outbuffer_cur = 0; vt->outbuffer_cur = 0;
vt->outbuffer = vterm_allocator_malloc(vt, vt->outbuffer_len); vt->outbuffer = vterm_allocator_malloc(vt, vt->outbuffer_len);

View File

@@ -222,7 +222,8 @@ enum {
C1_SS3 = 0x8f, C1_SS3 = 0x8f,
C1_DCS = 0x90, C1_DCS = 0x90,
C1_CSI = 0x9b, C1_CSI = 0x9b,
C1_ST = 0x9c C1_ST = 0x9c,
C1_OSC = 0x9d
}; };
void vterm_state_push_output_sprintf_CSI(VTermState *vts, const char *format, ...); void vterm_state_push_output_sprintf_CSI(VTermState *vts, const char *format, ...);

View File

@@ -778,6 +778,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1533,
/**/ /**/
1532, 1532,
/**/ /**/