<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/win32/process.c, branch long_paths</title>
<subtitle>A mirror of https://github.com/rmyorston/busybox-w32.git
</subtitle>
<id>https://git.lua4.win/busybox-w32/atom?h=long_paths</id>
<link rel='self' href='https://git.lua4.win/busybox-w32/atom?h=long_paths'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/'/>
<updated>2026-02-25T09:33:36+00:00</updated>
<entry>
<title>ash: allow execution of busybox-w32 binary without extension</title>
<updated>2026-02-25T09:33:36+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-02-25T09:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=35e590816a844e3ccc707c841b756e83987d09eb'/>
<id>urn:sha1:35e590816a844e3ccc707c841b756e83987d09eb</id>
<content type='text'>
If the busybox-w32 binary didn't have an extension the shell was
unable to spawn itself:

   $ ls -l busybox
   -rwxrwxr-x    1 rmy      rmy         661006 Feb 25 09:37 busybox
   $ ./busybox sh
   $ ls
   sh: unable to spawn shell

This happened because the shell used spawnve() from the C runtime
to execute itself.  Microsoft insists on trying to add an extension
to the name of the binary unless it has an explicit '.' as its
last character.

Use the internal spawnveq() instead, as it handles various quirks
like the above.

Adds 16-32 bytes.

(GitHub issue #566)
</content>
</entry>
<entry>
<title>Allow building with older mingw-w64/gcc</title>
<updated>2025-10-01T07:38:49+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-10-01T07:38:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=86d0b4937c77beba0c5b042b833f08afa61ee728'/>
<id>urn:sha1:86d0b4937c77beba0c5b042b833f08afa61ee728</id>
<content type='text'>
Recent versions of busybox-w32 rely on features which are only
available in contemporary versions of mingw-w64 and gcc.

Allow building on somewhat older toolchains.

(GitHub issue #527)
</content>
</entry>
<entry>
<title>Merge branch 'busybox' into merge</title>
<updated>2025-08-15T08:00:13+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-08-15T08:00:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=01ff9c492111cf7d51ad074629d6e72bc69fc149'/>
<id>urn:sha1:01ff9c492111cf7d51ad074629d6e72bc69fc149</id>
<content type='text'>
</content>
</entry>
<entry>
<title>win32: retry when command needs elevated privileges</title>
<updated>2025-02-03T11:55:28+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-02-03T11:55:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=14ccc45d548c9dfa73594f155e920c83e2882081'/>
<id>urn:sha1:14ccc45d548c9dfa73594f155e920c83e2882081</id>
<content type='text'>
Some installer programs have an entry in their manifest to indicate
that they need elevated privileges.  The shell in busybox-w32 was
unable to run such programs.

When a program fails to run with ERROR_ELEVATION_REQUIRED, try
again using ShellExecuteEx() with the 'runas' verb to give it
elevated privileges.

Adds 272-288 bytes.

(GitHub issue #481)
</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>win32: code shrink quote_arg()</title>
<updated>2024-12-30T08:27:31+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-12-30T08:27:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=becedd5bd29dd1ea3c21426568e6412d6b9a404e'/>
<id>urn:sha1:becedd5bd29dd1ea3c21426568e6412d6b9a404e</id>
<content type='text'>
Alter quote_arg() to perform a single pass over the string in the
case where no change is required.  Based on a proposal by @avih in
GitHub PR #317.

Saves 16 bytes.
</content>
</entry>
<entry>
<title>win32: close exec'ing process if possible</title>
<updated>2024-10-13T08:27:33+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-10-13T08:27:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=6af8061b6dfde7cf4e41a6da00bf91a7105a05eb'/>
<id>urn:sha1:6af8061b6dfde7cf4e41a6da00bf91a7105a05eb</id>
<content type='text'>
If a process performing an exec is an orphan there's no reason for
it to wait for its child's exit code.  Let it exit immediately.

Adds 16 bytes.

(GitHub issue #461)
</content>
</entry>
<entry>
<title>kill: fix regression in 'kill -9'</title>
<updated>2024-10-12T08:46:24+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-10-12T08:46:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=8db590e2431a18628a693d49e943d2c4d94cb85c'/>
<id>urn:sha1:8db590e2431a18628a693d49e943d2c4d94cb85c</id>
<content type='text'>
'kill -9' was found to fail with an 'Invalid argument' error.

This is a regression introduced by commit 569de936a (kill: killing
a zombie process should fail).

Use the correct argument to OpenProcess() for SIGKILL so it can
query the exit code of the target process.

Adds 16 bytes.

(GitHub issue #465)
</content>
</entry>
<entry>
<title>win32: fix problem interrupting shell loop</title>
<updated>2024-10-11T15:24:48+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-10-11T14:58:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=4bdeee55c1c2a456cae12abdff775fc60903bd6f'/>
<id>urn:sha1:4bdeee55c1c2a456cae12abdff775fc60903bd6f</id>
<content type='text'>
It proved to be almost impossible to interrupt a loop like:

   while true; do sleep 1; done

where 'sleep' was an external program, not an applet.  The issue
was introduced by commit 0475b7a64 (win32: convert exit codes).
This passed a POSIX error code to the exit() in wait_for_child()
so a parent was unable to detect when its child was interrupted.

Pass the Windows exit code to exit() instead.  Work around the
changes introduced by commit 790e377273 (win32: revert 'don't set
error mode').

Adds 16-32 bytes.
</content>
</entry>
<entry>
<title>Merge branch 'busybox' into merge</title>
<updated>2024-10-08T11:09:30+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2024-10-08T10:54:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=ded78ca2656fd41f130d65345b0eb4d39b1fcbdf'/>
<id>urn:sha1:ded78ca2656fd41f130d65345b0eb4d39b1fcbdf</id>
<content type='text'>
</content>
</entry>
</feed>
