From 6b083345307aa1fdbc48eaf247c80b4c4982b2ee Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Thu, 2 Sep 2021 14:57:18 -0400 Subject: eval: Use 512-byte blocks for -ls when POSIXLY_CORRECT is set This matches the behaviour of GNU find, and allows bfs to match the output of BSD find as well. Fixes #77. --- eval.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 51b621b..55cd812 100644 --- a/eval.c +++ b/eval.c @@ -644,7 +644,8 @@ bool eval_fls(const struct expr *expr, struct eval_state *state) { } uintmax_t ino = statbuf->ino; - uintmax_t blocks = ((uintmax_t)statbuf->blocks*BFS_STAT_BLKSIZE + 1023)/1024; + uintmax_t block_size = state->ctx->posixly_correct ? 512 : 1024; + uintmax_t blocks = ((uintmax_t)statbuf->blocks*BFS_STAT_BLKSIZE + block_size - 1)/block_size; char mode[11]; xstrmode(statbuf->mode, mode); char acl = bfs_check_acl(ftwbuf) > 0 ? '+' : ' '; -- cgit v1.2.3