<feed xmlns='http://www.w3.org/2005/Atom'>
<title>busybox-w32/win32/dirent.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-27T14:27:40+00:00</updated>
<entry>
<title>win32: add (some) long path support</title>
<updated>2026-02-27T14:27:40+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2026-02-27T13:57:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=ed525e2db10081f095d2fccc1b02830654470401'/>
<id>urn:sha1:ed525e2db10081f095d2fccc1b02830654470401</id>
<content type='text'>
Use the longPathAware manifest entry to handle path lengths above
260.  This requires the LongPathsEnabled registry key to be set
at run-time.

Modify (some) WIN32 API calls to use the wide-character variant.

These features are controlled by the build-time configuration
option FEATURE_LONG_PATHS, which is not enabled by default.
</content>
</entry>
<entry>
<title>win32: fake directories in readdir(2)</title>
<updated>2025-03-17T08:59:56+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2025-03-17T08:59:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=3de63bc1739354df946c0b6dddd96058d8952bb7'/>
<id>urn:sha1:3de63bc1739354df946c0b6dddd96058d8952bb7</id>
<content type='text'>
The emulation of readdir(2) didn't include the '.' and '..'
directories in the root of a logical drive.  This resulted in
the 'ls' applet (and others) not matching the expected Unix
behaviour.

Alter the emulation of readdir(2) to include fake '.' and '..'
directories if necessary.

Adds 88-112 bytes.

(GitHub issue #487)
</content>
</entry>
<entry>
<title>win32: missing support for "app exec link" reparse points</title>
<updated>2023-09-18T10:35:11+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2023-09-18T10:35:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=1fcd57ab583a39f42b55f44d42472ea64e228c84'/>
<id>urn:sha1:1fcd57ab583a39f42b55f44d42472ea64e228c84</id>
<content type='text'>
Commit 603af9bb9 (win32: support "app exec link" reparse points)
added support for IO_REPARSE_TAG_APPEXECLINK reparse points by
pretending they're symbolic links.

One change was missed, in the implementation of dirent.

Costs 16 bytes.
</content>
</entry>
<entry>
<title>win32: always allow d_type member of struct dirent</title>
<updated>2022-12-22T11:38:39+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2022-12-22T11:38:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=67aec6403c80b8956b8b0f78f58e2b9664bd4f62'/>
<id>urn:sha1:67aec6403c80b8956b8b0f78f58e2b9664bd4f62</id>
<content type='text'>
The d_type member of struct dirent is required by the implementation
of glob(3).  As a result it isn't possible to build the make applet
unless FEATURE_EXTRA_FILE_DATA is configured.

Allow d_type unconditionally.
</content>
</entry>
<entry>
<title>win32: try to get link count for directories</title>
<updated>2022-05-15T07:52:26+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2022-05-15T07:52:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=7fb95a2a569ca6d68dad4cef5b7b299e9fe68e2b'/>
<id>urn:sha1:7fb95a2a569ca6d68dad4cef5b7b299e9fe68e2b</id>
<content type='text'>
On Unix the link count of a directory reflects the number of
subdirectories it contains.  Enhance readdir(3) to return file
types and use this to count subdirectories when stat(2) is called
for a directory.

As with other features that might slow down stat(2) this is
controlled by the build-time setting FEATURE_EXTRA_FILE_DATA.
(Commit d82db8e9a 'win32: make stat(2) fetch additional metadata').

(GitHub issue #254)
</content>
</entry>
<entry>
<title>win32: add local dirent implementation</title>
<updated>2021-06-13T07:13:25+00:00</updated>
<author>
<name>Ron Yorston</name>
<email>rmy@pobox.com</email>
</author>
<published>2021-06-13T07:13:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/busybox-w32/commit/?id=f7e4fe39a69b82bcef1aaa68111ccfa68b209ada'/>
<id>urn:sha1:f7e4fe39a69b82bcef1aaa68111ccfa68b209ada</id>
<content type='text'>
Add a cut down version of the dirent implementation from git.
The git developers said:

  The mingw-runtime implemenation of opendir, readdir and closedir
  sets errno to 0 on success, something that POSIX explicitly
  forbids.

This also avoids having to link against libssp.a (commit 13eb34205)
and reduces the size of the binary by 2KB.
</content>
</entry>
</feed>
