mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
42aa69b076
Use uv_fs_realpath() instead. It seems that uv_fs_realpath() has some problems on non-Linux platforms: - macOS and other BSDs: this function will fail with UV_ELOOP if more than 32 symlinks are found while resolving the given path. This limit is hardcoded and cannot be sidestepped. - Windows: while this function works in the common case, there are a number of corner cases where it doesn't: - Paths in ramdisk volumes created by tools which sidestep the Volume Manager (such as ImDisk) cannot be resolved. - Inconsistent casing when using drive letters. - Resolved path bypasses subst'd drives. Ref: https://docs.libuv.org/en/v1.x/fs.html#c.uv_fs_realpath I don't know if the old implementation that uses uv_chdir() and uv_cwd() also suffers from the same problems. - For the ELOOP case, chdir() seems to have the same limitations. - On Windows, Vim doesn't use anything like chdir() either. It uses _wfullpath(), while libuv uses GetFinalPathNameByHandleW(). |
||
---|---|---|
.. | ||
api | ||
charset | ||
eval | ||
fixtures | ||
os | ||
viml | ||
buffer_spec.lua | ||
fileio_spec.lua | ||
formatc.lua | ||
garray_spec.lua | ||
indent_spec.lua | ||
keycodes_spec.lua | ||
marktree_spec.lua | ||
mbyte_spec.lua | ||
memory_spec.lua | ||
message_spec.lua | ||
msgpack_spec.lua | ||
multiqueue_spec.lua | ||
optionstr_spec.lua | ||
path_spec.lua | ||
preload.lua | ||
preprocess.lua | ||
profile_spec.lua | ||
rbuffer_spec.lua | ||
search_spec.lua | ||
set.lua | ||
statusline_spec.lua | ||
strings_spec.lua | ||
tempfile_spec.lua | ||
testtest_spec.lua | ||
testutil.lua | ||
undo_spec.lua |