<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>birdterm, branch HEAD</title>
<subtitle>birdterm - mrgrouse&#39;s fork of suckless&#39; st.
</subtitle>
<entry>
<id>e4f980b7559e47dcbc1528a3a3d278b25c1ff88d</id>
<published>2025-12-10T22:26:52Z</published>
<updated>2025-12-10T22:26:52Z</updated>
<title>x.c: fix title and class of birdterm window</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/e4f980b7559e47dcbc1528a3a3d278b25c1ff88d.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit e4f980b7559e47dcbc1528a3a3d278b25c1ff88d
parent a75d9f3b4fa10f8f6b5ae493bf1d9c1e114b4879
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Wed, 10 Dec 2025 17:26:52 -0500

x.c: fix title and class of birdterm window

</content>
</entry>
<entry>
<id>a75d9f3b4fa10f8f6b5ae493bf1d9c1e114b4879</id>
<published>2025-08-12T22:35:45Z</published>
<updated>2025-08-12T22:35:45Z</updated>
<title>x.c: remove cursor blinking on unfocused window</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/a75d9f3b4fa10f8f6b5ae493bf1d9c1e114b4879.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit a75d9f3b4fa10f8f6b5ae493bf1d9c1e114b4879
parent 70dc955c14bf06b02999fc84755d3c2da38de240
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Tue, 12 Aug 2025 18:35:45 -0400

x.c: remove cursor blinking on unfocused window

</content>
</entry>
<entry>
<id>70dc955c14bf06b02999fc84755d3c2da38de240</id>
<published>2025-07-04T04:27:55Z</published>
<updated>2025-07-04T04:27:55Z</updated>
<title>TODO: update for birdterm rename</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/70dc955c14bf06b02999fc84755d3c2da38de240.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit 70dc955c14bf06b02999fc84755d3c2da38de240
parent dda7b45e74b1dafa50e2855bae30cbab133ab193
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Fri,  4 Jul 2025 00:27:55 -0400

TODO: update for birdterm rename

</content>
</entry>
<entry>
<id>dda7b45e74b1dafa50e2855bae30cbab133ab193</id>
<published>2025-07-04T02:17:37Z</published>
<updated>2025-07-04T02:17:37Z</updated>
<title>config.def.h: increase mousescrollincrement default value to 5</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/dda7b45e74b1dafa50e2855bae30cbab133ab193.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit dda7b45e74b1dafa50e2855bae30cbab133ab193
parent dba98cef1c31e8a9ef377f33d5507a56f124d71e
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 22:17:37 -0400

config.def.h: increase mousescrollincrement default value to 5

</content>
</entry>
<entry>
<id>dba98cef1c31e8a9ef377f33d5507a56f124d71e</id>
<published>2025-07-04T02:16:39Z</published>
<updated>2025-07-04T02:16:39Z</updated>
<title>config.def.h: add mousescrollincrement variable for easy changing of scroll sensitivity</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/dba98cef1c31e8a9ef377f33d5507a56f124d71e.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit dba98cef1c31e8a9ef377f33d5507a56f124d71e
parent c02fa672635a3d9c75908861c441b226f44d5b30
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 22:16:39 -0400

config.def.h: add mousescrollincrement variable for easy changing of scroll sensitivity

</content>
</entry>
<entry>
<id>c02fa672635a3d9c75908861c441b226f44d5b30</id>
<published>2025-07-04T02:13:19Z</published>
<updated>2025-07-04T02:13:19Z</updated>
<title>patch scrollback-mouse on top of scrollback</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/c02fa672635a3d9c75908861c441b226f44d5b30.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit c02fa672635a3d9c75908861c441b226f44d5b30
parent d415060a5b90c3007fd68a9b225818743afe831b
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 22:13:19 -0400

patch scrollback-mouse on top of scrollback

</content>
</entry>
<entry>
<id>d415060a5b90c3007fd68a9b225818743afe831b</id>
<published>2025-07-04T02:12:45Z</published>
<updated>2025-07-04T02:12:45Z</updated>
<title>successfully patch scrollback patch</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/d415060a5b90c3007fd68a9b225818743afe831b.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit d415060a5b90c3007fd68a9b225818743afe831b
parent acdd2f5ab1f740b0b46d9f71aeec1b06870d2112
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 22:12:45 -0400

successfully patch scrollback patch

</content>
</entry>
<entry>
<id>acdd2f5ab1f740b0b46d9f71aeec1b06870d2112</id>
<published>2025-07-04T02:07:23Z</published>
<updated>2025-07-04T02:07:23Z</updated>
<title>config.def.h: remove usage of scroll on startup</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/acdd2f5ab1f740b0b46d9f71aeec1b06870d2112.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit acdd2f5ab1f740b0b46d9f71aeec1b06870d2112
parent d2b45d1870a01048f113a4054deb89a5c7469897
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 22:07:23 -0400

config.def.h: remove usage of scroll on startup

</content>
</entry>
<entry>
<id>d2b45d1870a01048f113a4054deb89a5c7469897</id>
<published>2025-07-04T01:26:02Z</published>
<updated>2025-07-04T01:26:02Z</updated>
<title>config.def.h: fix for rename, change cursor shape and use suckless&#39; scroll by default</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/d2b45d1870a01048f113a4054deb89a5c7469897.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit d2b45d1870a01048f113a4054deb89a5c7469897
parent 17636f851ebfd4aa68fd2b39f3dab44205a83d2e
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 21:26:02 -0400

config.def.h: fix for rename, change cursor shape and use suckless&#39; scroll by default

</content>
</entry>
<entry>
<id>17636f851ebfd4aa68fd2b39f3dab44205a83d2e</id>
<published>2025-07-04T01:12:14Z</published>
<updated>2025-07-04T01:12:14Z</updated>
<title>config.def.h: switch default font to FiraCode NF Mono SemiBold</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/17636f851ebfd4aa68fd2b39f3dab44205a83d2e.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit 17636f851ebfd4aa68fd2b39f3dab44205a83d2e
parent 6124cd411fd10b40fc442026524bc94c6ebffa3c
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 21:12:14 -0400

config.def.h: switch default font to FiraCode NF Mono SemiBold

</content>
</entry>
<entry>
<id>6124cd411fd10b40fc442026524bc94c6ebffa3c</id>
<published>2025-07-04T01:08:56Z</published>
<updated>2025-07-04T01:08:56Z</updated>
<title>migrate to birdterm rename</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/6124cd411fd10b40fc442026524bc94c6ebffa3c.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit 6124cd411fd10b40fc442026524bc94c6ebffa3c
parent caec1f7db31838337a21b667ee8eaadfa0ced198
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 21:08:56 -0400

