diff options
| author | Jilles Tjoelker <jilles@FreeBSD.org> | 2014-01-11 21:12:27 +0000 |
|---|---|---|
| committer | Jilles Tjoelker <jilles@FreeBSD.org> | 2014-01-11 21:12:27 +0000 |
| commit | b95de98a6b0984d644087bbb82d9c228381e27db (patch) | |
| tree | 15e7c58199a6769cc5e56c5118a794d8607eb791 /usr.bin/find | |
| parent | fd9e2c6a4ab93d783652f0569062156df8810ce5 (diff) | |
Notes
Diffstat (limited to 'usr.bin/find')
| -rw-r--r-- | usr.bin/find/function.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/usr.bin/find/function.c b/usr.bin/find/function.c index 9f156756cc561..a71369b5db7f2 100644 --- a/usr.bin/find/function.c +++ b/usr.bin/find/function.c @@ -1552,7 +1552,12 @@ c_sparse(OPTION *option, char ***argvp __unused) int f_type(PLAN *plan, FTSENT *entry) { - return (entry->fts_statp->st_mode & S_IFMT) == plan->m_data; + if (plan->m_data == S_IFDIR) + return (entry->fts_info == FTS_D || entry->fts_info == FTS_DC || + entry->fts_info == FTS_DNR || entry->fts_info == FTS_DOT || + entry->fts_info == FTS_DP); + else + return (entry->fts_statp->st_mode & S_IFMT) == plan->m_data; } PLAN * @@ -1563,7 +1568,8 @@ c_type(OPTION *option, char ***argvp) mode_t mask; typestring = nextarg(option, argvp); - ftsoptions &= ~FTS_NOSTAT; + if (typestring[0] != 'd') + ftsoptions &= ~FTS_NOSTAT; switch (typestring[0]) { case 'b': |
