<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32, branch zstd</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=zstd</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=zstd'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2026-03-24T12:15:33+00:00</updated>
<entry>
<title>archival: support zstd in rpm and dpkg</title>
<updated>2026-03-24T12:15:33+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-24T12:15:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=aaae1865727bcd53da581340456de34dfb182d5c'/>
<id>urn:sha1:aaae1865727bcd53da581340456de34dfb182d5c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tar: support zstd compression</title>
<updated>2026-03-22T13:30:58+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-22T13:30:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=052807cc3330b3c5c1fb60b93ad0d2039d6142df'/>
<id>urn:sha1:052807cc3330b3c5c1fb60b93ad0d2039d6142df</id>
<content type='text'>
Use external utilities (not supplied!) to support zstd compression
in tar.

Adds 232-256 bytes.
</content>
</entry>
<entry>
<title>build system: add option to place statics in .bss</title>
<updated>2026-03-21T15:17:04+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-21T15:17:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=8d97f41766c905bf527ee1b08d021fc4ae9d5af3'/>
<id>urn:sha1:8d97f41766c905bf527ee1b08d021fc4ae9d5af3</id>
<content type='text'>
Upstream BusyBox uses the '-fdata-sections' compiler flag.  On
Windows this has the unfortunate side effect that static variables
are placed in the .data section, thus increasing the size of the
binary.

Add a configuration option, STATICS_IN_BSS, to force statics into
.bss on Windows, saving 2-5KB for most binaries.  It has no
effect on POSIX builds, where statics are always placed in .bss.
</content>
</entry>
<entry>
<title>win32: UTF8_OUTPUT: don't fail due to nwritten value</title>
<updated>2026-03-19T15:04:16+00:00</updated>
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<published>2026-03-18T15:50:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=5b1e02cde21fef4fb9d8e8130818bb49e422dcfa'/>
<id>urn:sha1:5b1e02cde21fef4fb9d8e8130818bb49e422dcfa</id>
<content type='text'>
The "nwritten" argument and failure conditions were added in commit
208649d7b5, as it crashed on windows XP without it, and specifically
because WriteConsoleW on XP expects this to be a non-NULL argument.

However, writeCon_utf8 should not be called on XP - and indeed it's
not since commit 234a3b97d3, because it produces incorrect output
unless the UTF8 manifest is in effect - which never happens on XP.
So it was called due to a bug, and it's not called on XP anymore.

Nevertheless, it's possible that in the future we will support native
Windows Unicode without the manifest - also on XP, and in such case
writeCon_utf8 might get called on XP as well, so keep this argument.

However the nwritten failure condition doesn't belong here.

It's not needed on XP, and MS docs doesn't say that this value should
tested in addition to the return value in order to determine failure,
and theoretically there could be differences unrelated to failure.

So ignore this value when determining failure. Return value is enough.
</content>
</entry>
<entry>
<title>win32: UTF8_OUTPUT: refine bad-sequence output</title>
<updated>2026-03-19T15:04:16+00:00</updated>
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<published>2026-03-18T11:38:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=df652277439a30a973438577b1a370f4a7d2f47c'/>
<id>urn:sha1:df652277439a30a973438577b1a370f4a7d2f47c</id>
<content type='text'>
Previously, at writeCon_utf8, when we detected an invalid byte (for
the current state), then we printed one '?' which also covered any
following invalid bytes, until a valid byte for state 0 was detected.

For instance printf '\377\377\377A' printed '?A' (3 bad bytes, 1 '?').

This was by design to avoid excessive '?' noise.

However, other terminals (xterm), and specifically windows console
(and terminal), print one '?' for any decoding error, and also reset
the decoding state after every error.

I.e. the same input would error 3 times, and display '???A'.

Now we do the same, which also happens to simplify the code.

The reference behavior is windows console/terminal in UTF-8 codepage
(which writeCon_utf8 tries to emulate in other console codepages).
To compare, do 'chcp 65001' to set the console to UTF-8 - which also
bypasses writeCon_utf8, and check how the terminal displays some
sequence. We should be the same, up to CONFIG_SUBST_WCHAR value.

The "state" comment is updated since we no longer maintain bad state.
While at it, refine also few nearby comments.
</content>
</entry>
<entry>
<title>Update default configurations</title>
<updated>2026-03-11T10:14:58+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-11T10:14:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=0b0ab67527a62f567a88fd674fbe0c2b2499c87e'/>
<id>urn:sha1:0b0ab67527a62f567a88fd674fbe0c2b2499c87e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'busybox' into merge</title>
<updated>2026-03-11T10:14:49+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-11T10:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=ede205bd07573813337b5706acb0cae3b127a36f'/>
<id>urn:sha1:ede205bd07573813337b5706acb0cae3b127a36f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ash: fix here strings causing segfault in function invocation</title>
<updated>2026-03-09T14:23:59+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-04T15:04:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=e527bd22dbda697d09d4dff8786c6290d79d577a'/>
<id>urn:sha1:e527bd22dbda697d09d4dff8786c6290d79d577a</id>
<content type='text'>
The size of the NFROMSTR struct wasn't initialised in the nodesize
array, so we got:

   $ ./busybox sh
   $ f() { cat &lt;&lt;&lt; hello; }
   $ f
   Segmentation fault         (core dumped) ./busybox sh

Signed-off-by: Ron Yorston &lt;rmy@pobox.com&gt;
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>paste: fix output when file lengths differ</title>
<updated>2026-03-05T20:46:04+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-11-13T07:50:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=ea01f254b4e0dc2f59db4cba9dd4fa98e9f5b2e5'/>
<id>urn:sha1:ea01f254b4e0dc2f59db4cba9dd4fa98e9f5b2e5</id>
<content type='text'>
If the files being pasted had different numbers of lines the
output was incorrect.

Rewrite the loop over all lines to allow for this.  Add tests for
such conditions.

function                                             old     new   delta
paste_main                                           458     526     +68

Signed-off-by: Ron Yorston &lt;rmy@pobox.com&gt;
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>ash: fix here strings causing segfault in subshells</title>
<updated>2026-03-04T14:27:16+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-03-04T14:27:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b8b19b18ad8f189e1a6f52043dabe8d38d19b883'/>
<id>urn:sha1:b8b19b18ad8f189e1a6f52043dabe8d38d19b883</id>
<content type='text'>
A here string in a subshell or function invocation caused a SEGV.
This was due to an upstream bug:  the size of the NFROMSTR struct
wasn't initialised in the nodesize array.

(GitHub issue #567)
</content>
</entry>
</feed>
