diff src/libvterm/src/state.c @ 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 dc39ef257b60
children a62b0bbc8834
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;