From 18fc03882d49ff46b41a53afc0d6232e1dfbbb35 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 17 Dec 2018 22:05:49 -0500 Subject: color: Support coloring files with capabilities --- util.h | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'util.h') diff --git a/util.h b/util.h index e95b67d..7506924 100644 --- a/util.h +++ b/util.h @@ -33,10 +33,18 @@ # define BFS_HAS_INCLUDE(header, fallback) fallback #endif -#define BFS_HAS_MNTENT BFS_HAS_INCLUDE(, __GLIBC__) -#define BFS_HAS_SYS_MKDEV BFS_HAS_INCLUDE(, false) -#define BFS_HAS_SYS_PARAM BFS_HAS_INCLUDE(, true) -#define BFS_HAS_SYS_SYSMACROS BFS_HAS_INCLUDE(, __GLIBC__) +#define BFS_HAS_MNTENT BFS_HAS_INCLUDE(, __GLIBC__) +#define BFS_HAS_SYS_CAPABILITY BFS_HAS_INCLUDE(, __linux__) +#define BFS_HAS_SYS_MKDEV BFS_HAS_INCLUDE(, false) +#define BFS_HAS_SYS_PARAM BFS_HAS_INCLUDE(, true) +#define BFS_HAS_SYS_SYSMACROS BFS_HAS_INCLUDE(, __GLIBC__) + +#if BFS_HAS_SYS_CAPABILITY +# include +# ifdef CAP_CHOWN +# define BFS_HAS_POSIX1E_CAPABILITIES true +# endif +#endif #if !defined(FNM_CASEFOLD) && defined(FNM_IGNORECASE) # define FNM_CASEFOLD FNM_IGNORECASE @@ -187,4 +195,11 @@ int bfs_major(dev_t dev); */ int bfs_minor(dev_t dev); +struct BFTW; + +/** + * Check if a file has a non-trvial capability set. + */ +bool bfs_check_capabilities(const struct BFTW *ftwbuf); + #endif // BFS_UTIL_H -- cgit v1.2.3