Introduction
Introduction Statistics Contact Development Disclaimer Help
support colons in SGR character attributes - st - simple terminal
git clone git://git.suckless.org/st
Log
Files
Refs
README
LICENSE
---
commit 5dbcca49263be094fc38159c297458ae323ef647
parent d63b9eb90245926b531bd54b1d591adb96613e70
Author: Hiltjo Posthuma <[email protected]>
Date: Wed, 1 May 2024 20:45:39 +0200
support colons in SGR character attributes
Patch by Mikhail Kot <[email protected]>
With some modifications to behave more like xterm (see note below).
Example:
printf '\033[48;2;255:0:0mtest\n'
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
Some notes:
"CSI Pm m Character Attributes (SGR).
[...]
o xterm allows either colons (standard) or semicolons
(legacy) to separate the subparameters (but after the
first colon, colons must be used).
Diffstat:
M st.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/st.c b/st.c
@@ -1132,6 +1132,7 @@ csiparse(void)
{
char *p = csiescseq.buf, *np;
long int v;
+ int sep = ';'; /* colon or semi-colon, but not both */
csiescseq.narg = 0;
if (*p == '?') {
@@ -1149,7 +1150,9 @@ csiparse(void)
v = -1;
csiescseq.arg[csiescseq.narg++] = v;
p = np;
- if (*p != ';' || csiescseq.narg == ESC_ARG_SIZ)
+ if (sep == ';' && *p == ':')
+ sep = ':'; /* allow override to colon once */
+ if (*p != sep || csiescseq.narg == ESC_ARG_SIZ)
break;
p++;
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.