579 Commits

Author SHA1 Message Date
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
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
gulrak
2fc4b46375
Merge pull request #177 from noexcept/master
fix infinite loop when errno is EINTR
2024-01-01 21:48:11 +01:00
noexcept
fc19b58459 fix infinite loop when errno is EINTR 2023-12-20 11:56:57 +00:00
gulrak
f19cbbbd31
Merge pull request #176 from cpsauer/patch-1
Add reference to Bazel rules
2023-11-16 18:08:10 +01:00
Chris Sauer
0ef214a7a0
Add reference to Bazel rules 2023-11-15 14:18:03 -08:00
gulrak
fcea331ebb
Merge pull request #174 from bugdea1er/remove-debug-info
Removed debug information from CMakeLists.txt
2023-09-16 10:11:14 +02:00
gulrak
1ab54e53cc
Merge pull request #172 from rikyoz/glibcxx_wchar_streams
Allow wchar_t constructors of fstreams on Windows when using libstdc++
2023-09-16 10:09:38 +02:00
bugdea1er
58e983167c Removed debug information from CMakeLists.txt 2023-09-11 14:54:59 +03:00
Oz
c4683aa4a1
Allow wchar_t constructors of iostreams on Windows when using libstdc++ 2023-09-05 09:00:51 +02:00
gulrak
144954ff4e
Merge pull request #167 from cpsauer/dynamic-selection-more-apple-platforms 2023-07-30 19:40:45 +02:00
Chris Sauer
48d46cccef Improve apple conditionals in filesystem.hpp
Two changes:
- (minor) Rename GHC_OS_MACOS -> GHC_OS_APPLE, since it is defined all apple platforms (iOS, watchOS, etc.), not just macOS.
- Changed the preprocessor conditional in last_write_time to align with its presumed intent. Previously, it would always have been true, which can't be intentional, because the *_OS_VERSION_MIN_REQUIRED is undefined and thus zero for platforms besides the current one, and therefore less than the constants--except for on very old SDKs where, e.g., MAC_OS_X_VERSION_10_13  and others would be undefined and therefore 0 and therefore making the clause false when it needed to be true. Therefore, I changed the conditions to be parallel to those in the dynamic selection headers, checking for the undefined, zero case and hardcoding the version values to support old SDKs.
2023-07-26 23:07:09 -07:00