From: Rob Landley Date: Fri, 8 Aug 2014 04:19:18 +0000 (-0500) Subject: Fix -mindepth and -maxdepth to not drill down into excluded directories. X-Git-Tag: 0.5.0~90 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c572530223ddad725e0f7606bf4b898d8f95f640;p=platform%2Fupstream%2Ftoybox.git Fix -mindepth and -maxdepth to not drill down into excluded directories. The fact other implementations don't implement "! -mindepth" doesn't mean we can't. Also, find uses +N, N, -N for everything else but this extension doesn't. Also, -depth already had a definition and this has nothing to do with that. It's a poorly thought-out extension, is what I'm saying. --- diff --git a/toys/posix/find.c b/toys/posix/find.c index 051c270..a5a95d9 100644 --- a/toys/posix/find.c +++ b/toys/posix/find.c @@ -342,8 +342,13 @@ static int do_find(struct dirtree *new) int i = 0, d = atolx(ss[1]); while ((dt = dt->parent)) i++; - - test = s[1] == 'i' ? i >= d : i <= d; + if (s[1] == 'i') { + test = i >= d; + if (i == d && not) recurse = 0; + } else { + test = i <= d; + if (i == d && !not) recurse = 0; + } } } else if (!strcmp(s, "user") || !strcmp(s, "group") || !strcmp(s, "newer"))