diff options
-rw-r--r-- | findutils/find.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/findutils/find.c b/findutils/find.c index 453ed4b1c..f94bd2367 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -295,31 +295,22 @@ static int find_type(const char *type) | |||
295 | { | 295 | { |
296 | int mask = 0; | 296 | int mask = 0; |
297 | 297 | ||
298 | switch (type[0]) { | 298 | if (*type == 'b') |
299 | case 'b': | ||
300 | mask = S_IFBLK; | 299 | mask = S_IFBLK; |
301 | break; | 300 | else if (*type == 'c') |
302 | case 'c': | ||
303 | mask = S_IFCHR; | 301 | mask = S_IFCHR; |
304 | break; | 302 | else if (*type == 'd') |
305 | case 'd': | ||
306 | mask = S_IFDIR; | 303 | mask = S_IFDIR; |
307 | break; | 304 | else if (*type == 'p') |
308 | case 'p': | ||
309 | mask = S_IFIFO; | 305 | mask = S_IFIFO; |
310 | break; | 306 | else if (*type == 'f') |
311 | case 'f': | ||
312 | mask = S_IFREG; | 307 | mask = S_IFREG; |
313 | break; | 308 | else if (*type == 'l') |
314 | case 'l': | ||
315 | mask = S_IFLNK; | 309 | mask = S_IFLNK; |
316 | break; | 310 | else if (*type == 's') |
317 | case 's': | ||
318 | mask = S_IFSOCK; | 311 | mask = S_IFSOCK; |
319 | break; | ||
320 | } | ||
321 | 312 | ||
322 | if (mask == 0 || type[1] != '\0') | 313 | if (mask == 0 || *(type + 1) != '\0') |
323 | bb_error_msg_and_die(bb_msg_invalid_arg, type, "-type"); | 314 | bb_error_msg_and_die(bb_msg_invalid_arg, type, "-type"); |
324 | 315 | ||
325 | return mask; | 316 | return mask; |