diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-04-26 09:54:04 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-04-26 09:54:04 +0200 |
commit | 9138817a27068073a565d915d10301ca00e79659 (patch) | |
tree | 9de1e3cb5870146b3b4ad405a2839edf9afdf622 | |
parent | 05273daf6ff570e5e4936028ef501c59be745311 (diff) | |
download | busybox-w32-9138817a27068073a565d915d10301ca00e79659.tar.gz busybox-w32-9138817a27068073a565d915d10301ca00e79659.tar.bz2 busybox-w32-9138817a27068073a565d915d10301ca00e79659.zip |
find: fix -name matching for dotfiles. -1 byte
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | findutils/find.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/findutils/find.c b/findutils/find.c index 0b06938da..30fb03dd1 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -198,14 +198,19 @@ static int exec_actions(action ***appp, const char *fileName, const struct stat | |||
198 | ACTF(name) | 198 | ACTF(name) |
199 | { | 199 | { |
200 | const char *tmp = bb_basename(fileName); | 200 | const char *tmp = bb_basename(fileName); |
201 | if (tmp != fileName && !*tmp) { /* "foo/bar/". Oh no... go back to 'b' */ | 201 | if (tmp != fileName && *tmp == '\0') { |
202 | /* "foo/bar/". Oh no... go back to 'b' */ | ||
202 | tmp--; | 203 | tmp--; |
203 | while (tmp != fileName && *--tmp != '/') | 204 | while (tmp != fileName && *--tmp != '/') |
204 | continue; | 205 | continue; |
205 | if (*tmp == '/') | 206 | if (*tmp == '/') |
206 | tmp++; | 207 | tmp++; |
207 | } | 208 | } |
208 | return fnmatch(ap->pattern, tmp, FNM_PERIOD | (ap->iname ? FNM_CASEFOLD : 0)) == 0; | 209 | /* Was using FNM_PERIOD flag too, |
210 | * but somewhere between 4.1.20 and 4.4.0 GNU find stopped using it. | ||
211 | * find -name '*foo' should match .foo too: | ||
212 | */ | ||
213 | return fnmatch(ap->pattern, tmp, (ap->iname ? FNM_CASEFOLD : 0)) == 0; | ||
209 | } | 214 | } |
210 | 215 | ||
211 | #if ENABLE_FEATURE_FIND_PATH | 216 | #if ENABLE_FEATURE_FIND_PATH |