<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/findutils, branch master</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=master</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2026-06-22T10:36:43+00:00</updated>
<entry>
<title>Fix the flags for stat (again) (#601)</title>
<updated>2026-06-22T10:36:43+00:00</updated>
<author>
<name>mbartlett21</name>
<email>29034492+mbartlett21@users.noreply.github.com</email>
</author>
<published>2026-06-22T10:36:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=b37062304275debaadf71c9f3e5f4e9076f5eda6'/>
<id>urn:sha1:b37062304275debaadf71c9f3e5f4e9076f5eda6</id>
<content type='text'>
* Revert "find: reset stat(2) flags before terminating"

This reverts commit 228ee18fbe8cf408440e7bbe91db4ef201312983.

* test: fix flags for stat with NOFORK

test is a NOFORK applet, so the flags under mingw_stat may not have been
reset before calling it. We have it so it also restores the flags after,
since it could be called in the middle of another applet.

This also needed a way to retrieve the flags, so they are just done
through the return value.

* Add comments about not having to restore flags

Just for future reference

* lineedit: use new flag restoring

* win32: simplify mingw_access calling

Since we now have a way to get the previous flags, mingw_access can be
changed to ignore any stat flags

* stat: comments from PR

Adds 32 bytes.</content>
</entry>
<entry>
<title>find: reset stat(2) flags before terminating</title>
<updated>2026-06-19T18:13:54+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-06-19T18:13:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=228ee18fbe8cf408440e7bbe91db4ef201312983'/>
<id>urn:sha1:228ee18fbe8cf408440e7bbe91db4ef201312983</id>
<content type='text'>
Commit a717c6844 (find: skip check for execute when not needed)
didn't reset stat(2) to its default behaviour (at my insistence).

This was incorrect.  The '-exec cmd {} +' action calls a nofork
'cmd' directly without spawning a new process.  If 'cmd' calls
'stat(2)' it won't be in its default state which can affect the
result.

Reintroduce the code to reset 'stat(2)'.

Adds 16 bytes.

(GitHub PR #600)

Signed-off-by: Ron Yorston &lt;rmy@pobox.com&gt;
</content>
</entry>
<entry>
<title>find: skip check for execute when not needed</title>
<updated>2026-06-19T15:15:35+00:00</updated>
<author>
<name>mbartlett21</name>
<email>mjmouse9999@gmail.com</email>
</author>
<published>2026-06-19T05:41:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=a717c68449c8df642f6f2381618366a24734d184'/>
<id>urn:sha1:a717c68449c8df642f6f2381618366a24734d184</id>
<content type='text'>
See previous commits:
1fb1a65064748a54fba4bf4b5e8700f8e61f003f
6a7ccb6ca3bd9b661760879478ecf0d5f6112fc3

My testing shows a speedup of around 30%, but that will vary with
whether files are cached.

Test inside busybox repository with files cached:
Command                     | before | after
find             &gt;/dev/null |  0.83s | 0.56s
find -executable &gt;/dev/null |  1.56s | 1.35s
</content>
</entry>
<entry>
<title>win32: fix compilation with FEATURE_SH_NOFORK disabled</title>
<updated>2024-12-31T08:21:12+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-12-31T08:21:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=0e8bc6527c9d4b9af17e9b0f759b1ad12ae1bc35'/>
<id>urn:sha1:0e8bc6527c9d4b9af17e9b0f759b1ad12ae1bc35</id>
<content type='text'>
Compiling with FEATURE_SH_NOFORK disabled resulted in an error and
a warning.  Fixing these doesn't change the default build.
</content>
</entry>
<entry>
<title>xargs: allow for quotes in commands on Windows</title>
<updated>2024-12-30T13:07:47+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-12-30T12:58:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=dc3ee8e0523a4f651f3012ae1f5a181548187709'/>
<id>urn:sha1:dc3ee8e0523a4f651f3012ae1f5a181548187709</id>
<content type='text'>
When xargs limited the length of the command lines it generated it
didn't allow for the quoting Windows spawn() introduces.

Properly account for any additional characters required when a
command is spawned on Windows.  If the command is a NOFORK applet
this isn't necessary.

Adds 384-464 bytes.
</content>
</entry>
<entry>
<title>win32: work around problem with stderr in MSVCRT</title>
<updated>2024-09-30T15:08:42+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-09-30T14:20:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=4be93f32f5bd5ccaac343b4d03fb861a02d6de96'/>
<id>urn:sha1:4be93f32f5bd5ccaac343b4d03fb861a02d6de96</id>
<content type='text'>
Try to run a non-existent command with standard error closed:

   xyz 2&gt;&amp;-

In recent versions of busybox-w32 this resulted in problems with
moving through history (either using up/down keys or ctrl-r) and
tab completion.  In all cases the order of the prompt and the
command were reversed.

Bisection showed the problem was first seen in PRE-5396 which
merged some commits from upstream, including fd47f0567 (lineedit:
print prompt and editing operations to stderr).

This (eventually) called to mind a previous problem with stderr
in xargs which was fixed by commit f192e6539 (xargs: fix 'xargs
-sNUM' tests).  In both cases it seemed that mixing calls to
bb_putchar_stderr() and fprintf(stderr, ...) was at fault.  The
former uses a file descriptor while the latter uses a stream.  It
was almost as if the stream was buffered.

- The problem with xargs affected 32-bit and 64-bit builds with
  MSVCRT.

- The problem with '2&gt;&amp;-' only affected 32-bit builds with MSVCRT.

- Neither problem was present with UCRT builds.

As a workaround change bb_putchar_stderr() to use the stderr stream
in builds for MSVCRT.

Saves 16 bytes in the 32-bit build.

(GitHub issue #460)
</content>
</entry>
<entry>
<title>Merge branch 'busybox' into merge</title>
<updated>2023-07-13T07:06:26+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2023-07-13T07:06:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=bd978d0256fd3a67de1a7dd54f1a37f9435be363'/>
<id>urn:sha1:bd978d0256fd3a67de1a7dd54f1a37f9435be363</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update applet size estimates</title>
<updated>2023-07-10T15:25:21+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2023-07-10T15:25:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=5353df91cba7b397b9407701681708d0a1518df6'/>
<id>urn:sha1:5353df91cba7b397b9407701681708d0a1518df6</id>
<content type='text'>
Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>libbb: code shrink: introduce and use [_]exit_FAILURE()</title>
<updated>2023-06-15T09:55:56+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>vda.linux@googlemail.com</email>
</author>
<published>2023-06-15T09:55:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=648f506949ded749e28186d0092b6e42085c897b'/>
<id>urn:sha1:648f506949ded749e28186d0092b6e42085c897b</id>
<content type='text'>
function                                             old     new   delta
exit_FAILURE                                           -       7      +7
_exit_FAILURE                                          -       7      +7
run                                                  198     199      +1
restore_state_and_exit                               114     115      +1
xbsd_write_bootstrap                                 399     397      -2
vfork_compressor                                     209     207      -2
sig_handler                                           12      10      -2
serial_ctl                                           154     152      -2
parse_args                                          1169    1167      -2
onintr                                                21      19      -2
make_new_session                                     493     491      -2
login_main                                           988     986      -2
gotsig                                                35      33      -2
do_iplink                                           1315    1313      -2
addgroup_main                                        397     395      -2
inetd_main                                          1911    1908      -3
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 2/12 up/down: 16/-25)            Total: -9 bytes

Signed-off-by: Denys Vlasenko &lt;vda.linux@googlemail.com&gt;
</content>
</entry>
<entry>
<title>win32: changes to signal handling</title>
<updated>2023-05-23T09:57:56+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2023-05-23T09:57:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=89aa9d783c535670c6aed1d32c8740b7474cca00'/>
<id>urn:sha1:89aa9d783c535670c6aed1d32c8740b7474cca00</id>
<content type='text'>
Use an exit code of the form (signal &lt;&lt; 24) when a process exits
due to a signal.  This replaces the previous use of (signal + 128).
This makes it easier to distinguish exit codes from signals.

Allow kill(2) to handle all defined signals, not just EXIT, TERM
and KILL.

The kill and timeout applets now accept any defined signals.

Convert certain Windows status codes Unix-style signal codes.

In ash:

- Exit as if with SIGINT in raise_interrupt() rather than call
  raise(SIGINT).  The latter returns an exit code of 3.

- Detect if a child process exits as if with SIGINT.  If not and if
  the parent is an interactive top-level shell, reset pending_int.
  This prevents the parent from seeing an INT if the child hasn't
  reported it exited due to INT.  (Probably due to it being an
  interactive shell.)

Costs 132-136 bytes.
</content>
</entry>
</feed>
