From a4dcfe8b6d1eaabe172322a81721f355647257ff Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 8 Feb 2017 19:15:11 -0500 Subject: Add support for -x?type with multiple types This functionality is already part of GNU findutils git. --- bftw.h | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'bftw.h') diff --git a/bftw.h b/bftw.h index 2fb1ef0..3bfe2a2 100644 --- a/bftw.h +++ b/bftw.h @@ -20,31 +20,36 @@ */ enum bftw_typeflag { /** Unknown type. */ - BFTW_UNKNOWN, + BFTW_UNKNOWN = 0, /** Block device. */ - BFTW_BLK, + BFTW_BLK = 1 << 0, /** Character device. */ - BFTW_CHR, + BFTW_CHR = 1 << 1, /** Directory. */ - BFTW_DIR, + BFTW_DIR = 1 << 2, /** Solaris door. */ - BFTW_DOOR, + BFTW_DOOR = 1 << 3, /** Pipe. */ - BFTW_FIFO, + BFTW_FIFO = 1 << 4, /** Symbolic link. */ - BFTW_LNK, + BFTW_LNK = 1 << 5, /** Solaris event port. */ - BFTW_PORT, + BFTW_PORT = 1 << 6, /** Regular file. */ - BFTW_REG, + BFTW_REG = 1 << 7, /** Socket. */ - BFTW_SOCK, + BFTW_SOCK = 1 << 8, /** BSD whiteout. */ - BFTW_WHT, + BFTW_WHT = 1 << 9, /** An error occurred for this file. */ - BFTW_ERROR, + BFTW_ERROR = 1 << 10, }; +/** + * Convert a stat() st_mode to a bftw() typeflag. + */ +enum bftw_typeflag bftw_mode_to_typeflag(mode_t mode); + /** * Possible visit occurrences. */ -- cgit v1.2.3