diff options
-rw-r--r-- | findutils/find.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/findutils/find.c b/findutils/find.c index f94bd2367..a4fe5d187 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -646,6 +646,11 @@ int find_main(int argc, char **argv) | |||
646 | char *arg; | 646 | char *arg; |
647 | char **argp; | 647 | char **argp; |
648 | int i, firstopt, status = EXIT_SUCCESS; | 648 | int i, firstopt, status = EXIT_SUCCESS; |
649 | const char * const options[] = { | ||
650 | "-follow", | ||
651 | USE_FEATURE_FIND_XDEV( "-xdev", ) | ||
652 | NULL | ||
653 | }; | ||
649 | 654 | ||
650 | for (firstopt = 1; firstopt < argc; firstopt++) { | 655 | for (firstopt = 1; firstopt < argc; firstopt++) { |
651 | if (argv[firstopt][0] == '-') | 656 | if (argv[firstopt][0] == '-') |
@@ -672,12 +677,13 @@ int find_main(int argc, char **argv) | |||
672 | /* (-a will be ignored by recursive parser later) */ | 677 | /* (-a will be ignored by recursive parser later) */ |
673 | argp = &argv[firstopt]; | 678 | argp = &argv[firstopt]; |
674 | while ((arg = argp[0])) { | 679 | while ((arg = argp[0])) { |
675 | if (strcmp(arg, "-follow") == 0) { | 680 | i = index_in_str_array(options, arg); |
681 | if (i == 0) { /* -follow */ | ||
676 | dereference = TRUE; | 682 | dereference = TRUE; |
677 | argp[0] = (char*)"-a"; | 683 | argp[0] = (char*)"-a"; |
678 | } | 684 | } |
679 | #if ENABLE_FEATURE_FIND_XDEV | 685 | #if ENABLE_FEATURE_FIND_XDEV |
680 | else if (strcmp(arg, "-xdev") == 0) { | 686 | else if (i == 1) { /* -xdev */ |
681 | struct stat stbuf; | 687 | struct stat stbuf; |
682 | if (!xdev_count) { | 688 | if (!xdev_count) { |
683 | xdev_count = firstopt - 1; | 689 | xdev_count = firstopt - 1; |