diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-10-31 12:24:01 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-31 12:24:01 -0400 |
commit | e831a394426e19c39f94d9e8802aead7f25ba00d (patch) | |
tree | 04e9063206c54d9cad005903a5efbfe279a6826f | |
parent | 515cda3e3763484af448ad1bc599d583eeeadb18 (diff) | |
parent | 7152645618fc22766f5c954d12e9489866633e26 (diff) | |
download | bfs-e831a394426e19c39f94d9e8802aead7f25ba00d.tar.xz |
Merge pull request #146 from jody-frankowski/fix/capa-color-non-linux
Fix bfs coloring all files as if they had a capability, on non-Linux systems
-rw-r--r-- | src/color.c | 2 | ||||
-rw-r--r-- | tests/bfs/color_ca.out | 4 | ||||
-rw-r--r-- | tests/bfs/color_ca.sh | 10 | ||||
-rw-r--r-- | tests/bfs/color_ca_incapable.out | 27 | ||||
-rw-r--r-- | tests/bfs/color_ca_incapable.sh | 1 |
5 files changed, 43 insertions, 1 deletions
diff --git a/src/color.c b/src/color.c index 036dda5..e7f0973 100644 --- a/src/color.c +++ b/src/color.c @@ -939,7 +939,7 @@ static const struct bfs_stat *cpath_stat(const struct cpath *cpath) { /** Check if a path has non-trivial capabilities. */ static bool cpath_has_capabilities(const struct cpath *cpath) { if (cpath->valid == cpath->len) { - return bfs_check_capabilities(cpath->ftwbuf); + return bfs_check_capabilities(cpath->ftwbuf) > 0; } else { // TODO: implement capability checks for arbitrary paths return false; diff --git a/tests/bfs/color_ca.out b/tests/bfs/color_ca.out new file mode 100644 index 0000000..bf74202 --- /dev/null +++ b/tests/bfs/color_ca.out @@ -0,0 +1,4 @@ +[01;34m.[0m +[01;34m./[0m[01;36mlink[0m +[01;34m./[0m[30;41mcapable[0m +[01;34m./[0mnormal diff --git a/tests/bfs/color_ca.sh b/tests/bfs/color_ca.sh new file mode 100644 index 0000000..3aaaaf1 --- /dev/null +++ b/tests/bfs/color_ca.sh @@ -0,0 +1,10 @@ +test "$UNAME" = "Linux" || skip +invoke_bfs . -quit -capable || skip + +cd "$TEST" + +"$XTOUCH" normal capable +bfs_sudo setcap all+ep capable || skip +ln -s capable link + +LS_COLORS="ca=30;41:" bfs_diff . -color diff --git a/tests/bfs/color_ca_incapable.out b/tests/bfs/color_ca_incapable.out new file mode 100644 index 0000000..a439814 --- /dev/null +++ b/tests/bfs/color_ca_incapable.out @@ -0,0 +1,27 @@ +[01;34m$'rainbow/\e[1m'[0m +[01;34m$'rainbow/\e[1m/'[0m$'\e[0m' +[01;34mrainbow[0m +[01;34mrainbow/[0m[01;32mexec.sh[0m +[01;34mrainbow/[0m[01;35msocket[0m +[01;34mrainbow/[0m[01;36mbroken[0m +[01;34mrainbow/[0m[01;36mchardev_link[0m +[01;34mrainbow/[0m[01;36mlink.txt[0m +[01;34mrainbow/[0m[30;42msticky_ow[0m +[01;34mrainbow/[0m[30;43msgid[0m +[01;34mrainbow/[0m[33mpipe[0m +[01;34mrainbow/[0m[34;42mow[0m +[01;34mrainbow/[0m[37;41msugid[0m +[01;34mrainbow/[0m[37;41msuid[0m +[01;34mrainbow/[0m[37;44msticky[0m +[01;34mrainbow/[0mfile.dat +[01;34mrainbow/[0mfile.txt +[01;34mrainbow/[0mlower.gz +[01;34mrainbow/[0mlower.tar +[01;34mrainbow/[0mlower.tar.gz +[01;34mrainbow/[0mlu.tar.GZ +[01;34mrainbow/[0mmh1 +[01;34mrainbow/[0mmh2 +[01;34mrainbow/[0mul.TAR.gz +[01;34mrainbow/[0mupper.GZ +[01;34mrainbow/[0mupper.TAR +[01;34mrainbow/[0mupper.TAR.GZ diff --git a/tests/bfs/color_ca_incapable.sh b/tests/bfs/color_ca_incapable.sh new file mode 100644 index 0000000..f46a127 --- /dev/null +++ b/tests/bfs/color_ca_incapable.sh @@ -0,0 +1 @@ +LS_COLORS="ca=30;41:" bfs_diff rainbow -color |