summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2023-07-13 16:00:02 -0400
committerTavian Barnes <tavianator@tavianator.com>2023-07-13 16:04:18 -0400
commitb4c3201ccceb9c73dd7751d7f9937b4afe78966f (patch)
tree149930ae81ac27d899316165333de4f1aeb50410
parent0e4dffeb46f3d8bfe30d60a0cfe1e1fa5a082b13 (diff)
downloadbfs-b4c3201ccceb9c73dd7751d7f9937b4afe78966f.tar.xz
color: Only highlight the trailing slash on ENOTDIR
-rw-r--r--src/color.c6
-rw-r--r--tests/bfs/color_ls.out4
-rw-r--r--tests/bfs/color_ls.sh6
3 files changed, 9 insertions, 7 deletions
diff --git a/src/color.c b/src/color.c
index 7d98978..f7a5d86 100644
--- a/src/color.c
+++ b/src/color.c
@@ -982,8 +982,10 @@ static ssize_t first_broken_offset(const char *path, const struct BFTW *ftwbuf,
while (ret && at_path[len - 1] == '/') {
--len, --ret;
}
- while (ret && at_path[len - 1] != '/') {
- --len, --ret;
+ if (errno != ENOTDIR) {
+ while (ret && at_path[len - 1] != '/') {
+ --len, --ret;
+ }
}
dstresize(&at_path, len);
diff --git a/tests/bfs/color_ls.out b/tests/bfs/color_ls.out
index b5216c4..f69eb9c 100644
--- a/tests/bfs/color_ls.out
+++ b/tests/bfs/color_ls.out
@@ -2,11 +2,11 @@
scratch/foo/bar
/__bfs__/nowhere
/__bfs__/nowhere
-foo/bar/baz/qux
-foo/bar/baz/qux
foo/bar/nowhere
foo/bar/nowhere
foo/bar/nowhere/nothing
foo/bar/nowhere/nothing
foo/bar/baz
foo/bar/baz
+foo/bar/baz//qux
+foo/bar/baz//qux
diff --git a/tests/bfs/color_ls.sh b/tests/bfs/color_ls.sh
index 37d088f..f2d3c72 100644
--- a/tests/bfs/color_ls.sh
+++ b/tests/bfs/color_ls.sh
@@ -3,13 +3,13 @@ clean_scratch
ln -s foo/bar/baz scratch/link
ln -s foo/bar/nowhere scratch/broken
ln -s foo/bar/nowhere/nothing scratch/nested
-ln -s foo/bar/baz/qux scratch/notdir
+ln -s foo/bar/baz//qux scratch/notdir
ln -s scratch/foo/bar scratch/relative
mkdir scratch/__bfs__
ln -s /__bfs__/nowhere scratch/absolute
-LS_COLORS="or=01;31:" invoke_bfs scratch/{,link,broken,nested,notdir,relative,absolute} -color -type l -ls \
+export LS_COLORS="or=01;31:"
+invoke_bfs scratch/{,link,broken,nested,notdir,relative,absolute} -color -type l -ls \
| sed 's/.* -> //' \
| sort >"$OUT"
-
diff_output