migrate to birdterm rename

</content>
</entry>
<entry>
<id>caec1f7db31838337a21b667ee8eaadfa0ced198</id>
<published>2025-07-04T00:58:58Z</published>
<updated>2025-07-04T00:58:58Z</updated>
<title>successfully patch font2 patch for fixing glyphs</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/caec1f7db31838337a21b667ee8eaadfa0ced198.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit caec1f7db31838337a21b667ee8eaadfa0ced198
parent 7794573dec7ffc4cf71b627549ddc94489449788
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 20:58:58 -0400

successfully patch font2 patch for fixing glyphs

</content>
</entry>
<entry>
<id>7794573dec7ffc4cf71b627549ddc94489449788</id>
<published>2025-07-03T22:27:06Z</published>
<updated>2025-07-03T22:27:06Z</updated>
<title>successfully patch st-xresources</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/7794573dec7ffc4cf71b627549ddc94489449788.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit 7794573dec7ffc4cf71b627549ddc94489449788
parent 682878259330161386eb702d8cb5746272243f55
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 18:27:06 -0400

successfully patch st-xresources

</content>
</entry>
<entry>
<id>682878259330161386eb702d8cb5746272243f55</id>
<published>2025-07-03T22:25:10Z</published>
<updated>2025-07-03T22:25:10Z</updated>
<title>successfully patch st-alpha</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/682878259330161386eb702d8cb5746272243f55.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit 682878259330161386eb702d8cb5746272243f55
parent c6014e9e8aa2e7e806f3ab0ade8e6a541901e3ac
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 18:25:10 -0400

successfully patch st-alpha

</content>
</entry>
<entry>
<id>c6014e9e8aa2e7e806f3ab0ade8e6a541901e3ac</id>
<published>2025-07-03T22:18:46Z</published>
<updated>2025-07-03T22:18:46Z</updated>
<title>pull gitignore from old birdterm</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/c6014e9e8aa2e7e806f3ab0ade8e6a541901e3ac.html" />
<author>
<name>mrgrouse</name>
<email>bdmfegys@duck.com</email>
</author>
<content>commit c6014e9e8aa2e7e806f3ab0ade8e6a541901e3ac
parent 98610fcd37f655d44586323dc86c1d013c2798ce
Author: mrgrouse &lt;bdmfegys@duck.com&gt;
Date:   Thu,  3 Jul 2025 18:18:46 -0400

pull gitignore from old birdterm

</content>
</entry>
<entry>
<id>98610fcd37f655d44586323dc86c1d013c2798ce</id>
<published>2025-01-26T12:40:57Z</published>
<updated>2025-01-30T16:50:37Z</updated>
<title>Do not interpret CSI ? u as DECRC</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/98610fcd37f655d44586323dc86c1d013c2798ce.html" />
<author>
<name>Johannes Altmanninger</name>
<email>aclopte@gmail.com</email>
</author>
<content>commit 98610fcd37f655d44586323dc86c1d013c2798ce
parent 6009e6e25bdff9548f085e9ae562b1ca305d3a0b
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>6009e6e25bdff9548f085e9ae562b1ca305d3a0b</id>
<published>2024-11-25T11:31:56Z</published>
<updated>2024-12-06T12:42:50Z</updated>
<title>Clear screen: Fix edge case</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/6009e6e25bdff9548f085e9ae562b1ca305d3a0b.html" />
<author>
<name>Markus Rinne</name>
<email>markus.ka.rinne@gmail.com</email>
</author>
<content>commit 6009e6e25bdff9548f085e9ae562b1ca305d3a0b
parent a0274bc20e11d8672bb2953fdd1d3010c0e708c5
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>a0274bc20e11d8672bb2953fdd1d3010c0e708c5</id>
<published>2024-08-09T11:33:47Z</published>
<updated>2024-08-09T11:34:56Z</updated>
<title>fix BadMatch error when embedding on some windows</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/a0274bc20e11d8672bb2953fdd1d3010c0e708c5.html" />
<author>
<name>Lucas de Sena</name>
<email>lucas@seninha.org</email>
</author>
<content>commit a0274bc20e11d8672bb2953fdd1d3010c0e708c5
parent 5dbcca49263be094fc38159c297458ae323ef647
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>5dbcca49263be094fc38159c297458ae323ef647</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="https://git.mrgrouse.com/birdterm/commit/5dbcca49263be094fc38159c297458ae323ef647.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 5dbcca49263be094fc38159c297458ae323ef647
parent d63b9eb90245926b531bd54b1d591adb96613e70
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>d63b9eb90245926b531bd54b1d591adb96613e70</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="https://git.mrgrouse.com/birdterm/commit/d63b9eb90245926b531bd54b1d591adb96613e70.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit d63b9eb90245926b531bd54b1d591adb96613e70
parent 497a75638291454875ba1ec8d484c7f3d6f41d66
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>497a75638291454875ba1ec8d484c7f3d6f41d66</id>
<published>2024-04-03T17:48:11Z</published>
<updated>2024-04-03T17:49:05Z</updated>
<title>Reset title when an empty title string is given</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/497a75638291454875ba1ec8d484c7f3d6f41d66.html" />
<author>
<name>DOGMAN</name>
<email>dogman@aaathats3as.com</email>
</author>
<content>commit 497a75638291454875ba1ec8d484c7f3d6f41d66
parent 8c68ec52419f3f965164cafcf589b87e8961348d
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>8c68ec52419f3f965164cafcf589b87e8961348d</id>
<published>2024-03-30T11:30:49Z</published>
<updated>2024-03-30T11:37:06Z</updated>
<title>Revert &quot;Fix cursor move with wide glyphs&quot;</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/8c68ec52419f3f965164cafcf589b87e8961348d.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 8c68ec52419f3f965164cafcf589b87e8961348d
parent 5ce971628106fb767ef91bf4386227423f5fdf98
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 7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5.

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

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

	printf &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>5ce971628106fb767ef91bf4386227423f5fdf98</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="https://git.mrgrouse.com/birdterm/commit/5ce971628106fb767ef91bf4386227423f5fdf98.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 5ce971628106fb767ef91bf4386227423f5fdf98
