summaryrefslogtreecommitdiff
path: root/x11-terms/rxvt-unicode/files/rxvt-unicode-9.31-osc-colour-command-termination.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11-terms/rxvt-unicode/files/rxvt-unicode-9.31-osc-colour-command-termination.patch')
-rw-r--r--x11-terms/rxvt-unicode/files/rxvt-unicode-9.31-osc-colour-command-termination.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/x11-terms/rxvt-unicode/files/rxvt-unicode-9.31-osc-colour-command-termination.patch b/x11-terms/rxvt-unicode/files/rxvt-unicode-9.31-osc-colour-command-termination.patch
new file mode 100644
index 000000000000..f293d44eb467
--- /dev/null
+++ b/x11-terms/rxvt-unicode/files/rxvt-unicode-9.31-osc-colour-command-termination.patch
@@ -0,0 +1,19 @@
+OSC commands returning the colour sequence must be terminated by either
+of ST, ESC \, or BEL. rxvt-unicode tries to use the same type of termination
+as was in the query but doesn't correctly handle the multiple-char sequence
+used for 7-bit queries. Force to using ESC \ instead for now.
+
+--- a/src/command.C
++++ b/src/command.C
+@@ -3426,9 +3426,9 @@ rxvt_term::process_color_seq (int report, int color, c
+ snprintf (rgba_str, sizeof (rgba_str), "rgb:%04x/%04x/%04x", c.r, c.g, c.b);
+
+ if (IN_RANGE_INC (color, minCOLOR, maxTermCOLOR))
+- tt_printf ("\033]%d;%d;%s%c", report, color - minCOLOR, rgba_str, resp);
++ tt_printf ("\033]%d;%d;%s\033\\", report, color - minCOLOR, rgba_str);
+ else
+- tt_printf ("\033]%d;%s%c", report, rgba_str, resp);
++ tt_printf ("\033]%d;%s\033\\", report, rgba_str, resp);
+ }
+ else
+ set_window_color (color, str);