<feed xmlns='http://www.w3.org/2005/Atom'>
<title>st.git/st.c, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://www.git.mouadalami.xyz/st.git/atom?h=main</id>
<link rel='self' href='https://www.git.mouadalami.xyz/st.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/'/>
<updated>2026-04-13T12:38:40+00:00</updated>
<entry>
<title>added scrollback patch</title>
<updated>2026-04-13T12:38:40+00:00</updated>
<author>
<name>Mouad Alami</name>
<email>mouad@alami.xyz</email>
</author>
<published>2026-04-13T12:38:40+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=2150d5e4f7e340313b32920976606d17776b8da2'/>
<id>urn:sha1:2150d5e4f7e340313b32920976606d17776b8da2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>st: guard tsetdirt() against zero-sized terminal</title>
<updated>2026-01-16T13:12:07+00:00</updated>
<author>
<name>Milos Nikic</name>
<email>nikic.milos@gmail.com</email>
</author>
<published>2026-01-15T05:00:32+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=688f70add0d1da8a416bf7df763328d694a24a3a'/>
<id>urn:sha1:688f70add0d1da8a416bf7df763328d694a24a3a</id>
<content type='text'>
tsetdirt() assumes term.row &gt; 0. During early init or
resize paths this may not hold, leading to out-of-bounds
access. Bail out early if there are no rows.
</content>
</entry>
<entry>
<title>Disable bracked paste in reset</title>
<updated>2025-12-02T19:09:47+00:00</updated>
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.net</email>
</author>
<published>2025-11-28T15:31:59+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=0723b7e39e73b2bcfce047b047f6e795d6184028'/>
<id>urn:sha1:0723b7e39e73b2bcfce047b047f6e795d6184028</id>
<content type='text'>
Sadly, there are too many programs today that enable this mode
and it is becoming very common to find the terminal adding
characters before and after in every of your pastes. A reset
should disable this mode.
</content>
</entry>
<entry>
<title>add a few comments</title>
<updated>2025-08-09T12:22:28+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2025-08-09T10:57:30+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=5a4666c19e3956069147aee43a06b326d998366e'/>
<id>urn:sha1:5a4666c19e3956069147aee43a06b326d998366e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support OSC 110, 111, and 112 for resetting colors</title>
<updated>2025-08-09T10:34:01+00:00</updated>
<author>
<name>Ayman Bagabas</name>
<email>ayman.bagabas@gmail.com</email>
</author>
<published>2025-08-08T21:11:59+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=d6c431859c6c0201e0668ed24a9f17cebf0a68f5'/>
<id>urn:sha1:d6c431859c6c0201e0668ed24a9f17cebf0a68f5</id>
<content type='text'>
This adds support for OSC 110, 111, and 112 escape sequences to reset
the foreground, background, and cursor colors in the terminal. The
changes include handling these sequences in the `strhandle` function of
`st.c`, allowing applications to reset colors to their default values.

The OSC sequences originated from Xterm control sequences and are now
widely used in terminal applications and supported by many terminal
emulators. For applications, this allows them to reset colors to
default values without needing to know the colors beforehand.

Signed-off-by: Ayman Bagabas &lt;ayman.bagabas@gmail.com&gt;
</content>
</entry>
<entry>
<title>Eat up "CSI 58" sequences</title>
<updated>2025-07-27T18:06:54+00:00</updated>
<author>
<name>sasha</name>
<email>sasha.code@posteo.mx</email>
</author>
<published>2025-07-27T05:43:47+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=f114bcedd113017d907aad32031db92c050f4bf3'/>
<id>urn:sha1:f114bcedd113017d907aad32031db92c050f4bf3</id>
<content type='text'>
This is used in the wild by systemd systemctl for example and st
misinterpreted it as "blink", because it didn't know "58", then saw "5"
as "blink", and then didn't know "245".

This should print "foo" as normal text:

    printf '\e[58:5:245mfoo\n'
    printf '\e[58:2:50:100:200mfoo\n'
</content>
</entry>
<entry>
<title>Do not interpret CSI ? u as DECRC</title>
<updated>2025-01-30T16:50:37+00:00</updated>
<author>
<name>Johannes Altmanninger</name>
<email>aclopte@gmail.com</email>
</author>
<published>2025-01-26T12:40:57+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=98610fcd37f655d44586323dc86c1d013c2798ce'/>
<id>urn:sha1:98610fcd37f655d44586323dc86c1d013c2798ce</id>
<content type='text'>
The kitty keyboard protocol docs recommend CSI ? u to query support for
that protocol, see https://sw.kovidgoyal.net/kitty/keyboard-protocol/

For better or worse, fish shell uses this query to work around bugs
in other terminals triggered by requesting that protocol via CSI = 5 u.

Unfortunately, st interprets CSI ? u as DECRC (restore cursor
position). reproduce with 'printf "\x1b[?u"; cat'.

fish could work around this by switching to the alternate screen
before running this query; but that might cause tearing on terminals
that don't support Synchronized Output. I'm not sure.

In the meantime, let's correct our parser.

This adds a redundant else-after-return, for consistency with the
surrounding code.
</content>
</entry>
<entry>
<title>Clear screen: Fix edge case</title>
<updated>2024-12-06T12:42:50+00:00</updated>
<author>
<name>Markus Rinne</name>
<email>markus.ka.rinne@gmail.com</email>
</author>
<published>2024-11-25T11:31:56+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=6009e6e25bdff9548f085e9ae562b1ca305d3a0b'/>
<id>urn:sha1:6009e6e25bdff9548f085e9ae562b1ca305d3a0b</id>
<content type='text'>
With sequence \e[1J, if cursor is on second line, clear the first line.
</content>
</entry>
<entry>
<title>support colons in SGR character attributes</title>
<updated>2024-05-01T18:45:39+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-05-01T18:45:39+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=5dbcca49263be094fc38159c297458ae323ef647'/>
<id>urn:sha1:5dbcca49263be094fc38159c297458ae323ef647</id>
<content type='text'>
Patch by Mikhail Kot &lt;to@myrrc.dev&gt;
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).
</content>
</entry>
<entry>
<title>Revert "Fix cursor move with wide glyphs"</title>
<updated>2024-03-30T11:37:06+00:00</updated>
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<published>2024-03-30T11:30:49+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.mouadalami.xyz/st.git/commit/?id=8c68ec52419f3f965164cafcf589b87e8961348d'/>
<id>urn:sha1:8c68ec52419f3f965164cafcf589b87e8961348d</id>
<content type='text'>
This reverts commit 7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5.

This patch needs some more work. It caused regressions with programs that use
GNU readline, etc.

Original test-case example from Tim Culverhouse &lt;tim@timculverhouse.com&gt;:

	printf " 😀" &amp;&amp; sleep 2 &amp;&amp; printf "\e[D" &amp;&amp; sleep 2 &amp;&amp; printf "\e[D" &amp;&amp; sleep 2

After the patch it caused regressions, example test-case:

	printf "A字\bB\n"
</content>
</entry>
</feed>