parent f20e169a20f3ee761f7e09714f1d4c10916cf4c6
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>f20e169a20f3ee761f7e09714f1d4c10916cf4c6</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="https://git.mrgrouse.com/birdterm/commit/f20e169a20f3ee761f7e09714f1d4c10916cf4c6.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit f20e169a20f3ee761f7e09714f1d4c10916cf4c6
parent 95f22c53059ccd60ee701ccf2659dacd95e4e89a
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>95f22c53059ccd60ee701ccf2659dacd95e4e89a</id>
<published>2024-03-04T10:56:30Z</published>
<updated>2024-03-04T22:50:58Z</updated>
<title>set upper limit for REP escape sequence argument</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/95f22c53059ccd60ee701ccf2659dacd95e4e89a.html" />
<author>
<name>Tommi Hirvola</name>
<email>tommi@hirvola.fi</email>
</author>
<content>commit 95f22c53059ccd60ee701ccf2659dacd95e4e89a
parent 7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5
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>7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5</id>
<published>2024-02-25T00:31:31Z</published>
<updated>2024-02-25T10:56:43Z</updated>
<title>Fix cursor move with wide glyphs</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5.html" />
<author>
<name>Quentin Rameau</name>
<email>quinq@fifth.space</email>
</author>
<content>commit 7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5
parent a3f7420310be0fd778ef9fe2abf20edc2d8dc81a
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>a3f7420310be0fd778ef9fe2abf20edc2d8dc81a</id>
<published>2024-02-18T12:56:49Z</published>
<updated>2024-02-18T15:14:26Z</updated>
<title>csi: check for private marker in &#39;S&#39; case</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/a3f7420310be0fd778ef9fe2abf20edc2d8dc81a.html" />
<author>
<name>Tim Culverhouse</name>
<email>tim@timculverhouse.com</email>
</author>
<content>commit a3f7420310be0fd778ef9fe2abf20edc2d8dc81a
parent 9846a56bd7fdc86bf788db04bbbcbde7b7eb9952
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>9846a56bd7fdc86bf788db04bbbcbde7b7eb9952</id>
<published>2023-10-07T05:41:02Z</published>
<updated>2023-10-07T10:16:59Z</updated>
<title>Add terminfo entries for bracketed paste mode</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/9846a56bd7fdc86bf788db04bbbcbde7b7eb9952.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 9846a56bd7fdc86bf788db04bbbcbde7b7eb9952
parent 559fdc278681c98470749adb59f01cd071720458
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>559fdc278681c98470749adb59f01cd071720458</id>
<published>2023-10-07T05:40:45Z</published>
<updated>2023-10-07T10:16:59Z</updated>
<title>Unhide cursor on RIS (\033c)</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/559fdc278681c98470749adb59f01cd071720458.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 559fdc278681c98470749adb59f01cd071720458
parent 8abe4bcb41aa7fda0ae00823f6a20271124150db
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>8abe4bcb41aa7fda0ae00823f6a20271124150db</id>
<published>2023-10-07T05:40:39Z</published>
<updated>2023-10-07T10:16:59Z</updated>
<title>Fix wide glyphs breaking &quot;nowrap&quot; mode</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/8abe4bcb41aa7fda0ae00823f6a20271124150db.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 8abe4bcb41aa7fda0ae00823f6a20271124150db
parent 2fc7e532b23e2f820c6b73d352ec7c41fefa45b5
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>2fc7e532b23e2f820c6b73d352ec7c41fefa45b5</id>
<published>2023-10-07T05:40:07Z</published>
<updated>2023-10-07T10:16:59Z</updated>
<title>Don&#39;t scroll selection on the other screen</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/2fc7e532b23e2f820c6b73d352ec7c41fefa45b5.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit 2fc7e532b23e2f820c6b73d352ec7c41fefa45b5
parent a6bbc0c96b0a1db804061b0db79101c6b26aec57
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>a6bbc0c96b0a1db804061b0db79101c6b26aec57</id>
<published>2023-10-07T05:39:00Z</published>
<updated>2023-10-07T10:16:59Z</updated>
<title>Fix bounds checks of dc.col</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/a6bbc0c96b0a1db804061b0db79101c6b26aec57.html" />
<author>
<name>Peter Hofmann</name>
<email>scm@uninformativ.de</email>
</author>
<content>commit a6bbc0c96b0a1db804061b0db79101c6b26aec57
parent eb3b894f4076f2b25afc644a1f444b5cbd96aae8
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>eb3b894f4076f2b25afc644a1f444b5cbd96aae8</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="https://git.mrgrouse.com/birdterm/commit/eb3b894f4076f2b25afc644a1f444b5cbd96aae8.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit eb3b894f4076f2b25afc644a1f444b5cbd96aae8
parent 3a6d6d740110e6ee1b092d05ad746244eedabe4b
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>3a6d6d740110e6ee1b092d05ad746244eedabe4b</id>
<published>2023-06-25T05:38:33Z</published>
<updated>2023-06-25T09:59:06Z</updated>
<title>Fix for wide character being incorrectly cleared on MODE_INSERT</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/3a6d6d740110e6ee1b092d05ad746244eedabe4b.html" />
<author>
<name>Shi Tian</name>
<email>shitian@cock.li</email>
</author>
<content>commit 3a6d6d740110e6ee1b092d05ad746244eedabe4b
parent 211964d56ee00a7d46e251cbc150afb79138ae37
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>211964d56ee00a7d46e251cbc150afb79138ae37</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="https://git.mrgrouse.com/birdterm/commit/211964d56ee00a7d46e251cbc150afb79138ae37.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 211964d56ee00a7d46e251cbc150afb79138ae37
parent f17abd25b376c292f783062ecf821453eaa9cc4c
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>f17abd25b376c292f783062ecf821453eaa9cc4c</id>
<published>2023-02-07T18:54:29Z</published>
<updated>2023-02-07T18:57:34Z</updated>
<title>Add support for DSR response &quot;OK&quot; escape sequence</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/f17abd25b376c292f783062ecf821453eaa9cc4c.html" />
<author>
<name>Adam Price</name>
<email>komidore64@gmail.com</email>
</author>
<content>commit f17abd25b376c292f783062ecf821453eaa9cc4c
parent 7e8050cc621f27002eaf1be8114dee2497beff91
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>7e8050cc621f27002eaf1be8114dee2497beff91</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="https://git.mrgrouse.com/birdterm/commit/7e8050cc621f27002eaf1be8114dee2497beff91.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7e8050cc621f27002eaf1be8114dee2497beff91
parent e5e959835b195c023d1f685ef4dbbcfc3b5120b2
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>e5e959835b195c023d1f685ef4dbbcfc3b5120b2</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="https://git.mrgrouse.com/birdterm/commit/e5e959835b195c023d1f685ef4dbbcfc3b5120b2.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit e5e959835b195c023d1f685ef4dbbcfc3b5120b2
parent 68d1ad9b54e952e3079356aeab8ab37e44c56c2c
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>68d1ad9b54e952e3079356aeab8ab37e44c56c2c</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="https://git.mrgrouse.com/birdterm/commit/68d1ad9b54e952e3079356aeab8ab37e44c56c2c.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 68d1ad9b54e952e3079356aeab8ab37e44c56c2c
parent 00085199039ee63acc7b1ecb7e3774a9c3552b2a
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>00085199039ee63acc7b1ecb7e3774a9c3552b2a</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="https://git.mrgrouse.com/birdterm/commit/00085199039ee63acc7b1ecb7e3774a9c3552b2a.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 00085199039ee63acc7b1ecb7e3774a9c3552b2a
parent 72fd32736a612edec43596c14148322122a5544d
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>72fd32736a612edec43596c14148322122a5544d</id>
<published>2022-08-18T14:55:19Z</published>
<updated>2022-08-18T15:14:10Z</updated>
<title>st: use `void&#39; to indicate an empty parameter list</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/72fd32736a612edec43596c14148322122a5544d.html" />
<author>
<name>Tom Schwindl</name>
<email>schwindl@posteo.de</email>
</author>
<content>commit 72fd32736a612edec43596c14148322122a5544d
parent baa9357e96d2478baa52a3301e70ac80a229b726
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>baa9357e96d2478baa52a3301e70ac80a229b726</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="https://git.mrgrouse.com/birdterm/commit/baa9357e96d2478baa52a3301e70ac80a229b726.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit baa9357e96d2478baa52a3301e70ac80a229b726
parent 8629d9a1da72cc18568a8f146307b0e939b77ebf
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>8629d9a1da72cc18568a8f146307b0e939b77ebf</id>
<published>2022-01-07T17:21:04Z</published>
<updated>2022-04-19T09:43:37Z</updated>
<title>code-golfing: cleanup osc color related code</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/8629d9a1da72cc18568a8f146307b0e939b77ebf.html" />
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<content>commit 8629d9a1da72cc18568a8f146307b0e939b77ebf
parent ef0551932fb162f907b40185d2f48c3b497708ee
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>ef0551932fb162f907b40185d2f48c3b497708ee</id>
<published>2022-03-18T11:03:34Z</published>
<updated>2022-03-18T11:20:27Z</updated>
<title>base64_digits: reduce scope, implicit zero, +1 size</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/ef0551932fb162f907b40185d2f48c3b497708ee.html" />
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<content>commit ef0551932fb162f907b40185d2f48c3b497708ee
parent af3bb68add1c40d19d0dee382009e21b0870a38f
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>af3bb68add1c40d19d0dee382009e21b0870a38f</id>
<published>2022-03-18T10:20:54Z</published>
<updated>2022-03-18T11:11:27Z</updated>
<title>avoid potential UB when using isprint()</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/af3bb68add1c40d19d0dee382009e21b0870a38f.html" />
<author>
<name>NRK</name>
<email>nrk@disroot.org</email>
</author>
<content>commit af3bb68add1c40d19d0dee382009e21b0870a38f
parent 2aefa348baf4b702fdce98eb105bcba175d8283f
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>2aefa348baf4b702fdce98eb105bcba175d8283f</id>
<published>2022-03-13T09:44:08Z</published>
<updated>2022-03-13T09:45:34Z</updated>
<title>make underlines and strikethroughs respect `chscale`</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/2aefa348baf4b702fdce98eb105bcba175d8283f.html" />
<author>
<name>Zacchary Dempsey-Plante</name>
<email>zacc@ztdp.ca</email>
</author>
<content>commit 2aefa348baf4b702fdce98eb105bcba175d8283f
parent e823e2308f2a99023032a3966ebb7036a31d305f
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>e823e2308f2a99023032a3966ebb7036a31d305f</id>
<published>2022-02-17T14:00:47Z</published>
<updated>2022-02-18T12:03:37Z</updated>
<title>Delay redrawals on palette changes</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/e823e2308f2a99023032a3966ebb7036a31d305f.html" />
<author>
<name>Santtu Lakkala</name>
<email>inz@inz.fi</email>
</author>
<content>commit e823e2308f2a99023032a3966ebb7036a31d305f
parent 2c5edf28ec851907305d73c6218ce75d39f1767f
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>2c5edf28ec851907305d73c6218ce75d39f1767f</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="https://git.mrgrouse.com/birdterm/commit/2c5edf28ec851907305d73c6218ce75d39f1767f.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 2c5edf28ec851907305d73c6218ce75d39f1767f
parent b1d97fec47b0d6633addb848131388ec40154ebc
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>b1d97fec47b0d6633addb848131388ec40154ebc</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="https://git.mrgrouse.com/birdterm/commit/b1d97fec47b0d6633addb848131388ec40154ebc.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit b1d97fec47b0d6633addb848131388ec40154ebc
parent ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Mon, 10 Jan 2022 17:11:17 +0100

LICENSE: bump year

</content>
</entry>
<entry>
<id>ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32</id>
<published>2022-01-08T19:40:34Z</published>
<updated>2022-01-10T16:04:01Z</updated>
<title>Fix mousereport</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32.html" />
<author>
<name>robert</name>
<email>robertrussell.72001@gmail.com</email>
</author>
<content>commit ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32
parent 7fb0c0cc681f36be2ad12091ef93a41671f32738
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>7fb0c0cc681f36be2ad12091ef93a41671f32738</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="https://git.mrgrouse.com/birdterm/commit/7fb0c0cc681f36be2ad12091ef93a41671f32738.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7fb0c0cc681f36be2ad12091ef93a41671f32738
parent 7e1c68f25d9f08687a94eeef8d7f8ffd0d14b911
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>7e1c68f25d9f08687a94eeef8d7f8ffd0d14b911</id>
<published>2022-01-02T11:15:45Z</published>
<updated>2022-01-02T11:16:57Z</updated>
<title>FAQ: fix a typo, patch -&gt; path</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/7e1c68f25d9f08687a94eeef8d7f8ffd0d14b911.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 7e1c68f25d9f08687a94eeef8d7f8ffd0d14b911
parent 65f1dc428315ae9d7f362e10c668557c1379e7af
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>65f1dc428315ae9d7f362e10c668557c1379e7af</id>
<published>2021-12-29T17:07:17Z</published>
<updated>2021-12-30T17:37:17Z</updated>
<title>Fix overtyping wide characters.</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/65f1dc428315ae9d7f362e10c668557c1379e7af.html" />
<author>
<name>jamin</name>
<email>acdimalev@gmail.com</email>
</author>
<content>commit 65f1dc428315ae9d7f362e10c668557c1379e7af
parent a0467c802d4f86ed162486e3453dd61181423902
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>a0467c802d4f86ed162486e3453dd61181423902</id>
<published>2021-12-27T10:41:42Z</published>
<updated>2021-12-27T12:07:11Z</updated>
<title>Fix null pointer access in strhandle</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/a0467c802d4f86ed162486e3453dd61181423902.html" />
<author>
<name>Jochen Sprickerhof</name>
<email>git@jochen.sprickerhof.de</email>
</author>
<content>commit a0467c802d4f86ed162486e3453dd61181423902
parent 273db5ceaf392e68c2faf8f7dec14ea2e25e980d
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 8e31030.

</content>
</entry>
<entry>
<id>273db5ceaf392e68c2faf8f7dec14ea2e25e980d</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="https://git.mrgrouse.com/birdterm/commit/273db5ceaf392e68c2faf8f7dec14ea2e25e980d.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 273db5ceaf392e68c2faf8f7dec14ea2e25e980d
parent 8e310303903792c010d03c046ba75f8b18f7d3a7
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>8e310303903792c010d03c046ba75f8b18f7d3a7</id>
<published>2021-12-26T17:57:04Z</published>
<updated>2021-12-26T17:57:44Z</updated>
<title>Add support for OSC color sequences</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/8e310303903792c010d03c046ba75f8b18f7d3a7.html" />
<author>
<name>Raheman Vaiya</name>
<email>r.vaiya@gmail.com</email>
</author>
<content>commit 8e310303903792c010d03c046ba75f8b18f7d3a7
parent 2f6e597ed871cff91c627850d03152cae5f45779
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>2f6e597ed871cff91c627850d03152cae5f45779</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="https://git.mrgrouse.com/birdterm/commit/2f6e597ed871cff91c627850d03152cae5f45779.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 2f6e597ed871cff91c627850d03152cae5f45779
parent 1d3142da968da7f6f61f1c1708f39ca233eda150
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>1d3142da968da7f6f61f1c1708f39ca233eda150</id>
<published>2021-08-23T21:25:05Z</published>
<updated>2021-08-24T11:30:11Z</updated>
<title>fix a problem that the standard streams are unexpectedly closed</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/1d3142da968da7f6f61f1c1708f39ca233eda150.html" />
<author>
<name>Koichi Murase</name>
<email>myoga.murase@gmail.com</email>
</author>
<content>commit 1d3142da968da7f6f61f1c1708f39ca233eda150
parent 2ec571a30c0c3b1a17f6b3631c80d573582f59a1
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>2ec571a30c0c3b1a17f6b3631c80d573582f59a1</id>
<published>2021-07-17T22:14:00Z</published>
<updated>2021-07-18T09:44:56Z</updated>
<title>Add 14th bit to XK_SWITCH_MOD bitmask</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/2ec571a30c0c3b1a17f6b3631c80d573582f59a1.html" />
<author>
<name>Petar Kapriš</name>
<email>petarkapris@firemail.cc</email>
</author>
<content>commit 2ec571a30c0c3b1a17f6b3631c80d573582f59a1
parent 4536f46cfff50c66a115755def0155d8e246b02f
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>4536f46cfff50c66a115755def0155d8e246b02f</id>
<published>2021-03-28T19:16:59Z</published>
<updated>2021-05-06T16:21:10Z</updated>
<title>Mild const-correctness improvements.</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/4536f46cfff50c66a115755def0155d8e246b02f.html" />
<author>
<name>Markus F.X.J. Oberhumer</name>
<email>markus@oberhumer.com</email>
</author>
<content>commit 4536f46cfff50c66a115755def0155d8e246b02f
parent 9e68fdbcdb06dfa3d23fe3a7a7f7b59e40e1ea2f
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>9e68fdbcdb06dfa3d23fe3a7a7f7b59e40e1ea2f</id>
<published>2021-03-19T10:54:36Z</published>
<updated>2021-03-19T10:58:59Z</updated>
<title>fix: correctly encode mouse buttons &gt;= 8 in X10 and SGR mode</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/9e68fdbcdb06dfa3d23fe3a7a7f7b59e40e1ea2f.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 9e68fdbcdb06dfa3d23fe3a7a7f7b59e40e1ea2f
parent 4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf
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>4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf</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="https://git.mrgrouse.com/birdterm/commit/4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf
parent 28b4c822c5c0acec300fdf15c6e3ede9f5e2335d
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>28b4c822c5c0acec300fdf15c6e3ede9f5e2335d</id>
<published>2020-09-06T05:53:41Z</published>
<updated>2020-10-18T09:17:11Z</updated>
<title>ST: Add WM_ICON_NAME property support</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/28b4c822c5c0acec300fdf15c6e3ede9f5e2335d.html" />
<author>
<name>John Collis</name>
<email>john.collis@alliedtelesis.co.nz</email>
</author>
<content>commit 28b4c822c5c0acec300fdf15c6e3ede9f5e2335d
parent fa253f077f19b3220c7655b81bd91e52f4367803
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>fa253f077f19b3220c7655b81bd91e52f4367803</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="https://git.mrgrouse.com/birdterm/commit/fa253f077f19b3220c7655b81bd91e52f4367803.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit fa253f077f19b3220c7655b81bd91e52f4367803
parent b27a383a3acc7decf00e6e889fca265430b5d329
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>b27a383a3acc7decf00e6e889fca265430b5d329</id>
<published>2020-06-17T21:47:00Z</published>
<updated>2020-06-17T21:49:40Z</updated>
<title>config.mk: use PKG_CONFIG in commented OpenBSD section</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/b27a383a3acc7decf00e6e889fca265430b5d329.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit b27a383a3acc7decf00e6e889fca265430b5d329
parent 81067c65ea4dd80e8eb34755a4f50a4a8c7df06b
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>81067c65ea4dd80e8eb34755a4f50a4a8c7df06b</id>
<published>2020-06-17T21:44:34Z</published>
<updated>2020-06-17T21:49:40Z</updated>
<title>LICENSE: bump years</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/81067c65ea4dd80e8eb34755a4f50a4a8c7df06b.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 81067c65ea4dd80e8eb34755a4f50a4a8c7df06b
parent f74a9df6e1fc88eebe6d673d888b61fd83cf6fc4
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Wed, 17 Jun 2020 23:44:34 +0200

LICENSE: bump years

</content>
</entry>
<entry>
<id>f74a9df6e1fc88eebe6d673d888b61fd83cf6fc4</id>
<published>2020-06-17T20:05:48Z</published>
<updated>2020-06-17T21:49:22Z</updated>
<title>remove sixel stub code</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/f74a9df6e1fc88eebe6d673d888b61fd83cf6fc4.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit f74a9df6e1fc88eebe6d673d888b61fd83cf6fc4
parent 818ec746f4caae453d09368b101c3e841cf39870
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 f7398434.

</content>
</entry>
<entry>
<id>818ec746f4caae453d09368b101c3e841cf39870</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="https://git.mrgrouse.com/birdterm/commit/818ec746f4caae453d09368b101c3e841cf39870.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 818ec746f4caae453d09368b101c3e841cf39870
parent 9ba7ecf7b15ec2986c6142036706aa353b249ef9
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 9ba7ecf), 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>9ba7ecf7b15ec2986c6142036706aa353b249ef9</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="https://git.mrgrouse.com/birdterm/commit/9ba7ecf7b15ec2986c6142036706aa353b249ef9.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 9ba7ecf7b15ec2986c6142036706aa353b249ef9
parent a2a704492b9f4d2408d180f7aeeacf4c789a1d67
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>a2a704492b9f4d2408d180f7aeeacf4c789a1d67</id>
<published>2020-05-30T19:56:18Z</published>
<updated>2020-05-30T20:06:15Z</updated>
<title>config.def.h: add an option allowwindowops, by default off (secure)</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/a2a704492b9f4d2408d180f7aeeacf4c789a1d67.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit a2a704492b9f4d2408d180f7aeeacf4c789a1d67
parent 0f8b40652bca0670f1f0bda069bbc55f8b5e364d
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>0f8b40652bca0670f1f0bda069bbc55f8b5e364d</id>
<published>2020-05-30T19:50:54Z</published>
<updated>2020-05-30T20:05:17Z</updated>
<title>FAQ: add some details about the w3m img hack</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/0f8b40652bca0670f1f0bda069bbc55f8b5e364d.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 0f8b40652bca0670f1f0bda069bbc55f8b5e364d
parent e6e2c6199f102f1459b53717050eee27832f4f87
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>e6e2c6199f102f1459b53717050eee27832f4f87</id>
<published>2020-05-30T19:39:49Z</published>
<updated>2020-05-30T20:05:17Z</updated>
<title>tiny style fix</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/e6e2c6199f102f1459b53717050eee27832f4f87.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit e6e2c6199f102f1459b53717050eee27832f4f87
parent 94b8ec002101a5e8f52a342e53431eea71aa0631
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 30 May 2020 21:39:49 +0200

tiny style fix

</content>
</entry>
<entry>
<id>94b8ec002101a5e8f52a342e53431eea71aa0631</id>
<published>2020-05-30T19:34:57Z</published>
<updated>2020-05-30T20:04:28Z</updated>
<title>Partially add back in &quot;support REP (repeat) escape sequence&quot;</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/94b8ec002101a5e8f52a342e53431eea71aa0631.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 94b8ec002101a5e8f52a342e53431eea71aa0631
parent dec6b530a4fddf405c1822b2cac6e2036d3c8b75
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>dec6b530a4fddf405c1822b2cac6e2036d3c8b75</id>
<published>2020-05-21T02:24:55Z</published>
<updated>2020-05-24T11:45:42Z</updated>
<title>Call xsetcursor to set win.cursor in main</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/dec6b530a4fddf405c1822b2cac6e2036d3c8b75.html" />
<author>
<name>Steve Ward</name>
<email>planet36@gmail.com</email>
</author>
<content>commit dec6b530a4fddf405c1822b2cac6e2036d3c8b75
parent 475a0a36cb4fda1da30f014da65988e99b222876
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>475a0a36cb4fda1da30f014da65988e99b222876</id>
<published>2020-05-16T16:06:42Z</published>
<updated>2020-05-16T19:06:13Z</updated>
<title>Revert &quot;support REP (repeat) escape sequence&quot;</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/475a0a36cb4fda1da30f014da65988e99b222876.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 475a0a36cb4fda1da30f014da65988e99b222876
parent e8392b282c2eaa28725241a9612804fb55113da4
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 e8392b282c2eaa28725241a9612804fb55113da4.

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>e8392b282c2eaa28725241a9612804fb55113da4</id>
<published>2020-05-14T15:18:07Z</published>
<updated>2020-05-16T12:08:10Z</updated>
<title>support REP (repeat) escape sequence</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/e8392b282c2eaa28725241a9612804fb55113da4.html" />
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<content>commit e8392b282c2eaa28725241a9612804fb55113da4
parent f8afebdfa0cc9a57b22c39c47e9b585f69453eb7
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>f8afebdfa0cc9a57b22c39c47e9b585f69453eb7</id>
<published>2020-05-16T10:42:51Z</published>
<updated>2020-05-16T12:07:31Z</updated>
<title>Add rin terminfo capability</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/f8afebdfa0cc9a57b22c39c47e9b585f69453eb7.html" />
<author>
<name>Roberto E. Vargas</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit f8afebdfa0cc9a57b22c39c47e9b585f69453eb7
parent bda9c9ffa645ee5e4b2507474ebfa1c5efb889b2
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>bda9c9ffa645ee5e4b2507474ebfa1c5efb889b2</id>
<published>2020-05-16T09:48:18Z</published>
<updated>2020-05-16T10:37:14Z</updated>
<title>Make shift+wheel behaves as shift+Prev/Next</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/bda9c9ffa645ee5e4b2507474ebfa1c5efb889b2.html" />
<author>
<name>k0ga</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit bda9c9ffa645ee5e4b2507474ebfa1c5efb889b2
parent 045a0fab4f80b57f4a982ae6bc5f33fe21d66111
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>045a0fab4f80b57f4a982ae6bc5f33fe21d66111</id>
<published>2020-05-06T11:36:59Z</published>
<updated>2020-05-12T13:38:17Z</updated>
<title>Fix selection: selscroll</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/045a0fab4f80b57f4a982ae6bc5f33fe21d66111.html" />
<author>
<name>Jakub Leszczak</name>
<email>szatan@gecc.xyz</email>
</author>
<content>commit 045a0fab4f80b57f4a982ae6bc5f33fe21d66111
parent 9c30066e73f0105c3fccb7582c8172d5117857b3
Author: Jakub Leszczak &lt;szatan@gecc.xyz&gt;
Date:   Wed,  6 May 2020 13:36:59 +0200

Fix selection: selscroll

</content>
</entry>
<entry>
<id>9c30066e73f0105c3fccb7582c8172d5117857b3</id>
<published>2020-05-06T11:35:53Z</published>
<updated>2020-05-12T13:38:02Z</updated>
<title>Fix selection: ignore ATTR_WRAP when rectangular selection in getsel</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/9c30066e73f0105c3fccb7582c8172d5117857b3.html" />
<author>
<name>Jakub Leszczak</name>
<email>szatan@gecc.xyz</email>
</author>
<content>commit 9c30066e73f0105c3fccb7582c8172d5117857b3
parent 8304d4f0599b1be2226c28c553547070658d4af3
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>8304d4f0599b1be2226c28c553547070658d4af3</id>
<published>2020-05-06T11:35:06Z</published>
<updated>2020-05-12T13:37:59Z</updated>
<title>Fix selection: selclear in tputc</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/8304d4f0599b1be2226c28c553547070658d4af3.html" />
<author>
<name>Jakub Leszczak</name>
<email>szatan@gecc.xyz</email>
</author>
<content>commit 8304d4f0599b1be2226c28c553547070658d4af3
parent 914fb825df3bde7abdd7947e54f8bf4d2b55e34e
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>914fb825df3bde7abdd7947e54f8bf4d2b55e34e</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="https://git.mrgrouse.com/birdterm/commit/914fb825df3bde7abdd7947e54f8bf4d2b55e34e.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 914fb825df3bde7abdd7947e54f8bf4d2b55e34e
parent cde480c6939e62771ba3b60ef4eb848031aee9f9
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>cde480c6939e62771ba3b60ef4eb848031aee9f9</id>
<published>2020-05-09T12:03:14Z</published>
<updated>2020-05-09T12:11:25Z</updated>
<title>optimize column width calculation and utf-8 encode for ASCII</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/cde480c6939e62771ba3b60ef4eb848031aee9f9.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit cde480c6939e62771ba3b60ef4eb848031aee9f9
parent 8211e36d281990a39db1853bcd454ac59e53d521
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>8211e36d281990a39db1853bcd454ac59e53d521</id>
<published>2020-05-09T11:56:28Z</published>
<updated>2020-05-09T12:07:52Z</updated>
<title>fix for incorrect (partial) written sequences when libc wcwidth() == -1</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/8211e36d281990a39db1853bcd454ac59e53d521.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 8211e36d281990a39db1853bcd454ac59e53d521
parent 87545c612e8ab6e7cd1ef38e2355d0cb86df79f2
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 11625c7166b7e4dad414606227acec2de1c36464
	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>87545c612e8ab6e7cd1ef38e2355d0cb86df79f2</id>
<published>2020-05-09T11:55:34Z</published>
<updated>2020-05-09T12:05:04Z</updated>
<title>tiny code-style and typo-fix in comment</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/87545c612e8ab6e7cd1ef38e2355d0cb86df79f2.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 87545c612e8ab6e7cd1ef38e2355d0cb86df79f2
parent 1d590910652519268152eae6b97cf30ace4e90c0
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>1d590910652519268152eae6b97cf30ace4e90c0</id>
<published>2019-02-26T20:37:49Z</published>
<updated>2020-05-09T11:53:50Z</updated>
<title>auto-sync: draw on idle to avoid flicker/tearing</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/1d590910652519268152eae6b97cf30ace4e90c0.html" />
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<content>commit 1d590910652519268152eae6b97cf30ace4e90c0
parent d6ea0a1a61853dd892029a7126e7fdb70c371878
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>d6ea0a1a61853dd892029a7126e7fdb70c371878</id>
<published>2020-04-29T22:10:02Z</published>
<updated>2020-04-29T23:21:21Z</updated>
<title>replace exit(3) by _exit(2) in signal handler sigchld()</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/d6ea0a1a61853dd892029a7126e7fdb70c371878.html" />
<author>
<name>Jan Klemkow</name>
<email>j.klemkow@wemelug.de</email>
</author>
<content>commit d6ea0a1a61853dd892029a7126e7fdb70c371878
parent 43a395ae91f7d67ce694e65edeaa7bbc720dd027
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>43a395ae91f7d67ce694e65edeaa7bbc720dd027</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="https://git.mrgrouse.com/birdterm/commit/43a395ae91f7d67ce694e65edeaa7bbc720dd027.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 43a395ae91f7d67ce694e65edeaa7bbc720dd027
parent 72e3f6c7c05b4d5b56388508bb20a863aec279f5
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>72e3f6c7c05b4d5b56388508bb20a863aec279f5</id>
<published>2020-04-19T17:38:39Z</published>
<updated>2020-04-19T17:39:48Z</updated>
<title>Update XIM cursor position only if changed</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/72e3f6c7c05b4d5b56388508bb20a863aec279f5.html" />
<author>
<name>Ivan Tham</name>
<email>pickfire@riseup.net</email>
</author>
<content>commit 72e3f6c7c05b4d5b56388508bb20a863aec279f5
parent 33a9a456644ceb235ea6ce61282f3bdce7a8b547
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>33a9a456644ceb235ea6ce61282f3bdce7a8b547</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="https://git.mrgrouse.com/birdterm/commit/33a9a456644ceb235ea6ce61282f3bdce7a8b547.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 33a9a456644ceb235ea6ce61282f3bdce7a8b547
parent 771bc401f76b329f78a285ca65355d4b43415172
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>771bc401f76b329f78a285ca65355d4b43415172</id>
<published>2020-04-11T12:46:17Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>Add st-mono terminfo entry</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/771bc401f76b329f78a285ca65355d4b43415172.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit 771bc401f76b329f78a285ca65355d4b43415172
parent d66bd405c0d0f29beff89683a04a10297e962cb9
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>d66bd405c0d0f29beff89683a04a10297e962cb9</id>
<published>2020-04-11T11:56:31Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>config.def.h: add a comment for the scroll variable</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/d66bd405c0d0f29beff89683a04a10297e962cb9.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit d66bd405c0d0f29beff89683a04a10297e962cb9
parent e997303502ddd5c26cfc41af0ff5356bffc04359
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>e997303502ddd5c26cfc41af0ff5356bffc04359</id>
<published>2020-04-11T11:29:48Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>Fix small typos</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/e997303502ddd5c26cfc41af0ff5356bffc04359.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit e997303502ddd5c26cfc41af0ff5356bffc04359
parent c1145268f6b6c6f03a8bec1c09d356d6a4eba77e
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sat, 11 Apr 2020 13:29:48 +0200

Fix small typos

</content>
</entry>
<entry>
<id>c1145268f6b6c6f03a8bec1c09d356d6a4eba77e</id>
<published>2020-04-11T10:09:20Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>Launch scroll program with the default shell</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/c1145268f6b6c6f03a8bec1c09d356d6a4eba77e.html" />
<author>
<name>Quentin Rameau</name>
<email>quinq@fifth.space</email>
</author>
<content>commit c1145268f6b6c6f03a8bec1c09d356d6a4eba77e
parent 0b73612c0dc51dbec1717e5da94bc94559c37246
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>
<entry>
<id>0b73612c0dc51dbec1717e5da94bc94559c37246</id>
<published>2020-04-11T09:52:58Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>Update FAQ with the last modifications</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/0b73612c0dc51dbec1717e5da94bc94559c37246.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit 0b73612c0dc51dbec1717e5da94bc94559c37246
parent 019449a7e64a881be8cc5d715fe9de32726ba190
Author: Roberto E. Vargas Caballero &lt;k0ga@shike2.com&gt;
Date:   Sat, 11 Apr 2020 11:52:58 +0200

Update FAQ with the last modifications

</content>
</entry>
<entry>
<id>019449a7e64a881be8cc5d715fe9de32726ba190</id>
<published>2020-04-10T20:50:23Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>Add terminfo entries for backspace mode</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/019449a7e64a881be8cc5d715fe9de32726ba190.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit 019449a7e64a881be8cc5d715fe9de32726ba190
parent fbae700a3f32db76106b0ff6f49a73ecf0c2b4fe
Author: Roberto E. Vargas Caballero &lt;k0ga@shike2.com&gt;
Date:   Fri, 10 Apr 2020 22:50:23 +0200

Add terminfo entries for backspace mode

St used to use backspace as BS until the commit 230d0c8, but due
to general lack of knowledge of lusers, we moved to the most common
configuration in linux to avoid answering the same question 3 times
per month. With the most common configuration we have a backspace
that returns a DEL, and we have a Delete key that doesn&#39;t return a
DEL character neither a BS.

When dealing with devices connected using a serial line (or even
with Plan9) it is more common Backspace as BS and Delete as DEL. For
this reason, st is not always the best tool when you talk with a
serial device.

This patch adds new terminfo entries for Backspace as BS and Delete
as DEL. A patch for confg.h is also added, to make easier switch
between both configurations.

</content>
</entry>
<entry>
<id>fbae700a3f32db76106b0ff6f49a73ecf0c2b4fe</id>
<published>2020-04-10T20:26:12Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>Fix style issue</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/fbae700a3f32db76106b0ff6f49a73ecf0c2b4fe.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit fbae700a3f32db76106b0ff6f49a73ecf0c2b4fe
parent e52319cc7d153e4f59b38c4fb4c0556e118d4775
Author: Roberto E. Vargas Caballero &lt;k0ga@shike2.com&gt;
Date:   Fri, 10 Apr 2020 22:26:12 +0200

Fix style issue

</content>
</entry>
<entry>
<id>e52319cc7d153e4f59b38c4fb4c0556e118d4775</id>
<published>2020-04-10T20:25:46Z</published>
<updated>2020-04-11T13:23:23Z</updated>
<title>ttyread: test for EOF while reading tty</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/e52319cc7d153e4f59b38c4fb4c0556e118d4775.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit e52319cc7d153e4f59b38c4fb4c0556e118d4775
parent 21e0d6e8b8d20903494386e7e6f43201b3761154
Author: Roberto E. Vargas Caballero &lt;k0ga@shike2.com&gt;
Date:   Fri, 10 Apr 2020 22:25:46 +0200

ttyread: test for EOF while reading tty

When a read operation returns 0 then it means that we arrived to the end of the
file, and new reads will return 0 unless you do some other operation such as
lseek(). This case happens with USB-232 adapters when they are unplugged.

</content>
</entry>
<entry>
<id>21e0d6e8b8d20903494386e7e6f43201b3761154</id>
<published>2020-04-10T20:06:32Z</published>
<updated>2020-04-11T13:23:20Z</updated>
<title>Add support for scroll(1)</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/21e0d6e8b8d20903494386e7e6f43201b3761154.html" />
<author>
<name>Roberto E. Vargas Caballero</name>
<email>k0ga@shike2.com</email>
</author>
<content>commit 21e0d6e8b8d20903494386e7e6f43201b3761154
parent 5703aa0390484dd7da4bd9c388c85708d8fcd339
Author: Roberto E. Vargas Caballero &lt;k0ga@shike2.com&gt;
Date:   Fri, 10 Apr 2020 22:06:32 +0200

Add support for scroll(1)

Scroll is a program that stores all the lines of its child and be used in st as
a way of implementing scrollback.

This solution is much better than implementing the scrollback in st itself
because having a different program allows to use it in any other program
without doing modifications to those programs.

</content>
</entry>
<entry>
<id>5703aa0390484dd7da4bd9c388c85708d8fcd339</id>
<published>2020-04-10T10:12:43Z</published>
<updated>2020-04-10T10:12:43Z</updated>
<title>make argv0 not static, fixes a warning with tcc</title>
<link rel="alternate" type="text/html" href="https://git.mrgrouse.com/birdterm/commit/5703aa0390484dd7da4bd9c388c85708d8fcd339.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 5703aa0390484dd7da4bd9c388c85708d8fcd339
parent 28ad28839985e965c9ca06a9a202523414c84ac4
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Fri, 10 Apr 2020 12:12:43 +0200

make argv0 not static, fixes a warning with tcc

Reported by Aajonus, thanks!

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