Steffen Schümann
38f91bd470
last_write_time() now consistently follows symlinks and respects timestamps (#207 )
2026-07-12 12:02:18 +02:00
Steffen Schümann
9a98ce0d2b
Add GHC_FILESYSTEM_FWD_TEST check in filesystem tests
2026-07-12 11:23:18 +02:00
Steffen Schümann
442d95aa41
Handle Windows unknown error codes safely in systemErrorText ( #206 )
2026-07-12 10:47:39 +02:00
Steffen Schümann
998d93cdf4
copy_file() handls non-regular sources with error reporting (#205 )
2026-07-12 10:06:11 +02:00
Steffen Schümann
831d54a21d
Squashed commit of the following:
...
commit a6aab92fb26c569d8fcf417d903601a3b3d4ce6f
Author: Steffen Schümann <s.schuemann@pobox.com>
Date: Sat Jul 11 23:04:57 2026 +0200
Refine `weakly_canonical` test to validate error codes and handle invalid paths more robustly.
commit 21b931bd977608fcdcb1ae79aaf4383ffdae517c
Merge: 48a868a 134f5e6
Author: Steffen Schümann <s.schuemann@pobox.com>
Date: Sat Jul 11 22:11:16 2026 +0200
Merge branch 'master' into feature-204-weakly-canonical-ignores-errors
commit 48a868a11a69ac174f9ec2eacc5ac78bd72b6ef3
Author: Steffen Schümann <s.schuemann@pobox.com>
Date: Sat Jul 11 21:48:57 2026 +0200
Propagate `weakly_canonical()` component lookup errors and improve error handling in filesystem tests (#204 )
2026-07-12 00:00:06 +02:00
Steffen Schümann
134f5e61be
Update CMake test configuration for standardized filesystem support
...
Refactored to use `AddExecutableWithStdFS` for conditional standard filesystem testing, ensuring proper linking and test setup only when the target is available.
2026-07-11 22:01:09 +02:00
Steffen Schümann
6dfddd981e
Merge branch 'feature-200-fstream-test'
2026-07-11 21:22:43 +02:00
Steffen Schümann
cdbf7835b4
Add tests <fstream> addition and update CMake
2026-07-11 21:22:17 +02:00
Steffen Schümann
58c373188b
Add support for device UNC paths in canonical() ( #171 )
2026-07-11 20:40:28 +02:00
Steffen Schümann
730589f53e
Squashed commit of the following:
...
commit 333fc89c7d3f8962d7bc1025565c27e046f28e28
Author: Steffen Schümann <s.schuemann@pobox.com>
Date: Sat Jul 11 18:37:05 2026 +0200
Removed extra tests that were added but unrelated to the fix.
commit 542f355853fcae25e788c4514fe57494200797ce
Author: Steffen Schümann <s.schuemann@pobox.com>
Date: Sat Jul 11 18:29:40 2026 +0200
lexically_normal() preserves IPv6 components in device UNC paths (#170 )
2026-07-11 20:18:58 +02:00
Steffen Schümann
4d2f630892
Fix appending to host-only UNC paths by inserting missing separator ( #191 )
2026-07-11 16:09:44 +02:00
Steffen Schümann
87157acd6c
Fix lexically_normal() to correctly preserve unresolved parent components in relative paths
2026-07-11 09:58:07 +02:00
Steffen Schümann
8ae8ec1582
Update README with missing fixes, enhancements, and pull requests
2026-07-11 09:48:33 +02:00
Steffen Schümann
5f7303f5cd
Fix MSVC 2015 warning for noexcept with disabled exceptions
2026-07-10 23:44:16 +02:00
Steffen Schümann
30ea991a26
Update CI workflow for newer GitHub runners and toolchains, retaining MSVC v142 compatibility
2026-07-10 19:32:57 +02:00
Steffen Schümann
79ce44f0a6
Define CATCH_CONFIG_NO_COUNTER across tests to disable Catch2's counter feature for broader compiler support.
2026-07-10 17:19:17 +02:00
Steffen Schümann
8741115872
Allow iteration while exceptions are disabled and reactivate proximate(...) for that case
2026-07-10 17:01:36 +02:00
Nahuel Gaitan
603dacf69e
add <fstream> to dynamic headers
2026-01-01 22:21:38 -03:00
Steffen Schümann
0e72911ba0
Merge pull request #199 from gulrak/dev-msys2-workflow
...
Added MSYS2 compilers to GitHub workflow
2025-12-31 22:22:59 +01:00
Steffen Schümann
f539086997
Add Clang-specific diagnostic handling and support checks
2025-12-31 14:21:35 +01:00
Steffen Schümann
dc19ab8f7b
Avoid unnecessary temporary string creation in Windows directory iteration
2025-12-31 14:11:31 +01:00
Steffen Schümann
0eef0ffea4
Update build_cmake.yml to disable testing against the std filesystem in MSYS2 builds
2025-12-31 13:53:35 +01:00
Steffen Schümann
2d8c9ec715
Add Windows MSYS2 builds to CI workflow
2025-12-31 13:43:40 +01:00
Steffen Schümann
1b0c27ed9d
Merge pull request #197 from bxwllzz/master
...
Fix EINTR handling in read() and readdir() loops
2025-12-28 11:23:10 +01:00
Steffen Schümann
6d3ab0851b
Merge pull request #198 from gulrak/dev-workflow-upgrade
...
CI/workflow upgrade
2025-12-28 09:25:12 +01:00
Steffen Schümann
b44136d1fb
Simplify and streamline build_cmake.yml: eliminate outdated CMake workaround for GCC 5-6, ensuring unified CMake configuration across all versions.
2025-12-27 23:01:43 +01:00
Steffen Schümann
9ef4be2a96
Update build_cmake.yml to handle GCC 5-6 with older CMake versions
2025-12-27 22:41:14 +01:00
Steffen Schümann
3634e15e6a
Fix formatting and resolve expired GPG key issues in build_cmake.yml
2025-12-27 22:07:27 +01:00
Steffen Schümann
ef40391bd8
Refine Debian repository fixes and conditions in build matrix for GCC/Clang versions.
2025-12-27 18:59:35 +01:00
Steffen Schümann
3aad88b8e6
Fix Debian Jessie EOL repository issues for GCC 5-6 and refine Buster handling
2025-12-27 18:52:33 +01:00
Steffen Schümann
7777e3c106
Clarify legacy compiler tests in build_cmake.yml
2025-12-27 16:50:11 +01:00
Steffen Schümann
770f1ae251
Clarify legacy compiler tests in build_cmake.yml
2025-12-27 16:46:31 +01:00
Steffen Schümann
8bc001414b
Update build_cmake.yml: add new platforms, revise toolchain configs, and fix EOL dependency issues
2025-12-27 16:32:31 +01:00
Steffen Schümann
b1c6284a6e
Re-enable legacy compiler builds in GitHub Actions and update FreeBSD image to 14.3 in Cirrus CI
2025-12-27 15:14:57 +01:00
Steffen Schümann
a161aae4c0
Update build_cmake.yml: modernize compilers and runners, refine coverage steps, and add optional Docker setup
2025-12-27 14:19:23 +01:00
bxwllzz
601efab4be
Fix EINTR handling in read() and readdir() loops
...
- read(): POSIX specifies that errno is undefined when read() return values are >= 0.
The previous retry logic had bugs:
When read() returns 0 (EOF), the loop condition checked errno before
the return value. Since errno might be stale from a previous call, this could
trigger a false retry on EOF.
- readdir(): When readdir() reaches the end of directory, it returns NULL
without modifying errno. Setting errno=0 before the loop caused an infinite loop.
2025-12-27 18:22:59 +08:00
Steffen Schümann
9fda7b0afb
Update build_cmake.yml, removing macOS build versions not supported by GitHub
2025-01-23 07:26:01 +01:00
Steffen Schümann
076592ce6e
Merge pull request #188 from bbannier/topic/bbannier/getcwd-with-NULL-buf
...
Avoid GNU `getcwd` extension behavior
2025-01-07 21:00:06 +01:00
Steffen Schümann
157feb3651
Merge pull request #190 from dpogue/wundef-fix
...
Check macros are defined before use
2025-01-05 17:01:49 +01:00
Darryl Pogue
f08e8b0064
Check macros are defined before use
...
This resolves warnings when compiling with -wundef (and errors when
combined with -werror).
2025-01-04 21:45:29 -08:00
Benjamin Bannier
99c3500205
Replace EOL centos CI with rockylinux
...
centos7 has reached EOL on 2024-06-30, centos8 on 2021-10-31. In
practical terms this means that their package repositories are offline
for the foreseeable future and the CI tasks making use of them might
never run again.
This patch replaces the existing CI jobs on centos7/centos8 with jobs on
rockylinux8/9. Since rockylinux is an open source variant similar to
RHEL this should provide testing with similar spirit. In contrast to
centos, rockylinux does provide very granular tagging of releases which
if used would help avoid breaking on e.g., subtle package changes in
their package repositories. I however did not use very precise tags in
the patch and instead went with broad "trains" for the 8 and 9 series;
I hope this minimizes maintenance overhead (e.g., bumping to new
releases) while still giving a good testing signal.
2024-12-18 15:45:33 +01:00
Benjamin Bannier
f43846877b
Avoid GNU getcwd extension behavior
...
GNU `getcwd` can allocate a buffer if passed `NULL` for it. This is an
extension which is e.g., not recognized by clang-tidy-19's
`StdCLibraryFunctions` check[^1] which emits a diagnostic on a violated
precondition `buf != NULL`,
```
The 1st argument to 'getcwd' is NULL but should not be NULL [clang-analyzer-unix.StdCLibraryFunctions,-warnings-as-errors]
[build] 3987 | std::unique_ptr<char, decltype(&std::free)> buffer{::getcwd(NULL, 0), std::free};
```
This patch modifies this use of `getcwd` with this extension behavior to
instead use `get_current_dir_name` which is also a GNU extension, but
does not trigger this diagnostic.
[^1]: https://clang.llvm.org/docs/analyzer/checkers.html#unix-stdclibraryfunctions-c
2024-12-18 15:26:19 +01:00
Steffen Schuemann
b1982f06c8
work on ci scripts
2024-04-27 12:20:18 +02:00
Steffen Schuemann
fbc5d213fc
work on ci scripts
2024-04-27 12:07:57 +02:00
Steffen Schuemann
72a03b3c6d
work on ci scripts
2024-04-27 12:00:20 +02:00
Steffen Schuemann
9fe68b91c7
work on ci scripts
2024-04-27 10:41:56 +02:00
Steffen Schuemann
56776c92f7
work on ci scripts
2024-04-27 09:58:19 +02:00
gulrak
42ea4fc615
Merge pull request #179 from vgeorgiev/lexically_relative_fix
...
Fix lexically_relative return when base path evaluates to *this
2024-02-29 07:55:33 +01:00
vgeorgiev
eeed314237
Fix handling of trailing slash
2024-02-21 17:55:00 -06:00
vgeorgiev
768b5cb11b
Fix lexically_relative return when base path evaluates to *this
2024-02-21 11:07:19 -06:00