diff options
author | Alexander Kernozhitsky <sh200105@mail.ru> | 2024-05-27 11:01:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-27 11:01:13 +0200 |
commit | 3bda5fc840870f6589e4bdbcbbdc811bde599969 (patch) | |
tree | 441f1ea48a536c2f2b6fa8c40d23446d0a04c95e /tests/trmacros | |
parent | ce85b819ff63b5e9ca57dfe7d4d520851921802e (diff) | |
download | Nim-3bda5fc840870f6589e4bdbcbbdc811bde599969.tar.gz |
Handle arbitrarily long symlink target in `expandSymlinks()` (#23650)
For now, `expandSymlinks()` can handle only symlinks with lengths up to 1024. We can improve this logic and retry inside a loop with increasing lengths until we succeed. The same approach is used in [Go](https://github.com/golang/go/blob/377646589d5fb0224014683e0d1f1db35e60c3ac/src/os/file_unix.go#L446), [Rust](https://github.com/rust-lang/rust/blob/785eb65377e5d7f8d8e8b82ede044212bbd2d76e/library/std/src/sys/pal/unix/fs.rs#L1700) and [Nim's `getCurrentDir()`](https://github.com/nim-lang/Nim/blob/devel/lib/std/private/ospaths2.nim#L877), so maybe it's a good idea to use the same logic in `expandSymlinks()` also.
Diffstat (limited to 'tests/trmacros')
0 files changed, 0 insertions, 0 deletions