<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>st, branch HEAD</title>
<subtitle>simple terminal</subtitle>
<entry>
<id>439560b5d731cd2ccd8ba02f0badbfa5f55ec675</id>
<published>2026-02-06T17:47:34Z</published>
<updated>2026-02-06T17:47:34Z</updated>
<title>send keybinding to tmux for selecting sessions</title>
<link rel="alternate" type="text/html" href="commit/439560b5d731cd2ccd8ba02f0badbfa5f55ec675.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 439560b5d731cd2ccd8ba02f0badbfa5f55ec675
parent 6ac2d7b652f3aa64de1cccfa3057eadd929ab7c9
Author: Jul &lt;jul@9o.is&gt;
Date:   Fri,  6 Feb 2026 12:47:34 -0500

send keybinding to tmux for selecting sessions

</content>
</entry>
<entry>
<id>6ac2d7b652f3aa64de1cccfa3057eadd929ab7c9</id>
<published>2026-02-06T16:23:03Z</published>
<updated>2026-02-06T16:23:03Z</updated>
<title>bind tmux angle brackets</title>
<link rel="alternate" type="text/html" href="commit/6ac2d7b652f3aa64de1cccfa3057eadd929ab7c9.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 6ac2d7b652f3aa64de1cccfa3057eadd929ab7c9
parent 923530ba596bd0b9282ad7d7401cb3c2a97d3ab3
Author: Jul &lt;jul@9o.is&gt;
Date:   Fri,  6 Feb 2026 11:23:03 -0500

bind tmux angle brackets

</content>
</entry>
<entry>
<id>923530ba596bd0b9282ad7d7401cb3c2a97d3ab3</id>
<published>2026-02-06T15:40:18Z</published>
<updated>2026-02-06T15:40:18Z</updated>
<title>run tmux-session when trying to attach</title>
<link rel="alternate" type="text/html" href="commit/923530ba596bd0b9282ad7d7401cb3c2a97d3ab3.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 923530ba596bd0b9282ad7d7401cb3c2a97d3ab3
parent e546aecb24e07d3dfca7bc9a78792258b38fbe69
Author: Jul &lt;jul@9o.is&gt;
Date:   Fri,  6 Feb 2026 10:40:18 -0500

run tmux-session when trying to attach

</content>
</entry>
<entry>
<id>e546aecb24e07d3dfca7bc9a78792258b38fbe69</id>
<published>2026-02-06T13:11:29Z</published>
<updated>2026-02-06T13:11:29Z</updated>
<title>use tmuxmod for clipboard and zoom</title>
<link rel="alternate" type="text/html" href="commit/e546aecb24e07d3dfca7bc9a78792258b38fbe69.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit e546aecb24e07d3dfca7bc9a78792258b38fbe69
parent 72721bce4bb3fe6d3693c51a357de6025bea0c7b
Author: Jul &lt;jul@9o.is&gt;
Date:   Fri,  6 Feb 2026 08:11:29 -0500

use tmuxmod for clipboard and zoom

</content>
</entry>
<entry>
<id>72721bce4bb3fe6d3693c51a357de6025bea0c7b</id>
<published>2026-02-06T10:35:22Z</published>
<updated>2026-02-06T10:35:22Z</updated>
<title>bind tmux mapping of C-b b</title>
<link rel="alternate" type="text/html" href="commit/72721bce4bb3fe6d3693c51a357de6025bea0c7b.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 72721bce4bb3fe6d3693c51a357de6025bea0c7b
parent 785e14344a1219515382d9dde565c51535cd69fe
Author: Jul &lt;jul@9o.is&gt;
Date:   Fri,  6 Feb 2026 05:35:22 -0500

bind tmux mapping of C-b b

</content>
</entry>
<entry>
<id>785e14344a1219515382d9dde565c51535cd69fe</id>
<published>2026-01-26T13:59:42Z</published>
<updated>2026-01-26T13:59:42Z</updated>
<title>use arrow keys to switch tmux in-window panes</title>
<link rel="alternate" type="text/html" href="commit/785e14344a1219515382d9dde565c51535cd69fe.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 785e14344a1219515382d9dde565c51535cd69fe
parent c8275c92cd62533db66dcb25e67fb07bd631cd05
Author: Jul &lt;jul@9o.is&gt;
Date:   Mon, 26 Jan 2026 08:59:42 -0500

use arrow keys to switch tmux in-window panes

</content>
</entry>
<entry>
<id>c8275c92cd62533db66dcb25e67fb07bd631cd05</id>
<published>2026-01-26T09:39:08Z</published>
<updated>2026-01-26T09:39:08Z</updated>
<title>change to grayscale base colors</title>
<link rel="alternate" type="text/html" href="commit/c8275c92cd62533db66dcb25e67fb07bd631cd05.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit c8275c92cd62533db66dcb25e67fb07bd631cd05
parent 3772ab9f78639ff76ed3c28d27e4a341d32b116a
Author: Jul &lt;jul@9o.is&gt;
Date:   Mon, 26 Jan 2026 04:39:08 -0500

change to grayscale base colors

</content>
</entry>
<entry>
<id>3772ab9f78639ff76ed3c28d27e4a341d32b116a</id>
<published>2026-01-24T15:34:44Z</published>
<updated>2026-01-24T15:34:44Z</updated>
<title>add tmux bindings</title>
<link rel="alternate" type="text/html" href="commit/3772ab9f78639ff76ed3c28d27e4a341d32b116a.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 3772ab9f78639ff76ed3c28d27e4a341d32b116a
parent 2a8fdb8d7c2e0aae93428bcbe75d0389636eb99f
Author: Jul &lt;jul@9o.is&gt;
Date:   Sat, 24 Jan 2026 10:34:44 -0500

add tmux bindings

</content>
</entry>
<entry>
<id>2a8fdb8d7c2e0aae93428bcbe75d0389636eb99f</id>
<published>2026-01-24T13:20:28Z</published>
<updated>2026-01-24T13:20:28Z</updated>
<title>customize color scheme and font</title>
<link rel="alternate" type="text/html" href="commit/2a8fdb8d7c2e0aae93428bcbe75d0389636eb99f.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 2a8fdb8d7c2e0aae93428bcbe75d0389636eb99f
parent e04b7d92b430452a9d5130dc1b2b80058c6f9b3b
Author: Jul &lt;jul@9o.is&gt;
Date:   Sat, 24 Jan 2026 08:20:28 -0500

customize color scheme and font

</content>
</entry>
<entry>
<id>e04b7d92b430452a9d5130dc1b2b80058c6f9b3b</id>
<published>2025-07-15T19:58:15Z</published>
<updated>2025-07-15T19:58:15Z</updated>
<title>add scrollback mouse altscreen</title>
<link rel="alternate" type="text/html" href="commit/e04b7d92b430452a9d5130dc1b2b80058c6f9b3b.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit e04b7d92b430452a9d5130dc1b2b80058c6f9b3b
parent 4d620d59fff3ff465dea8e3ce11939dccd9003ef
Author: Jul &lt;jul@9o.is&gt;
Date:   Tue, 15 Jul 2025 15:58:15 -0400

add scrollback mouse altscreen

</content>
</entry>
<entry>
<id>4d620d59fff3ff465dea8e3ce11939dccd9003ef</id>
<published>2025-07-15T19:19:38Z</published>
<updated>2025-07-15T19:19:38Z</updated>
<title>adjust scrollback with floating point</title>
<link rel="alternate" type="text/html" href="commit/4d620d59fff3ff465dea8e3ce11939dccd9003ef.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 4d620d59fff3ff465dea8e3ce11939dccd9003ef
parent 9f88f4fbf145a831dd2da22a680874e3db775da1
Author: Jul &lt;jul@9o.is&gt;
Date:   Tue, 15 Jul 2025 15:19:38 -0400

adjust scrollback with floating point

</content>
</entry>
<entry>
<id>9f88f4fbf145a831dd2da22a680874e3db775da1</id>
<published>2025-07-15T17:21:37Z</published>
<updated>2025-07-15T17:21:37Z</updated>
<title>add scrollback with ringbuffer</title>
<link rel="alternate" type="text/html" href="commit/9f88f4fbf145a831dd2da22a680874e3db775da1.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 9f88f4fbf145a831dd2da22a680874e3db775da1
parent 7e6596f2974870e7e629be38f806a098ef3ba376
Author: Jul &lt;jul@9o.is&gt;
Date:   Tue, 15 Jul 2025 13:21:37 -0400

add scrollback with ringbuffer

</content>
</entry>
<entry>
<id>7e6596f2974870e7e629be38f806a098ef3ba376</id>
<published>2025-07-15T22:06:43Z</published>
<updated>2025-07-15T22:06:43Z</updated>
<title>add dynamic cursor color patch</title>
<link rel="alternate" type="text/html" href="commit/7e6596f2974870e7e629be38f806a098ef3ba376.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 7e6596f2974870e7e629be38f806a098ef3ba376
parent 0b6b343e49934c35692117a33974f14f85f67f6e
Author: Jul &lt;jul@9o.is&gt;
Date:   Tue, 15 Jul 2025 18:06:43 -0400

add dynamic cursor color patch

</content>
</entry>
<entry>
<id>0b6b343e49934c35692117a33974f14f85f67f6e</id>
<published>2026-01-24T12:35:58Z</published>
<updated>2026-01-24T12:35:58Z</updated>
<title>commit config.h</title>
<link rel="alternate" type="text/html" href="commit/0b6b343e49934c35692117a33974f14f85f67f6e.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit 0b6b343e49934c35692117a33974f14f85f67f6e
parent fb18621e9be36a161235dfd228c9d6aa66ae0cf3
Author: Jul &lt;jul@9o.is&gt;
Date:   Sat, 24 Jan 2026 07:35:58 -0500

commit config.h

</content>
</entry>
<entry>
<id>fb18621e9be36a161235dfd228c9d6aa66ae0cf3</id>
<published>2026-01-24T12:32:51Z</published>
<updated>2026-01-24T12:32:51Z</updated>
<title>gitignore st binary and object files</title>
<link rel="alternate" type="text/html" href="commit/fb18621e9be36a161235dfd228c9d6aa66ae0cf3.html" />
<author>
<name>Jul</name>
<email>jul@9o.is</email>
</author>
<content>commit fb18621e9be36a161235dfd228c9d6aa66ae0cf3
parent 2d6bc3bf13acb80447c5b4bba416c45fa7cb6af6
Author: Jul &lt;jul@9o.is&gt;
Date:   Sat, 24 Jan 2026 07:32:51 -0500

gitignore st binary and object files

</content>
</entry>
<entry>
<id>2d6bc3bf13acb80447c5b4bba416c45fa7cb6af6</id>
<published>2026-01-15T05:00:32Z</published>
<updated>2026-01-15T05:00:32Z</updated>
<title>st: guard tsetdirt() against zero-sized terminal</title>
<link rel="alternate" type="text/html" href="commit/2d6bc3bf13acb80447c5b4bba416c45fa7cb6af6.html" />
<author>
<name>Milos Nikic</name>
<email>nikic.milos@gmail.com</email>
</author>
<content>commit 2d6bc3bf13acb80447c5b4bba416c45fa7cb6af6
parent 4c4b1a1ce96e5d4b2db89d760cdfd9f46f57d30a
Author: Milos Nikic &lt;nikic.milos@gmail.com&gt;
Date:   Wed, 14 Jan 2026 21:00:32 -0800

