summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO6
-rw-r--r--24-bit-color.patch14
-rw-r--r--7-bit-queries.patch247
-rw-r--r--PKGBUILD6
4 files changed, 254 insertions, 19 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 549257077d7d..2ece915c5729 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = rxvt-unicode-truecolor-wide-glyphs
pkgdesc = Unicode enabled rxvt-clone terminal emulator (urxvt) with true color, enhanced glyphs and improved font rendering support
pkgver = 9.31
- pkgrel = 6
+ pkgrel = 7
url = http://software.schmorp.de/pkg/rxvt-unicode.html
arch = i686
arch = x86_64
@@ -44,9 +44,9 @@ pkgbase = rxvt-unicode-truecolor-wide-glyphs
b2sums = 71072f1f262b0759f0251654b7563e0dc5b3f73bc3705321d4e75230c51692541a8f5aa289657714baeab93a9e7b404a0b3ce0eecafb116c389a640209916916
b2sums = 7f760beda37d781ae5bfff280fb912b3210ed4e60c82d279706feb023e5e10e9c5abe8eaa9bef6d7da460df39808c56de91ee2d5ffc63ea0c2e402810fa3dfb5
b2sums = 9e3c03390d44a53b933fd6e11f3b644c43f377d3848975d9a5d1b964b042aca08995c968ada22b143bdc014691282242c8e718820f16086b35588242eb71a15b
- b2sums = fbe0135809c8dbf703c0d44d32def466051dc895b6c1e8e0411ed31ab04295934384e1e900ab030ce97f3f738bd792541750ef5417342865be62af21423ea228
+ b2sums = 94b110f9901786c398c313199da17b5981644241de2385208d36a3cccbf029c518ee619bbadff0348405bc01cd8f24abf41aa361b2f140178345197c2b476e03
b2sums = dcaeac1c3822bf27d0ea4ac3ae6a8852c88420b3b30a5b31ec9022afbf4f65aa29b1e11e0b5e3f6098de057983d886b6a54b5e3ce489ac93320245a6d6f64703
- b2sums = e62677f91d4d5ba9662dc5c4a41c4a3993a1b7bb45c0746745e4b478b736fbe87505cb067b3f35e4cd46b419f927d66bbdaf47dabca04c63d6479d289cc46651
+ b2sums = 201d6a056f55d069af15568ee1dfa1c3eafb019d0dc9629882f93b45a067542a8351c745ff7b9eeba699590bfa85df39da1b22c2f02e8a6e36199bf1bd9ff1c5
b2sums = 8d360d8b0cd274b63f3c0c7651b358cf94aa71c39adb15ca5d8f3c8a05d930bf96ac559e6b7eceb6b3706a2caa3bf7002f75f596a1efdb5e54e43d20b9341590
b2sums = 77b2a764558660cbc16325eacca3a2b17d3071d59c7a956a43c796a8d9374f5d202012e13a50ef4d978e2826009d9f1a93fb118d97e27e4cfbf0569e1d781082
diff --git a/24-bit-color.patch b/24-bit-color.patch
index 6209afdbf26b..422d48cd11a1 100644
--- a/24-bit-color.patch
+++ b/24-bit-color.patch
@@ -120,7 +120,7 @@
}
#endif
}
-@@ -3415,7 +3415,7 @@
+@@ -3424,7 +3424,7 @@
if (str[0] == '?' && !str[1])
{
rgba c;
@@ -129,7 +129,7 @@
char rgba_str[32];
#if XFT
-@@ -3924,7 +3924,7 @@
+@@ -3933,7 +3933,7 @@
{
unsigned int i;
short rendset;
@@ -138,7 +138,7 @@
if (nargs == 0)
{
-@@ -4030,6 +4030,20 @@
+@@ -4039,6 +4039,20 @@
break;
case 38: // set fg color, ISO 8613-6
@@ -159,7 +159,7 @@
case 48: // set bg color, ISO 8613-6
{
unsigned int fgbg = arg[i] == 38 ? Color_fg : Color_bg;
-@@ -4042,6 +4056,14 @@
+@@ -4051,6 +4065,14 @@
scr_color (idx, fgbg);
}
@@ -527,7 +527,7 @@
enum {
C0_NUL = 0x00,
-@@ -538,7 +551,9 @@
+@@ -544,7 +557,9 @@
#endif
};
@@ -538,7 +538,7 @@
# define Color_Bits 9 // 0 .. maxTermCOLOR24
#else
# define Color_Bits 8 // 0 .. maxTermCOLOR24
-@@ -674,21 +689,21 @@
+@@ -680,21 +695,21 @@
#define ROW(n) ROW_of (this, n)
/* how to build & extract colors and attributes */
@@ -571,7 +571,7 @@
#define PIXCOLOR_NAME(idx) rs[Rs_color + (idx)]
#define ISSET_PIXCOLOR(idx) (!!rs[Rs_color + (idx)])
-@@ -1488,7 +1503,12 @@
+@@ -1494,7 +1509,12 @@
void scr_swap_screen () noexcept;
void scr_change_screen (int scrn);
void scr_color (unsigned int color, int fgbg) noexcept;
diff --git a/7-bit-queries.patch b/7-bit-queries.patch
index 4165d27dc771..991d3e4c1f09 100644
--- a/7-bit-queries.patch
+++ b/7-bit-queries.patch
@@ -1,19 +1,254 @@
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.
+of ST, ESC \, or BEL. rxvt-unicode tried to use the same type of termination
+as was in the query but didn't correctly handle the multiple-char sequence
+used for 7-bit queries. This fixes it.
--- src/command.C
+++ src/command.C
-@@ -3426,9 +3426,9 @@
+@@ -3021,8 +3021,13 @@
+ tt_printf ("%-.250s\012", rs[Rs_display_name]);
+ break;
+ case 8: /* unofficial extension */
+- process_xterm_seq (XTerm_title, (char *)RESNAME "-" VERSION, CHAR_ST); // char * cast verified
+- break;
++ {
++ string_term st;
++ st.v[0] = CHAR_ST;
++ st.v[1] = '\0';
++ process_xterm_seq (XTerm_title, (char *)RESNAME "-" VERSION, st); // char * cast verified
++ break;
++ }
+ }
+ break;
+
+@@ -3217,7 +3222,7 @@
+ * ends_how is terminator used. returned input must be free()'d
+ */
+ char *
+-rxvt_term::get_to_st (unicode_t &ends_how)
++rxvt_term::get_to_st (string_term &st)
+ {
+ unicode_t ch;
+ bool seen_esc = false;
+@@ -3256,7 +3261,11 @@
+
+ string[n++] = '\0';
+
+- ends_how = (ch == 0x5c ? C0_ESC : ch);
++ n = 0;
++ if (ch == 0x5c)
++ st.v[n++] = C0_ESC;
++ st.v[n++] = ch;
++ st.v[n] = '\0';
+
+ return rxvt_wcstombs (string);
+ }
+@@ -3272,8 +3281,8 @@
+ * Not handled yet
+ */
+
+- unicode_t eh;
+- char *s = get_to_st (eh);
++ string_term st;
++ char *s = get_to_st (st);
+ if (s)
+ free (s);
+
+@@ -3295,12 +3304,12 @@
+
+ if (ch == ';')
+ {
+- unicode_t eh;
+- char *s = get_to_st (eh);
++ string_term st;
++ char *s = get_to_st (st);
+
+ if (s)
+ {
+- process_xterm_seq (arg, s, eh);
++ process_xterm_seq (arg, s, st);
+ free (s);
+ }
+ }
+@@ -3410,7 +3419,7 @@
+ }
+
+ void
+-rxvt_term::process_color_seq (int report, int color, const char *str, char resp)
++rxvt_term::process_color_seq (int report, int color, const char *str, string_term &st)
+ {
+ if (str[0] == '?' && !str[1])
+ {
+@@ -3426,9 +3435,9 @@
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);
++ tt_printf ("\033]%d;%d;%s%s", report, color - minCOLOR, rgba_str, st.v);
else
- tt_printf ("\033]%d;%s%c", report, rgba_str, resp);
-+ tt_printf ("\033]%d;%s\033\\", report, rgba_str, resp);
++ tt_printf ("\033]%d;%s%s", report, rgba_str, st.v);
}
else
set_window_color (color, str);
+@@ -3438,7 +3447,7 @@
+ * XTerm escape sequences: ESC ] Ps;Pt (ST|BEL)
+ */
+ void
+-rxvt_term::process_xterm_seq (int op, char *str, char resp)
++rxvt_term::process_xterm_seq (int op, char *str, string_term &st)
+ {
+ int color;
+ char *buf, *name;
+@@ -3483,7 +3492,7 @@
+ && actual_format == 8)
+ str = (const char *)(value);
+
+- tt_printf ("\033]%d;%s%c", op, option (Opt_insecure) ? str : "", resp);
++ tt_printf ("\033]%d;%s%s", op, option (Opt_insecure) ? str : "", st.v);
+
+ XFree (value);
+ }
+@@ -3517,49 +3526,49 @@
+ if ((buf = strchr (name, ';')) != NULL)
+ *buf++ = '\0';
+
+- process_color_seq (op, color, name, resp);
++ process_color_seq (op, color, name, st);
+ }
+ break;
+ case Rxvt_restoreFG:
+ case XTerm_Color00:
+- process_color_seq (op, Color_fg, str, resp);
++ process_color_seq (op, Color_fg, str, st);
+ break;
+ case Rxvt_restoreBG:
+ case XTerm_Color01:
+- process_color_seq (op, Color_bg, str, resp);
++ process_color_seq (op, Color_bg, str, st);
+ break;
+ #ifndef NO_CURSORCOLOR
+ case XTerm_Color_cursor:
+- process_color_seq (op, Color_cursor, str, resp);
++ process_color_seq (op, Color_cursor, str, st);
+ break;
+ #endif
+ case XTerm_Color_pointer_fg:
+- process_color_seq (op, Color_pointer_fg, str, resp);
++ process_color_seq (op, Color_pointer_fg, str, st);
+ break;
+ case XTerm_Color_pointer_bg:
+- process_color_seq (op, Color_pointer_bg, str, resp);
++ process_color_seq (op, Color_pointer_bg, str, st);
+ break;
+ #ifdef OPTION_HC
+ case XTerm_Color_HC:
+- process_color_seq (op, Color_HC, str, resp);
++ process_color_seq (op, Color_HC, str, st);
+ break;
+ case XTerm_Color_HTC:
+- process_color_seq (op, Color_HTC, str, resp);
++ process_color_seq (op, Color_HTC, str, st);
+ break;
+ #endif
+ #ifndef NO_BOLD_UNDERLINE_REVERSE
+ case URxvt_Color_BD:
+- process_color_seq (op, Color_BD, str, resp);
++ process_color_seq (op, Color_BD, str, st);
+ break;
+ case URxvt_Color_UL:
+- process_color_seq (op, Color_UL, str, resp);
++ process_color_seq (op, Color_UL, str, st);
+ break;
+ case URxvt_Color_IT:
+- process_color_seq (op, Color_IT, str, resp);
++ process_color_seq (op, Color_IT, str, st);
+ break;
+ #endif
+ case URxvt_Color_border:
+- process_color_seq (op, Color_border, str, resp);
++ process_color_seq (op, Color_border, str, st);
+ break;
+
+ case XTerm_logfile:
+@@ -3587,10 +3596,10 @@
+ case URxvt_boldItalicFont:
+ #endif
+ if (query)
+- tt_printf ("\33]%d;%-.250s%c", saveop,
++ tt_printf ("\33]%d;%-.250s%s", saveop,
+ option (Opt_insecure) && fontset[op - URxvt_font]->fontdesc
+ ? fontset[op - URxvt_font]->fontdesc : "",
+- resp);
++ st.v);
+ else
+ {
+ const char *&res = rs[Rs_font + (op - URxvt_font)];
+@@ -3603,23 +3612,23 @@
+
+ case URxvt_version:
+ if (query)
+- tt_printf ("\33]%d;rxvt-unicode;%-.20s;%c;%c%c",
++ tt_printf ("\33]%d;rxvt-unicode;%-.20s;%c;%c%s",
+ op,
+ rs[Rs_name], VERSION[0], VERSION[2],
+- resp);
++ st.v);
+ break;
+
+ #if !ENABLE_MINIMAL
+ case URxvt_cellinfo:
+ if (query)
+- tt_printf ("\33]%d;%d;%d;%d%c", saveop,
++ tt_printf ("\33]%d;%d;%d;%d%s", saveop,
+ fwidth, fheight, fbase,
+- resp);
++ st.v);
+ break;
+
+ case URxvt_locale:
+ if (query)
+- tt_printf ("\33]%d;%-.250s%c", op, option (Opt_insecure) ? locale : "", resp);
++ tt_printf ("\33]%d;%-.250s%s", op, option (Opt_insecure) ? locale : "", st.v);
+ else
+ {
+ set_locale (str);
+@@ -3644,7 +3653,7 @@
+
+ #if ENABLE_PERL
+ case URxvt_perl:
+- HOOK_INVOKE ((this, HOOK_OSC_SEQ_PERL, DT_STR, str, DT_STR_LEN, &resp, 1, DT_END));
++ HOOK_INVOKE ((this, HOOK_OSC_SEQ_PERL, DT_STR, str, DT_STR, st.v, DT_END));
+ break;
+ #endif
+ }
+--- src/rxvt.h
++++ src/rxvt.h
+@@ -399,6 +399,12 @@
+ C0_DLE, C0_DC1, C0_DC2, D0_DC3, C0_DC4, C0_NAK, C0_SYN, C0_ETB,
+ C0_CAN, C0_EM , C0_SUB, C0_ESC, C0_IS4, C0_IS3, C0_IS2, C0_IS1,
+ };
++
++struct string_term
++{
++ unsigned char v[3];
++};
++
+ #define CHAR_ST 0x9c /* 0234 */
+
+ /*
+@@ -1366,11 +1372,11 @@
+ void process_escape_seq ();
+ void process_csi_seq ();
+ void process_window_ops (const int *args, unsigned int nargs);
+- char *get_to_st (unicode_t &ends_how);
++ char *get_to_st (string_term &st);
+ void process_dcs_seq ();
+ void process_osc_seq ();
+- void process_color_seq (int report, int color, const char *str, char resp);
+- void process_xterm_seq (int op, char *str, char resp);
++ void process_color_seq (int report, int color, const char *str, string_term &st);
++ void process_xterm_seq (int op, char *str, string_term &st);
+ unsigned int map_rgb24_color (unsigned int r, unsigned int g, unsigned int b, unsigned int a);
+ int privcases (int mode, unsigned long bit);
+ void process_terminal_mode (int mode, int priv, unsigned int nargs, const int *arg);
diff --git a/PKGBUILD b/PKGBUILD
index a250cf01624e..14d01b9a2505 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
_pkgname=rxvt-unicode
pkgname=rxvt-unicode-truecolor-wide-glyphs
pkgver=9.31
-pkgrel=6
+pkgrel=7
pkgdesc="Unicode enabled rxvt-clone terminal emulator (urxvt) with true color, enhanced glyphs and improved font rendering support"
arch=('i686' 'x86_64')
url='http://software.schmorp.de/pkg/rxvt-unicode.html'
@@ -59,9 +59,9 @@ b2sums=('439a8c33b7260e0f2fd68b8a4409773c06c3bb7623b5dfbbb0742cc198c9fd25e8a2479
'71072f1f262b0759f0251654b7563e0dc5b3f73bc3705321d4e75230c51692541a8f5aa289657714baeab93a9e7b404a0b3ce0eecafb116c389a640209916916'
'7f760beda37d781ae5bfff280fb912b3210ed4e60c82d279706feb023e5e10e9c5abe8eaa9bef6d7da460df39808c56de91ee2d5ffc63ea0c2e402810fa3dfb5'
'9e3c03390d44a53b933fd6e11f3b644c43f377d3848975d9a5d1b964b042aca08995c968ada22b143bdc014691282242c8e718820f16086b35588242eb71a15b'
- 'fbe0135809c8dbf703c0d44d32def466051dc895b6c1e8e0411ed31ab04295934384e1e900ab030ce97f3f738bd792541750ef5417342865be62af21423ea228'
+ '94b110f9901786c398c313199da17b5981644241de2385208d36a3cccbf029c518ee619bbadff0348405bc01cd8f24abf41aa361b2f140178345197c2b476e03'
'dcaeac1c3822bf27d0ea4ac3ae6a8852c88420b3b30a5b31ec9022afbf4f65aa29b1e11e0b5e3f6098de057983d886b6a54b5e3ce489ac93320245a6d6f64703'
- 'e62677f91d4d5ba9662dc5c4a41c4a3993a1b7bb45c0746745e4b478b736fbe87505cb067b3f35e4cd46b419f927d66bbdaf47dabca04c63d6479d289cc46651'
+ '201d6a056f55d069af15568ee1dfa1c3eafb019d0dc9629882f93b45a067542a8351c745ff7b9eeba699590bfa85df39da1b22c2f02e8a6e36199bf1bd9ff1c5'
'8d360d8b0cd274b63f3c0c7651b358cf94aa71c39adb15ca5d8f3c8a05d930bf96ac559e6b7eceb6b3706a2caa3bf7002f75f596a1efdb5e54e43d20b9341590'
'77b2a764558660cbc16325eacca3a2b17d3071d59c7a956a43c796a8d9374f5d202012e13a50ef4d978e2826009d9f1a93fb118d97e27e4cfbf0569e1d781082')