diff options
-rw-r--r-- | src/libvterm/src/state.c | 16 | ||||
-rw-r--r-- | src/libvterm/src/vterm.c | 2 | ||||
-rw-r--r-- | src/libvterm/src/vterm_internal.h | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 21 insertions, 2 deletions
diff --git a/src/libvterm/src/state.c b/src/libvterm/src/state.c index 32dabeb34..05dbe5a96 100644 --- a/src/libvterm/src/state.c +++ b/src/libvterm/src/state.c @@ -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); 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; diff --git a/src/libvterm/src/vterm.c b/src/libvterm/src/vterm.c index 1789fb356..853fe5048 100644 --- a/src/libvterm/src/vterm.c +++ b/src/libvterm/src/vterm.c @@ -56,7 +56,7 @@ VTerm *vterm_new_with_allocator(int rows, int cols, VTermAllocatorFunctions *fun 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); diff --git a/src/libvterm/src/vterm_internal.h b/src/libvterm/src/vterm_internal.h index 759382cb1..3b337c0c1 100644 --- a/src/libvterm/src/vterm_internal.h +++ b/src/libvterm/src/vterm_internal.h @@ -222,7 +222,8 @@ enum { C1_SS3 = 0x8f, C1_DCS = 0x90, C1_CSI = 0x9b, - C1_ST = 0x9c + C1_ST = 0x9c, + C1_OSC = 0x9d }; void vterm_state_push_output_sprintf_CSI(VTermState *vts, const char *format, ...); diff --git a/src/version.c b/src/version.c index c2096c7c6..95e5a72ba 100644 --- a/src/version.c +++ b/src/version.c @@ -779,6 +779,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1533, +/**/ 1532, /**/ 1531, |