diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bffeb18..303fad2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,8 @@ * Memory leak in terminal reset. * Translation of cursor coordinates on resize * Scaling of legacy formatted color specifiers in OSC sequences. +* `OSC 12 ?` to return the cursor color, not the cursor's text color. + ### Security diff --git a/osc.c b/osc.c index 800385ab..1946f052 100644 --- a/osc.c +++ b/osc.c @@ -525,9 +525,9 @@ osc_dispatch(struct terminal *term) /* Client queried for current value */ if (strlen(string) == 1 && string[0] == '?') { - uint8_t r = (term->cursor_color.text >> 16) & 0xff; - uint8_t g = (term->cursor_color.text >> 8) & 0xff; - uint8_t b = (term->cursor_color.text >> 0) & 0xff; + uint8_t r = (term->cursor_color.cursor >> 16) & 0xff; + uint8_t g = (term->cursor_color.cursor >> 8) & 0xff; + uint8_t b = (term->cursor_color.cursor >> 0) & 0xff; char reply[32]; snprintf(reply, sizeof(reply), "\033]12;rgb:%02x/%02x/%02x\033\\", r, g, b);