st: guard tsetdirt() against zero-sized terminal

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>
<id>4c4b1a1ce96e5d4b2db89d760cdfd9f46f57d30a</id>
<published>2025-11-28T15:31:59Z</published>
<updated>2025-11-28T15:31:59Z</updated>
<title>Disable bracked paste in reset</title>
<link rel="alternate" type="text/html" href="commit/4c4b1a1ce96e5d4b2db89d760cdfd9f46f57d30a.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.net</email>
</author>
<content>commit 4c4b1a1ce96e5d4b2db89d760cdfd9f46f57d30a
parent cbcc5351de9f27d94c0f14f37152e15242117437
Author: Roberto E. Vargas Caballero &lt;k0ga@shike2.net&gt;
Date:   Fri, 28 Nov 2025 16:31:59 +0100

Disable bracked paste in reset

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>
<id>cbcc5351de9f27d94c0f14f37152e15242117437</id>
<published>2025-08-09T12:35:14Z</published>
<updated>2025-08-09T12:35:14Z</updated>
<title>bump version to 0.9.3</title>
<link rel="alternate" type="text/html" href="commit/cbcc5351de9f27d94c0f14f37152e15242117437.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit cbcc5351de9f27d94c0f14f37152e15242117437
parent 2826ec27dc29dc73ab428118a7a0dc98281006b6
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat,  9 Aug 2025 14:35:14 +0200

bump version to 0.9.3

</content>
</entry>
<entry>
<id>2826ec27dc29dc73ab428118a7a0dc98281006b6</id>
<published>2025-08-09T10:57:30Z</published>
<updated>2025-08-09T10:57:30Z</updated>
<title>add a few comments</title>
<link rel="alternate" type="text/html" href="commit/2826ec27dc29dc73ab428118a7a0dc98281006b6.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 2826ec27dc29dc73ab428118a7a0dc98281006b6
parent fe4b367ba0d579ab6a74dab5443bad81a66f1068
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat,  9 Aug 2025 12:57:30 +0200

add a few comments

</content>
</entry>
<entry>
<id>fe4b367ba0d579ab6a74dab5443bad81a66f1068</id>
<published>2025-08-08T21:11:59Z</published>
<updated>2025-08-08T21:11:59Z</updated>
<title>Support OSC 110, 111, and 112 for resetting colors</title>
<link rel="alternate" type="text/html" href="commit/fe4b367ba0d579ab6a74dab5443bad81a66f1068.html" />
<author>
<name>Ayman Bagabas</name>
<email>ayman.bagabas@gmail.com</email>
</author>
<content>commit fe4b367ba0d579ab6a74dab5443bad81a66f1068
parent 6cbd9d7534fda3b9dbb60f4c224856313dfb8f5a
Author: Ayman Bagabas &lt;ayman.bagabas@gmail.com&gt;
Date:   Fri,  8 Aug 2025 17:11:59 -0400

Support OSC 110, 111, and 112 for resetting colors

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>
<id>6cbd9d7534fda3b9dbb60f4c224856313dfb8f5a</id>
<published>2025-07-27T05:43:47Z</published>
<updated>2025-07-27T05:43:47Z</updated>
<title>Eat up &quot;CSI 58&quot; sequences</title>
<link rel="alternate" type="text/html" href="commit/6cbd9d7534fda3b9dbb60f4c224856313dfb8f5a.html" />
<author>
<name>sasha</name>
<email>sasha.code@posteo.mx</email>
</author>
<content>commit 6cbd9d7534fda3b9dbb60f4c224856313dfb8f5a
parent 58705b2db6407bb9df5f980b41b9bd8fbaab0d21
Author: sasha &lt;sasha.code@posteo.mx&gt;
Date:   Sun, 27 Jul 2025 05:43:47 +0000

Eat up &quot;CSI 58&quot; sequences

This is used in the wild by systemd systemctl for example and st
misinterpreted it as &quot;blink&quot;, because it didn&#39;t know &quot;58&quot;, then saw &quot;5&quot;
as &quot;blink&quot;, and then didn&#39;t know &quot;245&quot;.

This should print &quot;foo&quot; as normal text:

    printf &#39;\e[58:5:245mfoo\n&#39;
    printf &#39;\e[58:2:50:100:200mfoo\n&#39;

</content>
</entry>
<entry>
<id>58705b2db6407bb9df5f980b41b9bd8fbaab0d21</id>
<published>2025-01-26T12:40:57Z</published>
<updated>2025-01-26T12:40:57Z</updated>
<title>Do not interpret CSI ? u as DECRC</title>
<link rel="alternate" type="text/html" href="commit/58705b2db6407bb9df5f980b41b9bd8fbaab0d21.html" />
<author>
<name>Johannes Altmanninger</name>
<email>aclopte@gmail.com</email>
</author>
<content>commit 58705b2db6407bb9df5f980b41b9bd8fbaab0d21
parent 92fa4bee6448df2dbe6f8f6efbcd7f826cd03f23
Author: Johannes Altmanninger &lt;aclopte@gmail.com&gt;
Date:   Sun, 26 Jan 2025 13:40:57 +0100

Do not interpret CSI ? u as DECRC

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 &#39;printf &quot;\x1b[?u&quot;; cat&#39;.

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

In the meantime, let&#39;s correct our parser.

This adds a redundant else-after-return, for consistency with the
surrounding code.

</content>
</entry>
<entry>
<id>92fa4bee6448df2dbe6f8f6efbcd7f826cd03f23</id>
<published>2024-11-25T11:31:56Z</published>
<updated>2024-11-25T11:31:56Z</updated>
<title>Clear screen: Fix edge case</title>
<link rel="alternate" type="text/html" href="commit/92fa4bee6448df2dbe6f8f6efbcd7f826cd03f23.html" />
<author>
<name>Markus Rinne</name>
<email>markus.ka.rinne@gmail.com</email>
</author>
<content>commit 92fa4bee6448df2dbe6f8f6efbcd7f826cd03f23
parent 392e0140a424cbf414a0b7a1cbbc6dbb2442657d
Author: Markus Rinne &lt;markus.ka.rinne@gmail.com&gt;
Date:   Mon, 25 Nov 2024 13:31:56 +0200

Clear screen: Fix edge case

With sequence \e[1J, if cursor is on second line, clear the first line.

</content>
</entry>
<entry>
<id>392e0140a424cbf414a0b7a1cbbc6dbb2442657d</id>
<published>2024-08-09T11:33:47Z</published>
<updated>2024-08-09T11:33:47Z</updated>
<title>fix BadMatch error when embedding on some windows</title>
<link rel="alternate" type="text/html" href="commit/392e0140a424cbf414a0b7a1cbbc6dbb2442657d.html" />
<author>
<name>Lucas de Sena</name>
<email>lucas@seninha.org</email>
</author>
<content>commit 392e0140a424cbf414a0b7a1cbbc6dbb2442657d
parent 6d9ca22f3c762dca644aa72c1879625c1d60ed44
Author: Lucas de Sena &lt;lucas@seninha.org&gt;
Date:   Fri,  9 Aug 2024 13:33:47 +0200

fix BadMatch error when embedding on some windows

When embedded, st fails with BadMatch error if the embedder&#39;s window has
non-default colormap/depth/visual.  This commit fixes that by creating
st&#39;s window inside root and then reparent it into embedder.

The reference window for dc.gc is also changed to match root&#39;s visuals.

A similar commit had been made for dmenu[1].
See this issue[2] on github for context.

[1]: https://git.suckless.org/dmenu/commit/0fe460dbd469a1d5b6a7140d0e1801935e4a923b.html
[2]: https://github.com/phillbush/xfiles/issues/47

</content>
</entry>
<entry>
<id>6d9ca22f3c762dca644aa72c1879625c1d60ed44</id>
<published>2024-05-01T18:45:39Z</published>
<updated>2024-05-01T18:45:39Z</updated>
<title>support colons in SGR character attributes</title>
<link rel="alternate" type="text/html" href="commit/6d9ca22f3c762dca644aa72c1879625c1d60ed44.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 6d9ca22f3c762dca644aa72c1879625c1d60ed44
parent dd5ead3aca00c720291b2909928a19eeb30cb4af
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Wed,  1 May 2024 20:45:39 +0200

support colons in SGR character attributes

Patch by Mikhail Kot &lt;to@myrrc.dev&gt;
With some modifications to behave more like xterm (see note below).

Example:

	printf &#39;\033[48;2;255:0:0mtest\n&#39;

https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

Some notes:

&quot;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>
<id>dd5ead3aca00c720291b2909928a19eeb30cb4af</id>
<published>2024-04-05T10:18:41Z</published>
<updated>2024-04-05T10:18:41Z</updated>
<title>bump version to 0.9.2</title>
<link rel="alternate" type="text/html" href="commit/dd5ead3aca00c720291b2909928a19eeb30cb4af.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit dd5ead3aca00c720291b2909928a19eeb30cb4af
parent 5c1f8b7468306298d8c9c29fdda6593b66180925
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Fri,  5 Apr 2024 12:18:41 +0200

bump version to 0.9.2

</content>
</entry>
<entry>
<id>5c1f8b7468306298d8c9c29fdda6593b66180925</id>
<published>2024-04-03T17:48:11Z</published>
<updated>2024-04-03T17:48:11Z</updated>
<title>Reset title when an empty title string is given</title>
<link rel="alternate" type="text/html" href="commit/5c1f8b7468306298d8c9c29fdda6593b66180925.html" />
<author>
<name>DOGMAN</name>
<email>dogman@aaathats3as.com</email>
</author>
<content>commit 5c1f8b7468306298d8c9c29fdda6593b66180925
parent 64307a33333e42327d44a78181fac8e3b3d2eba6
Author: DOGMAN &lt;dogman@aaathats3as.com&gt;
Date:   Wed,  3 Apr 2024 19:48:11 +0200

Reset title when an empty title string is given

With this patch, st will reset its window title when an empty string is
given as the terminal title. For example:
	printf &quot;\033]0;\007&quot;

Some applications, like termdown, expect this functionality. xterm
implements it, but it seems that most other terminal emulators don&#39;t.
In any case, I don&#39;t see why there should ever be a case where the st
window doesn&#39;t have a title property.

</content>
</entry>
<entry>
<id>64307a33333e42327d44a78181fac8e3b3d2eba6</id>
<published>2024-03-30T11:30:49Z</published>
<updated>2024-03-30T11:30:49Z</updated>
<title>Revert &quot;Fix cursor move with wide glyphs&quot;</title>
<link rel="alternate" type="text/html" href="commit/64307a33333e42327d44a78181fac8e3b3d2eba6.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 64307a33333e42327d44a78181fac8e3b3d2eba6
parent e25ebb836156f570945721dca8b6f3fd336cadb4
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 30 Mar 2024 12:30:49 +0100

Revert &quot;Fix cursor move with wide glyphs&quot;

