os.nim: allow walkDir to work on hierarchies with dangling symbolic links; refs #9034

This commit is contained in:
Andreas Rumpf
2018-09-24 13:15:46 +02:00
parent 68bc45701a
commit c1aecb8914

View File

@@ -802,20 +802,16 @@ type
pcDir, ## path refers to a directory
pcLinkToDir ## path refers to a symbolic link to a directory
when defined(posix):
proc getSymlinkFileKind(path: string): PathComponent =
# Helper function.
var s: Stat
assert(path != "")
if stat(path, s) < 0'i32:
raiseOSError(osLastError())
if S_ISDIR(s.st_mode):
if stat(path, s) == 0'i32 and S_ISDIR(s.st_mode):
result = pcLinkToDir
else:
result = pcLinkToFile
proc staticWalkDir(dir: string; relative: bool): seq[
tuple[kind: PathComponent, path: string]] =
discard