diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2019-09-04 21:35:24 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2019-09-04 21:35:24 -0400 |
commit | ed6d3933070f7cfbb0607aabe8f9e71ca384791a (patch) | |
tree | 7ab24161806269f58e7af2865c27a247e2a226bb | |
parent | 1563c3113710463d07f52d6f042a01c56a9ea795 (diff) | |
download | bfs-ed6d3933070f7cfbb0607aabe8f9e71ca384791a.tar.xz |
color: Actually resolve symlinks against their parent directory
-rw-r--r-- | color.c | 2 | ||||
-rwxr-xr-x | tests.sh | 1 |
2 files changed, 2 insertions, 1 deletions
@@ -734,7 +734,7 @@ static ssize_t first_broken_offset(const char *path, const struct BFTW *ftwbuf, } } else { // We're in print_link_target(), so resolve relative to the link's parent directory - at_fd = AT_FDCWD; + at_fd = ftwbuf->at_fd; if (at_fd == AT_FDCWD && path[0] != '/') { at_path = dstrndup(ftwbuf->path, ftwbuf->nameoff); if (at_path && dstrncat(&at_path, path, max) != 0) { @@ -2114,6 +2114,7 @@ function test_color_ls() { ln -s foo/bar/nowhere/nothing scratch/nested ln -s foo/bar/baz/qux scratch/notdir ln -s scratch/foo/bar scratch/relative + mkdir scratch/__bfs__ ln -s /__bfs__/nowhere scratch/absolute local EXPECTED="$TESTS/${FUNCNAME[0]}.out" |