<feed xmlns='http://www.w3.org/2005/Atom'>
<title>st.git/st.c, branch master</title>
<subtitle>My st repo forked from Luke Smith's Larbs.
</subtitle>
<id>https://git.kolset.xyz/st.git/atom?h=master</id>
<link rel='self' href='https://git.kolset.xyz/st.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/'/>
<updated>2026-04-09T16:58:42Z</updated>
<entry>
<title>Fix "Did not detect DSR response"</title>
<updated>2026-04-09T16:58:42Z</updated>
<author>
<name>Max Troeger</name>
<email>max@maxtroeger.xyz</email>
</author>
<published>2026-04-09T16:58:42Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=2c5b9ac2a1d14d97ef49fc6bf7580616bc2e90bf'/>
<id>urn:sha1:2c5b9ac2a1d14d97ef49fc6bf7580616bc2e90bf</id>
<content type='text'>
Neovim's v0.12 upgrade causes the following error: https://github.com/neovim/neovim/discussions/38151 when using Luke's st fork.

Applying the following patch fixes this error: https://git.suckless.org/st/commit/f17abd25b376c292f783062ecf821453eaa9cc4c.html#h0-0-3</content>
</entry>
<entry>
<title>Fix indentation</title>
<updated>2023-07-27T12:46:44Z</updated>
<author>
<name>Christopher Lang</name>
<email>christopher.lang.256@gmail.com</email>
</author>
<published>2023-07-27T12:46:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=028aeda9fc3c45022e581a3c89cbff95703bbf24'/>
<id>urn:sha1:028aeda9fc3c45022e581a3c89cbff95703bbf24</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'master' of https://git.suckless.org/st</title>
<updated>2022-09-20T12:20:42Z</updated>
<author>
<name>Luke Smith</name>
<email>luke@lukesmith.xyz</email>
</author>
<published>2022-09-20T12:20:42Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=401b6f73f0ebfa3c834c649820048d2d1d678284'/>
<id>urn:sha1:401b6f73f0ebfa3c834c649820048d2d1d678284</id>
<content type='text'>
</content>
</entry>
<entry>
<title>st: use `void' to indicate an empty parameter list</title>
<updated>2022-08-18T15:14:10Z</updated>
<author>
<name>Tom Schwindl</name>
<email>schwindl@posteo.de</email>
</author>
<published>2022-08-18T14:55:19Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=72fd32736a612edec43596c14148322122a5544d'/>
<id>urn:sha1:72fd32736a612edec43596c14148322122a5544d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge latest suckless build into lukesmith-0.8.5</title>
<updated>2022-08-15T04:54:18Z</updated>
<author>
<name>Spenser Truex</name>
<email>truex@equwal.com</email>
</author>
<published>2022-08-15T04:20:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=f5b5452eac468760c2972daf184f18e16f03d1ff'/>
<id>urn:sha1:f5b5452eac468760c2972daf184f18e16f03d1ff</id>
<content type='text'>
Includes the 0.8.5 version bump, which is great since many of the
patches have already been updated to here too.
</content>
</entry>
<entry>
<title>code-golfing: cleanup osc color related code</title>
<updated>2022-04-19T09:43:37Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2022-01-07T17:21:04Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=8629d9a1da72cc18568a8f146307b0e939b77ebf'/>
<id>urn:sha1:8629d9a1da72cc18568a8f146307b0e939b77ebf</id>
<content type='text'>
* adds missing function prototype
* move xgetcolor() prototype to win.h (that's where all the other x.c
  func prototype seems to be declared at)
* check for snprintf error/truncation
* reduces code duplication for osc 10/11/12
* unify osc_color_response() and osc4_color_response() into a single function

the latter two was suggested by Quentin Rameau in his patch review on
the hackers list.
</content>
</entry>
<entry>
<title>base64_digits: reduce scope, implicit zero, +1 size</title>
<updated>2022-03-18T11:20:27Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2022-03-18T11:03:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=ef0551932fb162f907b40185d2f48c3b497708ee'/>
<id>urn:sha1:ef0551932fb162f907b40185d2f48c3b497708ee</id>
<content type='text'>
the array is not accessed outside of base64dec() so it makes sense to
limit it's scope to the related function. the static-storage duration of
the array is kept intact.

this also removes unnecessary explicit zeroing from the start and end of
the array. anything that wasn't explicitly zero-ed will now be
implicitly zero-ed instead.

the validity of the new array can be easily confirmed via running this
trivial loop:

	for (int i = 0; i &lt; 255; ++i)
		assert(base64_digits[i] == base64_digits_old[i]);

lastly, as pointed out by Roberto, the array needs to have 256 elements
in order to able access it as any unsigned char as an index; the
previous array had 255.

however, this array will only be accessed at indexes which are
isprint() || '=' (see `base64dec_getc()`), so reducing the size of the
array to the highest printable ascii char (127 AFAIK) + 1 might also be
a valid strategy.
</content>
</entry>
<entry>
<title>avoid potential UB when using isprint()</title>
<updated>2022-03-18T11:11:27Z</updated>
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<published>2022-03-18T10:20:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=af3bb68add1c40d19d0dee382009e21b0870a38f'/>
<id>urn:sha1:af3bb68add1c40d19d0dee382009e21b0870a38f</id>
<content type='text'>
all the ctype.h functions' argument must be representable as an unsigned
char or as EOF, otherwise the behavior is undefined.
</content>
</entry>
<entry>
<title>Delay redrawals on palette changes</title>
<updated>2022-02-18T12:03:37Z</updated>
<author>
<name>Santtu Lakkala</name>
<email>inz@inz.fi</email>
</author>
<published>2022-02-17T14:00:47Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=e823e2308f2a99023032a3966ebb7036a31d305f'/>
<id>urn:sha1:e823e2308f2a99023032a3966ebb7036a31d305f</id>
<content type='text'>
Build on auto-sync and only mark window dirty on palette changes and let
the event handler do the actual draw.
</content>
</entry>
<entry>
<title>Fix overtyping wide characters.</title>
<updated>2021-12-30T17:37:17Z</updated>
<author>
<name>jamin</name>
<email>acdimalev@gmail.com</email>
</author>
<published>2021-12-29T17:07:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/st.git/commit/?id=65f1dc428315ae9d7f362e10c668557c1379e7af'/>
<id>urn:sha1:65f1dc428315ae9d7f362e10c668557c1379e7af</id>
<content type='text'>
Overtyping the first half of a wide character with the
second half of a wide character results in display garbage.
This is because the trailing dummy is not cleaned up.

i.e.  ATTR_WIDE, ATTR_WDUMMY, ATTR_WDUMMY

Here is a short script for demonstrating the behavior:

	#!/bin/sh
	alias printf=/usr/bin/printf
	printf こんにちは！; sleep 2
	printf '\x1b[5D'; sleep 2
	printf へ; sleep 2
	printf ' '; sleep 2
	echo
</content>
</entry>
</feed>
