From 5be1c0ff22b55887b4d82c2cbbff79d9b5f45791 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Wed, 4 Sep 2019 15:53:41 -0500 Subject: DIRTREE_STATLESS doesn't have to test 3 stat fields, it sets a flag --- toys/posix/find.c | 2 +- toys/posix/ls.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/toys/posix/find.c b/toys/posix/find.c index 02fdf3c4..3317448a 100644 --- a/toys/posix/find.c +++ b/toys/posix/find.c @@ -217,7 +217,7 @@ static int do_find(struct dirtree *new) // skip . and .. below topdir, handle -xdev and -depth if (new) { // Handle stat failures first. - if (!new->st.st_blksize && !new->st.st_dev && !new->st.st_ino) { + if (new->again&2) { if (!new->parent || errno != ENOENT) { perror_msg("'%s'", s = dirtree_path(new, 0)); free(s); diff --git a/toys/posix/ls.c b/toys/posix/ls.c index 4ae352af..65031587 100644 --- a/toys/posix/ls.c +++ b/toys/posix/ls.c @@ -585,7 +585,7 @@ void ls_main(void) // note: double_list->prev temporarily goes in dirtree->parent if (dt) { - if (!dt->st.st_blksize && !dt->st.st_dev && !dt->st.st_ino) { + if (dt->again&2) { perror_msg_raw(*s); free(dt); } else dlist_add_nomalloc((void *)&TT.files->child, (void *)dt); -- cgit v1.2.3