This reverts commit 8ccab2e68b15e8396effc21fa2ae509b140d7639.

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 &quot; 😀&quot; &amp;&amp; sleep 2 &amp;&amp; printf &quot;\e[D&quot; &amp;&amp; sleep 2 &amp;&amp; printf &quot;\e[D&quot; &amp;&amp; sleep 2

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

	printf &quot;A字\bB\n&quot;

</content>
</entry>
<entry>
<id>e25ebb836156f570945721dca8b6f3fd336cadb4</id>
<published>2024-03-19T11:13:42Z</published>
<updated>2024-03-19T11:13:42Z</updated>
<title>bump version to 0.9.1</title>
<link rel="alternate" type="text/html" href="commit/e25ebb836156f570945721dca8b6f3fd336cadb4.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit e25ebb836156f570945721dca8b6f3fd336cadb4
parent d76f159d0218d218fe0f352e07da72ae1fe7a1bc
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Tue, 19 Mar 2024 12:13:42 +0100

bump version to 0.9.1

</content>
</entry>
<entry>
<id>d76f159d0218d218fe0f352e07da72ae1fe7a1bc</id>
<published>2024-03-17T13:42:44Z</published>
<updated>2024-03-17T13:42:44Z</updated>
<title>config.def.h: improve latency for the default configuration</title>
<link rel="alternate" type="text/html" href="commit/d76f159d0218d218fe0f352e07da72ae1fe7a1bc.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit d76f159d0218d218fe0f352e07da72ae1fe7a1bc
parent 33dfe877d83ba079a6d26cf40e3191396c38393f
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 17 Mar 2024 14:42:44 +0100

config.def.h: improve latency for the default configuration

</content>
</entry>
<entry>
<id>33dfe877d83ba079a6d26cf40e3191396c38393f</id>
<published>2024-03-04T10:56:30Z</published>
<updated>2024-03-04T10:56:30Z</updated>
<title>set upper limit for REP escape sequence argument</title>
<link rel="alternate" type="text/html" href="commit/33dfe877d83ba079a6d26cf40e3191396c38393f.html" />
<author>
<name>Tommi Hirvola</name>
<email>tommi@hirvola.fi</email>
</author>
<content>commit 33dfe877d83ba079a6d26cf40e3191396c38393f
parent 8ccab2e68b15e8396effc21fa2ae509b140d7639
Author: Tommi Hirvola &lt;tommi@hirvola.fi&gt;
Date:   Mon,  4 Mar 2024 12:56:30 +0200

set upper limit for REP escape sequence argument

Previously, printf &#39;L\033[2147483647b&#39; would call tputc(&#39;L&#39;) 2^31 times,
making st unresponsive. This commit allows repeating the last character
at most 65535 times in order to prevent freezing and DoS attacks.

</content>
</entry>
<entry>
<id>8ccab2e68b15e8396effc21fa2ae509b140d7639</id>
<published>2024-02-25T00:31:31Z</published>
<updated>2024-02-25T00:31:31Z</updated>
<title>Fix cursor move with wide glyphs</title>
<link rel="alternate" type="text/html" href="commit/8ccab2e68b15e8396effc21fa2ae509b140d7639.html" />
<author>
<name>Quentin Rameau</name>
<email>quinq@fifth.space</email>
</author>
<content>commit 8ccab2e68b15e8396effc21fa2ae509b140d7639
parent be5ad5cb8982511d6e32fced9796c5e510851110
Author: Quentin Rameau &lt;quinq@fifth.space&gt;
Date:   Sun, 25 Feb 2024 01:31:31 +0100

Fix cursor move with wide glyphs

st would always move back 1 column,
even with wide glyhps (using more than a single column).

The glyph rune is set on its first column,
and the other ones are to 0,
so loop until we detect the start of the previous glyph.

</content>
</entry>
<entry>
<id>be5ad5cb8982511d6e32fced9796c5e510851110</id>
<published>2024-02-18T12:56:49Z</published>
<updated>2024-02-18T12:56:49Z</updated>
<title>csi: check for private marker in &#39;S&#39; case</title>
<link rel="alternate" type="text/html" href="commit/be5ad5cb8982511d6e32fced9796c5e510851110.html" />
<author>
<name>Tim Culverhouse</name>
<email>tim@timculverhouse.com</email>
</author>
<content>commit be5ad5cb8982511d6e32fced9796c5e510851110
parent 2fda306ca4cbb474fcbe968ebdc1ee798fed1b2e
Author: Tim Culverhouse &lt;tim@timculverhouse.com&gt;
Date:   Sun, 18 Feb 2024 06:56:49 -0600

csi: check for private marker in &#39;S&#39; case

The handler for &#39;S&#39; final character does not check for a private
marker. This can cause a conflict with a sequence called &#39;XTSMGRAPHICS&#39;
which also has an &#39;S&#39; final character, but uses the private marker &#39;?&#39;.
Without checking for a private marker, st will perform a scroll up
operation when XTSMGRAPHICS is seen, which can cause unexpected display
artifacts.

</content>
</entry>
<entry>
<id>2fda306ca4cbb474fcbe968ebdc1ee798fed1b2e</id>
<published>2023-10-07T05:41:02Z</published>
<updated>2023-10-07T05:41:02Z</updated>
<title>Add terminfo entries for bracketed paste mode</title>
<link rel="alternate" type="text/html" href="commit/2fda306ca4cbb474fcbe968ebdc1ee798fed1b2e.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 2fda306ca4cbb474fcbe968ebdc1ee798fed1b2e
parent 31b067659ca59ab784452dde992e30a8f2dfc44b
Author: Peter Hofmann &lt;scm@uninformativ.de&gt;
Date:   Sat,  7 Oct 2023 07:41:02 +0200

Add terminfo entries for bracketed paste mode

Helps Vim (and hopefully others) to discover that this feature exists
without further user configuration.

</content>
</entry>
<entry>
<id>31b067659ca59ab784452dde992e30a8f2dfc44b</id>
<published>2023-10-07T05:40:45Z</published>
<updated>2023-10-07T05:40:45Z</updated>
<title>Unhide cursor on RIS (\033c)</title>
<link rel="alternate" type="text/html" href="commit/31b067659ca59ab784452dde992e30a8f2dfc44b.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 31b067659ca59ab784452dde992e30a8f2dfc44b
parent b1ec69a0b6ca525ef20856e2839442fbe551c0ed
Author: Peter Hofmann &lt;scm@uninformativ.de&gt;
Date:   Sat,  7 Oct 2023 07:40:45 +0200

Unhide cursor on RIS (\033c)

It is unclear if it&#39;s &quot;required&quot; to do this on RIS, but it&#39;s useful when
calling reset(1) after interactive programs have crashed and garbled up
the screen.

FWIW, other terminals do it as well (tested with XTerm, VTE, Kitty,
Alacritty, Linux VT).

</content>
</entry>
<entry>
<id>b1ec69a0b6ca525ef20856e2839442fbe551c0ed</id>
<published>2023-10-07T05:40:39Z</published>
<updated>2023-10-07T05:40:39Z</updated>
<title>Fix wide glyphs breaking &quot;nowrap&quot; mode</title>
<link rel="alternate" type="text/html" href="commit/b1ec69a0b6ca525ef20856e2839442fbe551c0ed.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit b1ec69a0b6ca525ef20856e2839442fbe551c0ed
parent 174345bf419528624a251cf2f86f4b09b9b5ca44
Author: Peter Hofmann &lt;scm@uninformativ.de&gt;
Date:   Sat,  7 Oct 2023 07:40:39 +0200

Fix wide glyphs breaking &quot;nowrap&quot; mode

Consider the following example:

    printf &#39;\e[?7l&#39;;\
    for i in $(seq $(($(tput cols) - 1))); do printf a; done;\
    printf &#39;🙈\n&#39;;\
    printf &#39;\e[?7h&#39;

Even though MODE_WRAP has been disabled, the emoji appeared on the next
line. This patch keeps wide glyphs on the same line and moves them to
the right-most possible position.

</content>
</entry>
<entry>
<id>174345bf419528624a251cf2f86f4b09b9b5ca44</id>
<published>2023-10-07T05:40:07Z</published>
<updated>2023-10-07T05:40:07Z</updated>
<title>Don&#39;t scroll selection on the other screen</title>
<link rel="alternate" type="text/html" href="commit/174345bf419528624a251cf2f86f4b09b9b5ca44.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 174345bf419528624a251cf2f86f4b09b9b5ca44
parent 986bcb17d1ff59ffe0b65c4eaa340f8955035c3d
Author: Peter Hofmann &lt;scm@uninformativ.de&gt;
Date:   Sat,  7 Oct 2023 07:40:07 +0200

Don&#39;t scroll selection on the other screen

Fixes garbage selections when switching to/from the alternate screen.

How to reproduce:

-   Be in primary screen.
-   Select something.
-   Run this (switches to alternate screen, positions the cursor at the
    bottom, triggers selscroll(), and then goes back to primary screen):

        tput smcup; tput cup $(tput lines) 0; echo foo; tput rmcup

-   Notice how the (visual) selection now covers a different line.

The reason is that selscroll() calls selnormalize() and that cannot find
the original range anymore. It&#39;s all empty lines now, so it snaps to
&quot;select the whole line&quot;.

</content>
</entry>
<entry>
<id>986bcb17d1ff59ffe0b65c4eaa340f8955035c3d</id>
<published>2023-10-07T05:39:00Z</published>
<updated>2023-10-07T05:39:00Z</updated>
<title>Fix bounds checks of dc.col</title>
<link rel="alternate" type="text/html" href="commit/986bcb17d1ff59ffe0b65c4eaa340f8955035c3d.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 986bcb17d1ff59ffe0b65c4eaa340f8955035c3d
parent c212ee67346d0c3a4f69a064a1ad3b00f62b2f37
Author: Peter Hofmann &lt;scm@uninformativ.de&gt;
Date:   Sat,  7 Oct 2023 07:39:00 +0200

Fix bounds checks of dc.col

dc.collen is the length of dc.col, not the maximum index, hence if x is
equal to dc.collen, then it&#39;s an error.

With config.def.h, the last valid index is 259, so this correctly
reports &quot;black&quot;:

    $ printf &#39;\033]4;259;?\e\\&#39;

260 is an invalid index and this reports garbage instead of printing an
error:

    $ printf &#39;\033]4;260;?\e\\&#39;

</content>
</entry>
<entry>
<id>c212ee67346d0c3a4f69a064a1ad3b00f62b2f37</id>
<published>2023-09-22T13:16:52Z</published>
<updated>2023-09-22T13:16:52Z</updated>
<title>Makefile: remove the options target</title>
<link rel="alternate" type="text/html" href="commit/c212ee67346d0c3a4f69a064a1ad3b00f62b2f37.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit c212ee67346d0c3a4f69a064a1ad3b00f62b2f37
parent 1b58ae4a6888390bf763febf6b25a4e8145ba57a
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Fri, 22 Sep 2023 15:16:52 +0200

Makefile: remove the options target

The Makefile used to suppress output (by using @), so this target made sense at
the time.

But the Makefile should be simple and make debugging with less abstractions or
fancy printing.  The Makefile was made verbose and doesn&#39;t hide the build
output, so remove this target.

Prompted by a question on the mailing list about the options target.

</content>
</entry>
<entry>
<id>1b58ae4a6888390bf763febf6b25a4e8145ba57a</id>
<published>2023-06-25T05:38:33Z</published>
<updated>2023-06-25T05:38:33Z</updated>
<title>Fix for wide character being incorrectly cleared on MODE_INSERT</title>
<link rel="alternate" type="text/html" href="commit/1b58ae4a6888390bf763febf6b25a4e8145ba57a.html" />
<author>
<name>Shi Tian</name>
<email>shitian@cock.li</email>
</author>
<content>commit 1b58ae4a6888390bf763febf6b25a4e8145ba57a
parent a62a336dda608967b4d54141163c2320569cb959
Author: Shi Tian &lt;shitian@cock.li&gt;
Date:   Sun, 25 Jun 2023 05:38:33 +0000

Fix for wide character being incorrectly cleared on MODE_INSERT

Under insert mode, when inserting a normal character in front of
a wide character, the affected region is shifted to the right by
one cell. However, the empty cell is reset as if being a part of a
wide character, causing the following cell being mishandled as a
dummy cell.
To reproduce the bug:
	printf &#39;\033[4h&#39; # set MODE_INSERT
	printf 妳好
	printf &#39;\033[4D&#39;
	printf &#39;x&#39;
	printf &#39;\033[4l\n&#39;

</content>
</entry>
<entry>
<id>a62a336dda608967b4d54141163c2320569cb959</id>
<published>2023-02-07T19:00:59Z</published>
<updated>2023-02-07T19:00:59Z</updated>
<title>ignore C1 control characters in UTF-8 mode</title>
<link rel="alternate" type="text/html" href="commit/a62a336dda608967b4d54141163c2320569cb959.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit a62a336dda608967b4d54141163c2320569cb959
parent 5c20555db8fb7bb972d30158f23ba28549756227
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Tue,  7 Feb 2023 20:00:59 +0100

ignore C1 control characters in UTF-8 mode

Ignore processing and printing C1 control characters in UTF-8 mode.
These are in the range: 0x80 - 0x9f.

By default in st the mode is set to UTF-8.

This matches more the behaviour of xterm with the options -u8 or +u8 also.
Also see the xterm resource &quot;allowC1Printable&quot;.

Let me know if this breaks something, in most cases I don&#39;t think so.

As usual a very good reference is:
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

</content>
</entry>
<entry>
<id>5c20555db8fb7bb972d30158f23ba28549756227</id>
<published>2023-02-07T18:54:29Z</published>
<updated>2023-02-07T18:54:29Z</updated>
<title>Add support for DSR response &quot;OK&quot; escape sequence</title>
<link rel="alternate" type="text/html" href="commit/5c20555db8fb7bb972d30158f23ba28549756227.html" />
<author>
<name>Adam Price</name>
<email>komidore64@gmail.com</email>
</author>
<content>commit 5c20555db8fb7bb972d30158f23ba28549756227
parent ebe67d092bddc55a73f1e20c0e5dfb4274437c27
Author: Adam Price &lt;komidore64@gmail.com&gt;
Date:   Tue,  7 Feb 2023 19:54:29 +0100

Add support for DSR response &quot;OK&quot; escape sequence

&quot;VT100 defines an escape sequence [1] called Device Status Report (DSR). When
the DSR sequence received is `csi 5n`, an &quot;OK&quot; response `csi 0n` is returned.
This patch adds that &quot;OK&quot; response.

I encountered this missing sequence when I noticed that fzf [2] would clobber
my prompt whenever completing a find.

To test that ST doesn&#39;t currently respond to `csi 5n`, use fzf&#39;s shell
extension in ST&#39;s repo to complete the path for a file.

    my-fancy-prompt $ vim **&lt;tab&gt;
    &lt;select a file&gt;
    st.c

Select a file with &lt;enter&gt;, and notice that fzf clobbers some or all of your
prompt.

After applying this patch, do the same test as above and notice that fzf has no
longer clobbered your prompt by placing the file name in the correct position
in your command.

    my-fancy-prompt $ vim **&lt;tab&gt;
    &lt;select a file&gt;
    my-fancy prompt $ vim st.c

Thank you for considering my first patch submission.

[1] https://www.xfree86.org/current/ctlseqs.html#VT100%20Mode
[2] https://github.com/junegunn/fzf
&quot;

Patch slightly adapted with input from the mailinglist,

</content>
</entry>
<entry>
<id>ebe67d092bddc55a73f1e20c0e5dfb4274437c27</id>
<published>2023-02-05T12:29:35Z</published>
<updated>2023-02-05T12:29:35Z</updated>
<title>Fixed OSC color reset without parameter-&gt;resets all colors</title>
<link rel="alternate" type="text/html" href="commit/ebe67d092bddc55a73f1e20c0e5dfb4274437c27.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit ebe67d092bddc55a73f1e20c0e5dfb4274437c27
parent ec27a672246d3eb0a85bba7f6387b88d4f805867
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun,  5 Feb 2023 13:29:35 +0100

Fixed OSC color reset without parameter-&gt;resets all colors

Adapted from (garbled) patch by wim &lt;wim@thinkerwim.org&gt;

Additional notes: it should reset all the colors using xloadcols().
To reproduce: set a different (theme) color using some escape code, then reset
it:

	printf &#39;\x1b]104\x07&#39;

</content>
</entry>
<entry>
<id>ec27a672246d3eb0a85bba7f6387b88d4f805867</id>
<published>2022-10-25T15:11:11Z</published>
<updated>2022-10-25T15:11:11Z</updated>
<title>fix buffer overflow when handling long composed input</title>
<link rel="alternate" type="text/html" href="commit/ec27a672246d3eb0a85bba7f6387b88d4f805867.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit ec27a672246d3eb0a85bba7f6387b88d4f805867
parent 7fb9b74122e0f1625953dcff2cebac75c162f781
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Tue, 25 Oct 2022 17:11:11 +0200

fix buffer overflow when handling long composed input

To reproduce the issue:

&quot;
If you already have the multi-key enabled on your system, then add this line
to your ~/.XCompose file:

[...]
&lt;question&gt; &lt;T&gt; &lt;E&gt; &lt;S&gt; &lt;T&gt; &lt;question&gt; :
&quot;1234567890123456789012345678901234567890123456789012345678901234567890&quot;
&quot;

Reported by and an initial patch by Andy Gozas &lt;andy@gozas.me&gt;, thanks!

Adapted the patch, for now st (like dmenu) handles a fixed amount of composed
characters, or otherwise ignores it. This is done for simplicity sake.

</content>
</entry>
<entry>
<id>7fb9b74122e0f1625953dcff2cebac75c162f781</id>
<published>2022-10-04T17:40:30Z</published>
<updated>2022-10-04T17:40:30Z</updated>
<title>bump version to 0.9</title>
<link rel="alternate" type="text/html" href="commit/7fb9b74122e0f1625953dcff2cebac75c162f781.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7fb9b74122e0f1625953dcff2cebac75c162f781
parent 37697d8b4172bfdef098b0a020a2d2c928c58022
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Tue,  4 Oct 2022 19:40:30 +0200

bump version to 0.9

</content>
</entry>
<entry>
<id>37697d8b4172bfdef098b0a020a2d2c928c58022</id>
<published>2022-09-16T21:07:09Z</published>
<updated>2022-09-16T21:07:09Z</updated>
<title>FAQ: document the color emojis crash issue which affected some systems is fixed</title>
<link rel="alternate" type="text/html" href="commit/37697d8b4172bfdef098b0a020a2d2c928c58022.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 37697d8b4172bfdef098b0a020a2d2c928c58022
parent ead334ff2e198f8aba18bd53daab4e89eedcf331
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Fri, 16 Sep 2022 23:07:09 +0200

FAQ: document the color emojis crash issue which affected some systems is fixed

It is fixed in libXft 2.3.6:

https://gitlab.freedesktop.org/xorg/lib/libxft/-/blob/libXft-2.3.5/NEWS

</content>
</entry>
<entry>
<id>ead334ff2e198f8aba18bd53daab4e89eedcf331</id>
<published>2022-08-18T14:55:19Z</published>
<updated>2022-08-18T14:55:19Z</updated>
<title>st: use `void&#39; to indicate an empty parameter list</title>
<link rel="alternate" type="text/html" href="commit/ead334ff2e198f8aba18bd53daab4e89eedcf331.html" />
<author>
<name>Tom Schwindl</name>
<email>schwindl@posteo.de</email>
</author>
<content>commit ead334ff2e198f8aba18bd53daab4e89eedcf331
parent 8ee9fdb6c8292952d08d81b1fafcbdd62d5f119e
Author: Tom Schwindl &lt;schwindl@posteo.de&gt;
Date:   Thu, 18 Aug 2022 14:55:19 +0000

st: use `void&#39; to indicate an empty parameter list

</content>
</entry>
<entry>
<id>8ee9fdb6c8292952d08d81b1fafcbdd62d5f119e</id>
<published>2022-05-01T16:38:40Z</published>
<updated>2022-05-01T16:38:40Z</updated>
<title>Makefile: add manual path for OpenBSD</title>
<link rel="alternate" type="text/html" href="commit/8ee9fdb6c8292952d08d81b1fafcbdd62d5f119e.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 8ee9fdb6c8292952d08d81b1fafcbdd62d5f119e
parent 371028ef2bf4af1b9fe2112b8c7e90a25f47fa10
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun,  1 May 2022 18:38:40 +0200

Makefile: add manual path for OpenBSD

</content>
</entry>
<entry>
<id>371028ef2bf4af1b9fe2112b8c7e90a25f47fa10</id>
<published>2022-01-07T17:21:04Z</published>
<updated>2022-01-07T17:21:04Z</updated>
<title>code-golfing: cleanup osc color related code</title>
<link rel="alternate" type="text/html" href="commit/371028ef2bf4af1b9fe2112b8c7e90a25f47fa10.html" />
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<content>commit 371028ef2bf4af1b9fe2112b8c7e90a25f47fa10
parent 85a8d9dff350609be58a7b1bec6feefcaf7d72f5
Author: NRK &lt;nrk@disroot.org&gt;
Date:   Fri,  7 Jan 2022 23:21:04 +0600

code-golfing: cleanup osc color related code

* adds missing function prototype
* move xgetcolor() prototype to win.h (that&#39;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>
<id>85a8d9dff350609be58a7b1bec6feefcaf7d72f5</id>
<published>2022-03-18T11:03:34Z</published>
<updated>2022-03-18T11:03:34Z</updated>
<title>base64_digits: reduce scope, implicit zero, +1 size</title>
<link rel="alternate" type="text/html" href="commit/85a8d9dff350609be58a7b1bec6feefcaf7d72f5.html" />
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<content>commit 85a8d9dff350609be58a7b1bec6feefcaf7d72f5
parent 0bdbd0f947da0350d82eab0861ef367789353bcb
Author: NRK &lt;nrk@disroot.org&gt;
Date:   Fri, 18 Mar 2022 17:03:34 +0600

base64_digits: reduce scope, implicit zero, +1 size

the array is not accessed outside of base64dec() so it makes sense to
limit it&#39;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&#39;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() || &#39;=&#39; (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>
<id>0bdbd0f947da0350d82eab0861ef367789353bcb</id>
<published>2022-03-18T10:20:54Z</published>
<updated>2022-03-18T10:20:54Z</updated>
<title>avoid potential UB when using isprint()</title>
<link rel="alternate" type="text/html" href="commit/0bdbd0f947da0350d82eab0861ef367789353bcb.html" />
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<content>commit 0bdbd0f947da0350d82eab0861ef367789353bcb
parent e32d78b308858eb10ff4b5f512bb557a1a4029c7
Author: NRK &lt;nrk@disroot.org&gt;
Date:   Fri, 18 Mar 2022 16:20:54 +0600

avoid potential UB when using isprint()

all the ctype.h functions&#39; argument must be representable as an unsigned
char or as EOF, otherwise the behavior is undefined.

</content>
</entry>
<entry>
<id>e32d78b308858eb10ff4b5f512bb557a1a4029c7</id>
<published>2022-03-13T09:44:08Z</published>
<updated>2022-03-13T09:44:08Z</updated>
<title>make underlines and strikethroughs respect `chscale`</title>
<link rel="alternate" type="text/html" href="commit/e32d78b308858eb10ff4b5f512bb557a1a4029c7.html" />
<author>
<name>Zacchary Dempsey-Plante</name>
<email>zacc@ztdp.ca</email>
</author>
<content>commit e32d78b308858eb10ff4b5f512bb557a1a4029c7
parent 0e9e3959064c9c8b8fcdbfd3dc41db4082b797b8
Author: Zacchary Dempsey-Plante &lt;zacc@ztdp.ca&gt;
Date:   Sun, 13 Mar 2022 10:44:08 +0100

make underlines and strikethroughs respect `chscale`

</content>
</entry>
<entry>
<id>0e9e3959064c9c8b8fcdbfd3dc41db4082b797b8</id>
<published>2022-02-17T14:00:47Z</published>
<updated>2022-02-17T14:00:47Z</updated>
<title>Delay redrawals on palette changes</title>
<link rel="alternate" type="text/html" href="commit/0e9e3959064c9c8b8fcdbfd3dc41db4082b797b8.html" />
<author>
<name>Santtu Lakkala</name>
<email>inz@inz.fi</email>
</author>
<content>commit 0e9e3959064c9c8b8fcdbfd3dc41db4082b797b8
parent 6e32bcfed2f689814bfc2723afb8a528da77a5d7
Author: Santtu Lakkala &lt;inz@inz.fi&gt;
Date:   Thu, 17 Feb 2022 16:00:47 +0200

Delay redrawals on palette changes

Build on auto-sync and only mark window dirty on palette changes and let
the event handler do the actual draw.

</content>
</entry>
<entry>
<id>6e32bcfed2f689814bfc2723afb8a528da77a5d7</id>
<published>2022-01-12T08:44:27Z</published>
<updated>2022-01-12T08:44:27Z</updated>
<title>X10/SGR mouse: use alt as meta key instead of super/windows key</title>
<link rel="alternate" type="text/html" href="commit/6e32bcfed2f689814bfc2723afb8a528da77a5d7.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 6e32bcfed2f689814bfc2723afb8a528da77a5d7
parent 4a0d6ec5bcb6c478a29673cb643e017413b429e8
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Wed, 12 Jan 2022 09:44:27 +0100

X10/SGR mouse: use alt as meta key instead of super/windows key

</content>
</entry>
<entry>
<id>4a0d6ec5bcb6c478a29673cb643e017413b429e8</id>
<published>2022-01-10T16:11:17Z</published>
<updated>2022-01-10T16:11:17Z</updated>
<title>LICENSE: bump year</title>
<link rel="alternate" type="text/html" href="commit/4a0d6ec5bcb6c478a29673cb643e017413b429e8.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 4a0d6ec5bcb6c478a29673cb643e017413b429e8
parent 658c10a3ffc0080daab30e99ddbc49f185b391fe
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Mon, 10 Jan 2022 17:11:17 +0100

LICENSE: bump year

</content>
</entry>
<entry>
<id>658c10a3ffc0080daab30e99ddbc49f185b391fe</id>
<published>2022-01-08T19:40:34Z</published>
<updated>2022-01-08T19:40:34Z</updated>
<title>Fix mousereport</title>
<link rel="alternate" type="text/html" href="commit/658c10a3ffc0080daab30e99ddbc49f185b391fe.html" />
<author>
<name>robert</name>
<email>robertrussell.72001@gmail.com</email>
</author>
<content>commit 658c10a3ffc0080daab30e99ddbc49f185b391fe
parent 7f3ef74bbbbae77cbbec8502a3ded872c4dc4b2a
Author: robert &lt;robertrussell.72001@gmail.com&gt;
Date:   Sat,  8 Jan 2022 11:40:34 -0800

Fix mousereport

This patch replaces the previous one I sent.

The following changes are made in this patch:
 - Fix tracking of pressed buttons. Previously, pressing two buttons and
   then releasing one would make st think no buttons are pressed, which
   in particular broke MODE_MOUSEMOTION.
 - Always send the lowest-numbered pressed button on motion events; when
   no button is pressed for a motion event in MODE_MOUSEMANY, then send
   a release. This matches the behaviour of xterm. (Previously, st sent
   the most recently pressed button in the motion report.)
 - Remove UB (?) access to potentially inactive struct member
   e-&gt;xbutton.button of XEvent union.
 - Fix (unlikely) possibility of overflow for large button numbers.

The one discrepancy I found between st and xterm is that xterm sometimes
encodes buttons with large numbers (&gt;5) strangely. E.g., xterm reports
presses of buttons 8 and 9 as releases, whereas st properly (?) encodes
them as presses.

</content>
</entry>
<entry>
<id>7f3ef74bbbbae77cbbec8502a3ded872c4dc4b2a</id>
<published>2022-01-07T11:39:57Z</published>
<updated>2022-01-07T11:39:57Z</updated>
<title>bump version to 0.8.5</title>
<link rel="alternate" type="text/html" href="commit/7f3ef74bbbbae77cbbec8502a3ded872c4dc4b2a.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7f3ef74bbbbae77cbbec8502a3ded872c4dc4b2a
parent 54cf1a3ebc9fe71af417b3d1580a32549c75249c
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Fri,  7 Jan 2022 12:39:57 +0100

bump version to 0.8.5

</content>
</entry>
<entry>
<id>54cf1a3ebc9fe71af417b3d1580a32549c75249c</id>
<published>2022-01-02T11:15:45Z</published>
<updated>2022-01-02T11:15:45Z</updated>
<title>FAQ: fix a typo, patch -&gt; path</title>
<link rel="alternate" type="text/html" href="commit/54cf1a3ebc9fe71af417b3d1580a32549c75249c.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 54cf1a3ebc9fe71af417b3d1580a32549c75249c
parent 3fb5782c8eca84366d6531ddf063697211dfb7db
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun,  2 Jan 2022 12:15:45 +0100

FAQ: fix a typo, patch -&gt; path

</content>
</entry>
<entry>
<id>3fb5782c8eca84366d6531ddf063697211dfb7db</id>
<published>2021-12-29T17:07:17Z</published>
<updated>2021-12-29T17:07:17Z</updated>
<title>Fix overtyping wide characters.</title>
<link rel="alternate" type="text/html" href="commit/3fb5782c8eca84366d6531ddf063697211dfb7db.html" />
<author>
<name>jamin</name>
<email>acdimalev@gmail.com</email>
</author>
<content>commit 3fb5782c8eca84366d6531ddf063697211dfb7db
parent bee37615c1aaabfef11230a5f3518cc589a700f5
Author: jamin &lt;acdimalev@gmail.com&gt;
Date:   Wed, 29 Dec 2021 09:07:17 -0800

Fix overtyping wide characters.

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 &#39;\x1b[5D&#39;; sleep 2
	printf へ; sleep 2
	printf &#39; &#39;; sleep 2
	echo

</content>
</entry>
<entry>
<id>bee37615c1aaabfef11230a5f3518cc589a700f5</id>
<published>2021-12-27T10:41:42Z</published>
<updated>2021-12-27T10:41:42Z</updated>
<title>Fix null pointer access in strhandle</title>
<link rel="alternate" type="text/html" href="commit/bee37615c1aaabfef11230a5f3518cc589a700f5.html" />
<author>
<name>Jochen Sprickerhof</name>
<email>git@jochen.sprickerhof.de</email>
</author>
<content>commit bee37615c1aaabfef11230a5f3518cc589a700f5
parent 5fbab945ac0129cfde3a6995189084572132612f
Author: Jochen Sprickerhof &lt;git@jochen.sprickerhof.de&gt;
Date:   Mon, 27 Dec 2021 11:41:42 +0100

Fix null pointer access in strhandle

According to the spec the argument is optional for 104, so p can be
NULL as can be tested with printf &#39;\x1b]104\x07&#39;. This is a regression
of f89c05f.

</content>
</entry>
<entry>
<id>5fbab945ac0129cfde3a6995189084572132612f</id>
<published>2021-12-26T18:00:41Z</published>
<updated>2021-12-26T18:00:41Z</updated>
<title>follow-up fix for OSC color sequences, return</title>
<link rel="alternate" type="text/html" href="commit/5fbab945ac0129cfde3a6995189084572132612f.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 5fbab945ac0129cfde3a6995189084572132612f
parent f89c05f2017a1baedc38dde2db82c63384d35f8d
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 26 Dec 2021 19:00:41 +0100

follow-up fix for OSC color sequences, return

Otherwise the message &quot;erresc: unknown str&quot; is printed.

</content>
</entry>
<entry>
<id>f89c05f2017a1baedc38dde2db82c63384d35f8d</id>
<published>2021-12-26T17:57:04Z</published>
<updated>2021-12-26T17:57:04Z</updated>
<title>Add support for OSC color sequences</title>
<link rel="alternate" type="text/html" href="commit/f89c05f2017a1baedc38dde2db82c63384d35f8d.html" />
<author>
<name>Raheman Vaiya</name>
<email>r.vaiya@gmail.com</email>
</author>
<content>commit f89c05f2017a1baedc38dde2db82c63384d35f8d
parent 26652ffe9f26221adef0d291e9b7001a210e9fad
Author: Raheman Vaiya &lt;r.vaiya@gmail.com&gt;
Date:   Sun, 26 Dec 2021 18:57:04 +0100

Add support for OSC color sequences

</content>
</entry>
<entry>
<id>26652ffe9f26221adef0d291e9b7001a210e9fad</id>
<published>2021-08-24T11:44:35Z</published>
<updated>2021-08-24T11:44:35Z</updated>
<title>fix possible rare crash when Xutf8TextPropertyToTextList fails</title>
<link rel="alternate" type="text/html" href="commit/26652ffe9f26221adef0d291e9b7001a210e9fad.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 26652ffe9f26221adef0d291e9b7001a210e9fad
parent 5eef2ee3fbba84b0103b60863bfbc6ab72ff9970
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Tue, 24 Aug 2021 13:44:35 +0200

fix possible rare crash when Xutf8TextPropertyToTextList fails

from the XmbTextListToTextProperty(3) man page:

&quot;If insufficient memory is available for the new value string, the functions
return XNoMemory.  If the current locale is not supported, the functions return
XLocaleNotSupported.  In both of these error cases, the functions do not set
text_prop_return.&quot;

Reported by Steffen Nurpmeso &lt;steffen@sdaoden.eu&gt;, thanks!

</content>
</entry>
<entry>
<id>5eef2ee3fbba84b0103b60863bfbc6ab72ff9970</id>
<published>2021-08-23T21:25:05Z</published>
<updated>2021-08-23T21:25:05Z</updated>
<title>fix a problem that the standard streams are unexpectedly closed</title>
<link rel="alternate" type="text/html" href="commit/5eef2ee3fbba84b0103b60863bfbc6ab72ff9970.html" />
<author>
<name>Koichi Murase</name>
<email>myoga.murase@gmail.com</email>
</author>
<content>commit 5eef2ee3fbba84b0103b60863bfbc6ab72ff9970
parent 9f09941219345c95f647348e8764756743bbaac0
Author: Koichi Murase &lt;myoga.murase@gmail.com&gt;
Date:   Tue, 24 Aug 2021 06:25:05 +0900

fix a problem that the standard streams are unexpectedly closed

In the current implementation, the slave PTY (assigned to the variable
`s&#39;) is always closed after duplicating it to file descriptors of
standard streams (0, 1, and 2).  However, when the allocated slave PTY
`s&#39; is already one of 0, 1, or 2, this causes unexpected closing of a
standard stream.  The same problem occurs when the file descriptor of
the master PTY (the variable `m&#39;) is one of 0, 1, or 2.

In this patch, the original master PTY (m) is closed before it would
be overwritten by duplicated slave PTYs.  The original slave PTY (s)
is closed only when it is not one of the stanrad streams.

</content>
</entry>
<entry>
<id>9f09941219345c95f647348e8764756743bbaac0</id>
<published>2021-07-17T22:14:00Z</published>
<updated>2021-07-17T22:14:00Z</updated>
<title>Add 14th bit to XK_SWITCH_MOD bitmask</title>
<link rel="alternate" type="text/html" href="commit/9f09941219345c95f647348e8764756743bbaac0.html" />
<author>
<name>Petar Kapriš</name>
<email>petarkapris@firemail.cc</email>
</author>
<content>commit 9f09941219345c95f647348e8764756743bbaac0
parent 309f3b88e359c7ca9e872bd069c6dcc44aff0ff7
Author: Petar Kapriš &lt;petarkapris@firemail.cc&gt;
Date:   Sun, 18 Jul 2021 00:14:00 +0200

Add 14th bit to XK_SWITCH_MOD bitmask

The bits of uint signal in an XKeyEvent which concern the key group (keyboard
layout) are bits 13 and 14, as documented here:
https://www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Groups_and_Shift_Levels
In the older version, only bit 13 was marked as part of XK_SWITCH_MOD, this
causes issues for users who have more than two keymaps. the 14th bit is not
in ignoremod, key sequences are not caught by match(), if they switch to a third
or fourth keyboard.

</content>
</entry>
<entry>
<id>309f3b88e359c7ca9e872bd069c6dcc44aff0ff7</id>
<published>2021-03-28T19:16:59Z</published>
<updated>2021-03-28T19:16:59Z</updated>
<title>Mild const-correctness improvements.</title>
<link rel="alternate" type="text/html" href="commit/309f3b88e359c7ca9e872bd069c6dcc44aff0ff7.html" />
<author>
<name>Markus F.X.J. Oberhumer</name>
<email>markus@oberhumer.com</email>
</author>
<content>commit 309f3b88e359c7ca9e872bd069c6dcc44aff0ff7
parent 45b8e4f9b78f230562bf59e472a869c7d5797052
Author: Markus F.X.J. Oberhumer &lt;markus@oberhumer.com&gt;
Date:   Sun, 28 Mar 2021 21:16:59 +0200

Mild const-correctness improvements.

Only touch a few things, the main focus is to
improve code readability.

</content>
</entry>
<entry>
<id>45b8e4f9b78f230562bf59e472a869c7d5797052</id>
<published>2021-03-19T10:54:36Z</published>
<updated>2021-03-19T10:54:36Z</updated>
<title>fix: correctly encode mouse buttons &gt;= 8 in X10 and SGR mode</title>
<link rel="alternate" type="text/html" href="commit/45b8e4f9b78f230562bf59e472a869c7d5797052.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 45b8e4f9b78f230562bf59e472a869c7d5797052
parent c92646b403468d07c515a33647291377dd577cf8
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Fri, 19 Mar 2021 11:54:36 +0100

fix: correctly encode mouse buttons &gt;= 8 in X10 and SGR mode

These are typically mapped in X11 to the side-buttons (backward/forwards) on
the mouse. A comparison of the button numbers in SGR mode (first field):

st old:
0 1 2 64 65 66 67 68 69 70

st new (it is the same as xterm now):
0 1 2 64 65 66 67 128 129 130

A script to test and reproduce it, first argument is &quot;h&quot; (on) or &quot;l&quot; (off):

	#!/bin/sh
	printf &#39;\x1b[?1000%s\x1b[?1006%s&#39; &quot;$1&quot; &quot;$1&quot;

	for n in 1 2 3 4 5 6 7 8 9 10; do
		printf &#39;button %d\n&#39; &quot;$n&quot;
		xdotool click &quot;$n&quot;
		printf &#39;\n\n&#39;
	done

</content>
</entry>
<entry>
<id>c92646b403468d07c515a33647291377dd577cf8</id>
<published>2020-10-18T09:18:03Z</published>
<updated>2020-10-18T09:18:03Z</updated>
<title>remove unused variable from previous patch</title>
<link rel="alternate" type="text/html" href="commit/c92646b403468d07c515a33647291377dd577cf8.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit c92646b403468d07c515a33647291377dd577cf8
parent 1cab651e056b45847d7dd1c3e382019155a89a59
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 18 Oct 2020 11:18:03 +0200

remove unused variable from previous patch

</content>
</entry>
<entry>
<id>1cab651e056b45847d7dd1c3e382019155a89a59</id>
<published>2020-09-06T05:53:41Z</published>
<updated>2020-09-06T05:53:41Z</updated>
<title>ST: Add WM_ICON_NAME property support</title>
<link rel="alternate" type="text/html" href="commit/1cab651e056b45847d7dd1c3e382019155a89a59.html" />
<author>
<name>John Collis</name>
<email>john.collis@alliedtelesis.co.nz</email>
</author>
<content>commit 1cab651e056b45847d7dd1c3e382019155a89a59
parent 7d0f6c76ed39eeca5f558cad7e3e9e57bd19e0c9
Author: John Collis &lt;john.collis@alliedtelesis.co.nz&gt;
Date:   Sun,  6 Sep 2020 17:53:41 +1200

ST: Add WM_ICON_NAME property support

Also added _NET_WM_ICON_NAME.

</content>
</entry>
<entry>
<id>7d0f6c76ed39eeca5f558cad7e3e9e57bd19e0c9</id>
<published>2020-06-19T09:27:17Z</published>
<updated>2020-06-19T09:27:17Z</updated>
<title>bump version to 0.8.4</title>
<link rel="alternate" type="text/html" href="commit/7d0f6c76ed39eeca5f558cad7e3e9e57bd19e0c9.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7d0f6c76ed39eeca5f558cad7e3e9e57bd19e0c9
parent 7d6b62d0259887f8cfcfd123ce8d3823311ce343
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Fri, 19 Jun 2020 11:27:17 +0200

bump version to 0.8.4

</content>
</entry>
<entry>
<id>7d6b62d0259887f8cfcfd123ce8d3823311ce343</id>
<published>2020-06-17T21:47:00Z</published>
<updated>2020-06-17T21:47:00Z</updated>
<title>config.mk: use PKG_CONFIG in commented OpenBSD section</title>
<link rel="alternate" type="text/html" href="commit/7d6b62d0259887f8cfcfd123ce8d3823311ce343.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7d6b62d0259887f8cfcfd123ce8d3823311ce343
parent 63e353f0e11491330fcbe76f6262b3dd8a998540
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Wed, 17 Jun 2020 23:47:00 +0200

config.mk: use PKG_CONFIG in commented OpenBSD section

</content>
</entry>
<entry>
<id>63e353f0e11491330fcbe76f6262b3dd8a998540</id>
<published>2020-06-17T21:44:34Z</published>
<updated>2020-06-17T21:44:34Z</updated>
<title>LICENSE: bump years</title>
<link rel="alternate" type="text/html" href="commit/63e353f0e11491330fcbe76f6262b3dd8a998540.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 63e353f0e11491330fcbe76f6262b3dd8a998540
parent 7dcf795919bee045c74af4e380134d9825db6c7d
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Wed, 17 Jun 2020 23:44:34 +0200

LICENSE: bump years

</content>
</entry>
<entry>
<id>7dcf795919bee045c74af4e380134d9825db6c7d</id>
<published>2020-06-17T20:05:48Z</published>
<updated>2020-06-17T20:05:48Z</updated>
<title>remove sixel stub code</title>
<link rel="alternate" type="text/html" href="commit/7dcf795919bee045c74af4e380134d9825db6c7d.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7dcf795919bee045c74af4e380134d9825db6c7d
parent 8bf388e3165cefcc3080eeaaa373de01ceb133fc
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Wed, 17 Jun 2020 22:05:48 +0200

remove sixel stub code

Remove stub code that was used for an experiment of adding sixel code to st
from the commit fd4362be.

</content>
</entry>
<entry>
<id>8bf388e3165cefcc3080eeaaa373de01ceb133fc</id>
<published>2020-06-17T19:35:39Z</published>
<updated>2020-06-17T19:35:39Z</updated>
<title>fix unicode glitch in DCS strings, patch by Tim Allen</title>
<link rel="alternate" type="text/html" href="commit/8bf388e3165cefcc3080eeaaa373de01ceb133fc.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 8bf388e3165cefcc3080eeaaa373de01ceb133fc
parent b950ce8ef1099fecc694716064954465dbf25557
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Wed, 17 Jun 2020 21:35:39 +0200

fix unicode glitch in DCS strings, patch by Tim Allen

Reported on the mailinglist:

&quot;
I discovered recently that if an application running inside st tries to
send a DCS string, subsequent Unicode characters get messed up. For
example, consider the following test-case:

    printf &#39;\303\277\033P\033\\\303\277&#39;

...where:

  - \303\277 is the UTF-8 encoding of U+00FF LATIN SMALL LETTER Y WITH
    DIAERESIS (ÿ).
  - \033P is ESC P, the token that begins a DCS string.
  - \033\\ is ESC \, a token that ends a DCS string.
  - \303\277 is the same ÿ character again.

If I run the above command in a VTE-based terminal, or xterm, or
QTerminal, or pterm (PuTTY), I get the output:

    ÿÿ

...which is to say, the empty DCS string is ignored. However, if I run
that command inside st (as of commit b950ce8), I get:

    ÿÃ¿

...where those last two characters are \303\277 interpreted as ISO8859-1
characters, instead of UTF-8.

I spent some time tracing through the state machines in st.c, and so far
as I can tell, this is how it works currently:

  - ESC P sets the &quot;ESC_DCS&quot; and &quot;ESC_STR&quot; flags, indicating that
    incoming bytes should be collected into the strescseq buffer, rather
    than being interpreted.
  - ESC \ sets the &quot;ESC_STR_END&quot; flag (when ESC is received), and then
    calls strhandle() (when \ is received) to interpret the collected
    bytes.
  - If the collected bytes begin with &#39;P&#39; (i.e. if this was a DCS
    string) strhandle() sets the &quot;ESC_DCS&quot; flag again, confusing the
    state machine.

If my understanding is correct, fixing the problem should be as easy as
removing the line that sets ESC_DCS from strhandle():

diff --git a/st.c b/st.c
index ef8abd5..b5b805a 100644
--- a/st.c
+++ b/st.c
@@ -1897,7 +1897,6 @@ strhandle(void)
		xsettitle(strescseq.args[0]);
		return;
	case &#39;P&#39;: /* DCS -- Device Control String */
-		term.mode |= ESC_DCS;
	case &#39;_&#39;: /* APC -- Application Program Command */
	case &#39;^&#39;: /* PM -- Privacy Message */
		return;

I&#39;ve tried the above patch and it fixes my problem, but I don&#39;t know if
it introduces any others.
&quot;

</content>
</entry>
<entry>
<id>b950ce8ef1099fecc694716064954465dbf25557</id>
<published>2020-06-01T12:09:46Z</published>
<updated>2020-06-01T12:09:46Z</updated>
<title>FAQ: fix single-buffer patch</title>
<link rel="alternate" type="text/html" href="commit/b950ce8ef1099fecc694716064954465dbf25557.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit b950ce8ef1099fecc694716064954465dbf25557
parent a605ddd9ac84a4a625fdb080f5b450d10953595a
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Mon,  1 Jun 2020 14:09:46 +0200

FAQ: fix single-buffer patch

rebase against master

</content>
</entry>
<entry>
<id>a605ddd9ac84a4a625fdb080f5b450d10953595a</id>
<published>2020-05-30T19:56:18Z</published>
<updated>2020-05-30T19:56:18Z</updated>
<title>config.def.h: add an option allowwindowops, by default off (secure)</title>
<link rel="alternate" type="text/html" href="commit/a605ddd9ac84a4a625fdb080f5b450d10953595a.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit a605ddd9ac84a4a625fdb080f5b450d10953595a
parent 8ead318e0d5dd13330ad5f26bce3d174cf93bb07
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 30 May 2020 21:56:18 +0200

config.def.h: add an option allowwindowops, by default off (secure)

Similar to the xterm AllowWindowOps option, this is an option to allow or
disallow certain (non-interactive) operations that can be insecure or
exploited.

NOTE: xsettitle() is not guarded by this because st does not support printing
the window title. Else this could be exploitable (arbitrary code execution).
Similar problems have been found in the past in other terminal emulators.

The sequence for base64-encoded clipboard copy is now guarded because it allows
a sequence written to the terminal to manipulate the clipboard of the running
user non-interactively, for example:

printf &#39;\x1b]52;0;ZWNobyBoaQ0=\a&#39;

</content>
</entry>
<entry>
<id>8ead318e0d5dd13330ad5f26bce3d174cf93bb07</id>
<published>2020-05-30T19:50:54Z</published>
<updated>2020-05-30T19:50:54Z</updated>
<title>FAQ: add some details about the w3m img hack</title>
<link rel="alternate" type="text/html" href="commit/8ead318e0d5dd13330ad5f26bce3d174cf93bb07.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 8ead318e0d5dd13330ad5f26bce3d174cf93bb07
parent 63d0eaef57324906b4d12eb8b014a9ae7bc65694
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 30 May 2020 21:50:54 +0200

FAQ: add some details about the w3m img hack

... and an example patch to switch from double-buffering to a single buffer.

</content>
</entry>
<entry>
<id>63d0eaef57324906b4d12eb8b014a9ae7bc65694</id>
<published>2020-05-30T19:39:49Z</published>
<updated>2020-05-30T19:39:49Z</updated>
<title>tiny style fix</title>
<link rel="alternate" type="text/html" href="commit/63d0eaef57324906b4d12eb8b014a9ae7bc65694.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 63d0eaef57324906b4d12eb8b014a9ae7bc65694
parent ed9fb5a5a453f82f5ed87e7098473bc039c6f04f
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 30 May 2020 21:39:49 +0200

tiny style fix

</content>
</entry>
<entry>
<id>ed9fb5a5a453f82f5ed87e7098473bc039c6f04f</id>
<published>2020-05-30T19:34:57Z</published>
<updated>2020-05-30T19:34:57Z</updated>
<title>Partially add back in &quot;support REP (repeat) escape sequence&quot;</title>
<link rel="alternate" type="text/html" href="commit/ed9fb5a5a453f82f5ed87e7098473bc039c6f04f.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit ed9fb5a5a453f82f5ed87e7098473bc039c6f04f
parent c34ee08bcd534f8e5166732f8fb69659cc3107f6
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 30 May 2020 21:34:57 +0200

Partially add back in &quot;support REP (repeat) escape sequence&quot;

Add the functionality back in for xterm compatibility, but do not expose the
capability in st.info (yet).

Some notes:

It was reverted because it caused some issues with ncurses in some
configurations, namely when using BSD padding (--enable-bsdpad, BSD_TPUTS) in
ncurses it caused issues with repeating digits.

A fix has been upstreamed in ncurses since snapshot 20200523. The fix is also
backported to OpenBSD -current.

</content>
</entry>
<entry>
<id>c34ee08bcd534f8e5166732f8fb69659cc3107f6</id>
<published>2020-05-21T02:24:55Z</published>
<updated>2020-05-21T02:24:55Z</updated>
<title>Call xsetcursor to set win.cursor in main</title>
<link rel="alternate" type="text/html" href="commit/c34ee08bcd534f8e5166732f8fb69659cc3107f6.html" />
<author>
<name>Steve Ward</name>
<email>planet36@gmail.com</email>
</author>
<content>commit c34ee08bcd534f8e5166732f8fb69659cc3107f6
parent a4f05c51853b13e5238089925e6144ee010b13b2
Author: Steve Ward &lt;planet36@gmail.com&gt;
Date:   Wed, 20 May 2020 22:24:55 -0400

Call xsetcursor to set win.cursor in main

In xsetcursor, remove &quot;DEFAULT(cursor, 1)&quot; because 0 is a valid value.
Increase max allowed value of cursor from 6 to 7 (st extension).

</content>
</entry>
<entry>
<id>a4f05c51853b13e5238089925e6144ee010b13b2</id>
<published>2020-05-16T16:06:42Z</published>
<updated>2020-05-16T16:06:42Z</updated>
<title>Revert &quot;support REP (repeat) escape sequence&quot;</title>
<link rel="alternate" type="text/html" href="commit/a4f05c51853b13e5238089925e6144ee010b13b2.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit a4f05c51853b13e5238089925e6144ee010b13b2
parent 428a3d1ad12c850f0531b618ddbdde581bda1ccb
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 16 May 2020 18:06:42 +0200

Revert &quot;support REP (repeat) escape sequence&quot;

This reverts commit 428a3d1ad12c850f0531b618ddbdde581bda1ccb.

There is currently a bug in older ncurses versions (like on OpenBSD) where a
fix for a bug with REP is not backported yet. Most likely in tty/tty_update.c:

Noticed while using lynx (which uses ncurses/curses).
To reproduce using lynx: echo &quot;Z0000000&quot; | lynx -stdin

or using the program:

int
main(void)
{
	WINDOW *win;
	win = initscr();

	printw(&quot;Z0000000&quot;);

	refresh();

	sleep(5);

	return 0;
}

This prints &quot;ZZZZZZZ&quot; (incorrectly).

</content>
</entry>
<entry>
<id>428a3d1ad12c850f0531b618ddbdde581bda1ccb</id>
<published>2020-05-14T15:18:07Z</published>
<updated>2020-05-14T15:18:07Z</updated>
<title>support REP (repeat) escape sequence</title>
<link rel="alternate" type="text/html" href="commit/428a3d1ad12c850f0531b618ddbdde581bda1ccb.html" />
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<content>commit 428a3d1ad12c850f0531b618ddbdde581bda1ccb
parent cb02d2483ba982b654935902a66a15e9f9b68182
Author: Avi Halachmi (:avih) &lt;avihpit@yahoo.com&gt;
Date:   Thu, 14 May 2020 18:18:07 +0300

support REP (repeat) escape sequence

The sequence \e[Nb prints the last printed char N (more) times if it&#39;s
printable, and it&#39;s ignored after newline or other control chars.

This is Ecma-048/ANSI-X3.6 sequence and not DEC VT. It&#39;s supported by
xterm, and ncurses uses it when possible, e.g. when TERM is xterm* (and
with this commit also st*).

xterm supports only codepoints&lt;=255, possibly due to internal limits.
We support any value/codepoint which was placed in a cell.

To test:
- tput rep 65 4 -&gt; prints &#39;AAAA&#39;
- printf &quot;\342\225\246\033[4b&quot; -&gt; prints U+2566 1+4 times.

</content>
</entry>
<entry>
<id>cb02d2483ba982b654935902a66a15e9f9b68182</id>
<published>2020-05-16T10:42:51Z</published>
<updated>2020-05-16T10:42:51Z</updated>
<title>Add rin terminfo capability</title>
<link rel="alternate" type="text/html" href="commit/cb02d2483ba982b654935902a66a15e9f9b68182.html" />
<author>
<name>Roberto E. Vargas</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit cb02d2483ba982b654935902a66a15e9f9b68182
parent e98d605c4a7bec320a9cba25777db1e2269e0adf
Author: Roberto E. Vargas &lt;k0ga@shike2.com&gt;
Date:   Sat, 16 May 2020 10:42:51 +0000

Add rin terminfo capability

Tianlin Qu discovered that st is missing rin (scroll back #1 lines).

</content>
</entry>
<entry>
<id>e98d605c4a7bec320a9cba25777db1e2269e0adf</id>
<published>2020-05-16T09:48:18Z</published>
<updated>2020-05-16T09:48:18Z</updated>
<title>Make shift+wheel behaves as shift+Prev/Next</title>
<link rel="alternate" type="text/html" href="commit/e98d605c4a7bec320a9cba25777db1e2269e0adf.html" />
<author>
<name>k0ga</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit e98d605c4a7bec320a9cba25777db1e2269e0adf
parent a2a0be97a1022b658304a9cbf45c6cf66bf515c7
Author: k0ga &lt;k0ga@shike2.com&gt;
Date:   Sat, 16 May 2020 09:48:18 +0000

Make shift+wheel behaves as shift+Prev/Next

St uses a very good hack where mouse wheel genereates ^Y and ^E,
that are the same keys that less and vi uses for backward and
fordward scrolling. Scroll, as many terminal emulators, use
shift+Prev/Next for scrolling, but it is also using ^E and ^Y
for scroling, characters that are reserved in the POSIX shell
in emacs mode for end of line and yanking, making scroll unsable
in st.

This patch adds a new hack, making shift+wheel returning the
same sequences than shift+Prev/Next, meaning that scroll or
any other similar program will not be able to differentiate
between them.

</content>
</entry>
<entry>
<id>a2a0be97a1022b658304a9cbf45c6cf66bf515c7</id>
<published>2020-05-06T11:36:59Z</published>
<updated>2020-05-06T11:36:59Z</updated>
<title>Fix selection: selscroll</title>
<link rel="alternate" type="text/html" href="commit/a2a0be97a1022b658304a9cbf45c6cf66bf515c7.html" />
<author>
<name>Jakub Leszczak</name>
<email>szatan@gecc.xyz</email>
</author>
<content>commit a2a0be97a1022b658304a9cbf45c6cf66bf515c7
parent 2ff3f4e2a81bcdedff9bf23bf48e37b899effd29
Author: Jakub Leszczak &lt;szatan@gecc.xyz&gt;
Date:   Wed,  6 May 2020 13:36:59 +0200

Fix selection: selscroll

</content>
</entry>
<entry>
<id>2ff3f4e2a81bcdedff9bf23bf48e37b899effd29</id>
<published>2020-05-06T11:35:53Z</published>
<updated>2020-05-06T11:35:53Z</updated>
<title>Fix selection: ignore ATTR_WRAP when rectangular selection in getsel</title>
<link rel="alternate" type="text/html" href="commit/2ff3f4e2a81bcdedff9bf23bf48e37b899effd29.html" />
<author>
<name>Jakub Leszczak</name>
<email>szatan@gecc.xyz</email>
</author>
<content>commit 2ff3f4e2a81bcdedff9bf23bf48e37b899effd29
parent 28a529d5fd68ff830eeb198884071d3e545dcaa2
Author: Jakub Leszczak &lt;szatan@gecc.xyz&gt;
Date:   Wed,  6 May 2020 13:35:53 +0200

Fix selection: ignore ATTR_WRAP when rectangular selection in getsel

</content>
</entry>
<entry>
<id>28a529d5fd68ff830eeb198884071d3e545dcaa2</id>
<published>2020-05-06T11:35:06Z</published>
<updated>2020-05-06T11:35:06Z</updated>
<title>Fix selection: selclear in tputc</title>
<link rel="alternate" type="text/html" href="commit/28a529d5fd68ff830eeb198884071d3e545dcaa2.html" />
<author>
<name>Jakub Leszczak</name>
<email>szatan@gecc.xyz</email>
</author>
<content>commit 28a529d5fd68ff830eeb198884071d3e545dcaa2
parent 10119f73c3f58ea08065d2aa4f38a56176eae373
Author: Jakub Leszczak &lt;szatan@gecc.xyz&gt;
Date:   Wed,  6 May 2020 13:35:06 +0200

Fix selection: selclear in tputc

</content>
</entry>
<entry>
<id>10119f73c3f58ea08065d2aa4f38a56176eae373</id>
<published>2020-05-09T12:43:31Z</published>
<updated>2020-05-09T12:43:31Z</updated>
<title>code-style: add fallthrough comment</title>
<link rel="alternate" type="text/html" href="commit/10119f73c3f58ea08065d2aa4f38a56176eae373.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 10119f73c3f58ea08065d2aa4f38a56176eae373
parent 5402c9b66aeb03f21646ef862e3e29b883d3d325
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat,  9 May 2020 14:43:31 +0200

code-style: add fallthrough comment

Patch by Steve Ward, thanks.

</content>
</entry>
<entry>
<id>5402c9b66aeb03f21646ef862e3e29b883d3d325</id>
<published>2020-05-09T12:03:14Z</published>
<updated>2020-05-09T12:03:14Z</updated>
<title>optimize column width calculation and utf-8 encode for ASCII</title>
<link rel="alternate" type="text/html" href="commit/5402c9b66aeb03f21646ef862e3e29b883d3d325.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 5402c9b66aeb03f21646ef862e3e29b883d3d325
parent 473caa9528a536223fcc814a3b9b020acd0454f2
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat,  9 May 2020 14:03:14 +0200

optimize column width calculation and utf-8 encode for ASCII

In particular on OpenBSD and on glibc wcwidth() is quite expensive.
On musl there is little difference.

</content>
</entry>
<entry>
<id>473caa9528a536223fcc814a3b9b020acd0454f2</id>
<published>2020-05-09T11:56:28Z</published>
<updated>2020-05-09T11:56:28Z</updated>
<title>fix for incorrect (partial) written sequences when libc wcwidth() == -1</title>
<link rel="alternate" type="text/html" href="commit/473caa9528a536223fcc814a3b9b020acd0454f2.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 473caa9528a536223fcc814a3b9b020acd0454f2
parent 0d9d6cb8fe828c78b751f5151b76afdb5b4e4c42
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat,  9 May 2020 13:56:28 +0200

fix for incorrect (partial) written sequences when libc wcwidth() == -1

Fix an issue with incorrect (partial) written sequences when libc wcwidth() ==
-1. The sequence is updated to on wcwidth(u) == -1:

	c = &quot;\357\277\275&quot;

but len isn&#39;t.

A way to reproduce in practise:

* st -o dump.txt
* In the terminal: printf &#39;\xcd\xb8&#39;
- This is codepoint 888, on OpenBSD it reports wcwidth() == -1.
- Quit the terminal.
- Look in dump.txt (partial written sequence of &quot;UTF_INVALID&quot;).

This was introduced in:

&quot;	commit c3dc66b86a027b703045e3a3ec884520c540cdfe
	Author: czarkoff@gmail.com &lt;czarkoff@gmail.com&gt;
	Date:   Tue Oct 28 12:55:28 2014 +0100

	    Replace character with U+FFFD if wcwidth() is -1

	    Helpful when new Unicode codepoints are not recognized by libc.&quot;

Change:

Remove setting the sequence. If this happens to break something, another
solution could be setting len = 3 for the sequence.

</content>
</entry>
<entry>
<id>0d9d6cb8fe828c78b751f5151b76afdb5b4e4c42</id>
<published>2020-05-09T11:55:34Z</published>
<updated>2020-05-09T11:55:34Z</updated>
<title>tiny code-style and typo-fix in comment</title>
<link rel="alternate" type="text/html" href="commit/0d9d6cb8fe828c78b751f5151b76afdb5b4e4c42.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 0d9d6cb8fe828c78b751f5151b76afdb5b4e4c42
parent b7d856c8b649252113f44cb5c049768af57511c1
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat,  9 May 2020 13:55:34 +0200

tiny code-style and typo-fix in comment

</content>
</entry>
<entry>
<id>b7d856c8b649252113f44cb5c049768af57511c1</id>
<published>2019-02-26T20:37:49Z</published>
<updated>2019-02-26T20:37:49Z</updated>
<title>auto-sync: draw on idle to avoid flicker/tearing</title>
<link rel="alternate" type="text/html" href="commit/b7d856c8b649252113f44cb5c049768af57511c1.html" />
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<content>commit b7d856c8b649252113f44cb5c049768af57511c1
parent f15b5254a0db34dab7bdc0cb1866a9fe66cc87fe
Author: Avi Halachmi (:avih) &lt;avihpit@yahoo.com&gt;
Date:   Tue, 26 Feb 2019 22:37:49 +0200

auto-sync: draw on idle to avoid flicker/tearing

st could easily tear/flicker with animation or other unattended
output. This commit eliminates most of the tear/flicker.

Before this commit, the display timing had two &quot;modes&quot;:

- Interactively, st was waiting fixed `1000/xfps` ms after forwarding
  the kb/mouse event to the application and before drawing.

- Unattended, and specifically with animations, the draw frequency was
  throttled to `actionfps`. Animation at a higher rate would throttle
  and likely tear, and at lower rates it was tearing big frames
  (specifically, when one `read` didn&#39;t get a full &quot;frame&quot;).

The interactive behavior was decent, but it was impossible to get good
unattended-draw behavior even with carefully chosen configuration.

This commit changes the behavior such that it draws on idle instead of
using fixed latency/frequency. This means that it tries to draw only
when it&#39;s very likely that the application has completed its output
(or after some duration without idle), so it mostly succeeds to avoid
tear, flicker, and partial drawing.

The config values minlatency/maxlatency replace xfps/actionfps and
define the range which the algorithm is allowed to wait from the
initial draw-trigger until the actual draw. The range enables the
flexibility to choose when to draw - when least likely to flicker.

It also unifies the interactive and unattended behavior and config
values, which makes the code simpler as well - without sacrificing
latency during interactive use, because typically interactively idle
arrives very quickly, so the wait is typically minlatency.

While it only slighly improves interactive behavior, for animations
and other unattended-drawing it improves greatly, as it effectively
adapts to any [animation] output rate without tearing, throttling,
redundant drawing, or unnecessary delays (sounds impossible, but it
works).

</content>
</entry>
<entry>
<id>f15b5254a0db34dab7bdc0cb1866a9fe66cc87fe</id>
<published>2020-04-29T22:10:02Z</published>
<updated>2020-04-29T22:10:02Z</updated>
<title>replace exit(3) by _exit(2) in signal handler sigchld()</title>
<link rel="alternate" type="text/html" href="commit/f15b5254a0db34dab7bdc0cb1866a9fe66cc87fe.html" />
<author>
<name>Jan Klemkow</name>
<email>j.klemkow@wemelug.de</email>
</author>
<content>commit f15b5254a0db34dab7bdc0cb1866a9fe66cc87fe
parent 4b0637909c3f57135dbf22411e5a0cbeabaeb969
Author: Jan Klemkow &lt;j.klemkow@wemelug.de&gt;
Date:   Thu, 30 Apr 2020 00:10:02 +0200

replace exit(3) by _exit(2) in signal handler sigchld()

exit(3) is not async-signal-safe but, _exit(2) is.
This change prevents st to crash and dump core.

</content>
</entry>
<entry>
<id>4b0637909c3f57135dbf22411e5a0cbeabaeb969</id>
<published>2020-04-27T11:56:25Z</published>
<updated>2020-04-27T11:56:25Z</updated>
<title>bump version to 0.8.3</title>
<link rel="alternate" type="text/html" href="commit/4b0637909c3f57135dbf22411e5a0cbeabaeb969.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 4b0637909c3f57135dbf22411e5a0cbeabaeb969
parent e587d852ad30b6cdcb5b2ca910b5bba85e8a34cb
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Mon, 27 Apr 2020 13:56:25 +0200

bump version to 0.8.3

</content>
</entry>
<entry>
<id>e587d852ad30b6cdcb5b2ca910b5bba85e8a34cb</id>
<published>2020-04-19T17:38:39Z</published>
<updated>2020-04-19T17:38:39Z</updated>
<title>Update XIM cursor position only if changed</title>
<link rel="alternate" type="text/html" href="commit/e587d852ad30b6cdcb5b2ca910b5bba85e8a34cb.html" />
<author>
<name>Ivan Tham</name>
<email>pickfire@riseup.net</email>
</author>
<content>commit e587d852ad30b6cdcb5b2ca910b5bba85e8a34cb
parent 3113151b27ea88e651e566d47f135f8f452c4c6a
Author: Ivan Tham &lt;pickfire@riseup.net&gt;
Date:   Sun, 19 Apr 2020 19:38:39 +0200

Update XIM cursor position only if changed

Updating XIM cursor position is expensive, so only update it when cursor
position changed.

</content>
</entry>
<entry>
<id>3113151b27ea88e651e566d47f135f8f452c4c6a</id>
<published>2020-04-11T13:45:06Z</published>
<updated>2020-04-11T13:45:06Z</updated>
<title>just remove the EOF message</title>
<link rel="alternate" type="text/html" href="commit/3113151b27ea88e651e566d47f135f8f452c4c6a.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 3113151b27ea88e651e566d47f135f8f452c4c6a
parent 605bfd9b5f9c765423443865797ca7af0c913312
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 11 Apr 2020 15:45:06 +0200

just remove the EOF message

</content>
</entry>
<entry>
<id>605bfd9b5f9c765423443865797ca7af0c913312</id>
<published>2020-04-11T12:46:17Z</published>
<updated>2020-04-11T12:46:17Z</updated>
<title>Add st-mono terminfo entry</title>
<link rel="alternate" type="text/html" href="commit/605bfd9b5f9c765423443865797ca7af0c913312.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit 605bfd9b5f9c765423443865797ca7af0c913312
parent 31f7d6f483eb3a57815cb4ae2c2b382ce1e8a8b3
Author: Roberto E. Vargas Caballero &lt;k0ga@shike2.com&gt;
Date:   Sat, 11 Apr 2020 14:46:17 +0200

Add st-mono terminfo entry

This entry is intended for monocolor display and it is very
helpful for color haters.

</content>
</entry>
<entry>
<id>31f7d6f483eb3a57815cb4ae2c2b382ce1e8a8b3</id>
<published>2020-04-11T11:56:31Z</published>
<updated>2020-04-11T11:56:31Z</updated>
<title>config.def.h: add a comment for the scroll variable</title>
<link rel="alternate" type="text/html" href="commit/31f7d6f483eb3a57815cb4ae2c2b382ce1e8a8b3.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 31f7d6f483eb3a57815cb4ae2c2b382ce1e8a8b3
parent 673494e44301c57ba6aae3a08664f60c0e30e5a5
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 11 Apr 2020 13:56:31 +0200

config.def.h: add a comment for the scroll variable

</content>
</entry>
<entry>
<id>673494e44301c57ba6aae3a08664f60c0e30e5a5</id>
<published>2020-04-11T11:29:48Z</published>
<updated>2020-04-11T11:29:48Z</updated>
<title>Fix small typos</title>
<link rel="alternate" type="text/html" href="commit/673494e44301c57ba6aae3a08664f60c0e30e5a5.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 673494e44301c57ba6aae3a08664f60c0e30e5a5
parent d6dfe858b9f878f31edec52c4159cb3e8e57c88f
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 11 Apr 2020 13:29:48 +0200

Fix small typos

</content>
</entry>
<entry>
<id>d6dfe858b9f878f31edec52c4159cb3e8e57c88f</id>
<published>2020-04-11T10:09:20Z</published>
<updated>2020-04-11T10:09:20Z</updated>
<title>Launch scroll program with the default shell</title>
<link rel="alternate" type="text/html" href="commit/d6dfe858b9f878f31edec52c4159cb3e8e57c88f.html" />
<author>
<name>Quentin Rameau</name>
<email>quinq@fifth.space</email>
</author>
<content>commit d6dfe858b9f878f31edec52c4159cb3e8e57c88f
parent d8201ae830e3aea419433e80fa17a1f357ba0d43
Author: Quentin Rameau &lt;quinq@fifth.space&gt;
Date:   Sat, 11 Apr 2020 12:09:20 +0200

Launch scroll program with the default shell

</content>
</entry>
</feed>
