From: Kan Liang <kan.li...@intel.com>

Move option parsing code into find_option function.
No behavior changes.

Signed-off-by: Kan Liang <kan.li...@intel.com>
---
 ethtool.c | 49 +++++++++++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 18 deletions(-)

diff --git a/ethtool.c b/ethtool.c
index 92c40b8..04c5015 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -4173,6 +4173,29 @@ static int show_usage(struct cmd_context *ctx)
        return 0;
 }
 
+static int find_option(int argc, char **argp)
+{
+       const char *opt;
+       size_t len;
+       int k;
+
+       for (k = 0; args[k].opts; k++) {
+               opt = args[k].opts;
+               for (;;) {
+                       len = strcspn(opt, "|");
+                       if (strncmp(*argp, opt, len) == 0 &&
+                           (*argp)[len] == 0)
+                               return k;
+
+                       if (opt[len] == 0)
+                               break;
+                       opt += len + 1;
+               }
+       }
+
+       return -1;
+}
+
 int main(int argc, char **argp)
 {
        int (*func)(struct cmd_context *);
@@ -4190,24 +4213,14 @@ int main(int argc, char **argp)
         */
        if (argc == 0)
                exit_bad_args();
-       for (k = 0; args[k].opts; k++) {
-               const char *opt;
-               size_t len;
-               opt = args[k].opts;
-               for (;;) {
-                       len = strcspn(opt, "|");
-                       if (strncmp(*argp, opt, len) == 0 &&
-                           (*argp)[len] == 0) {
-                               argp++;
-                               argc--;
-                               func = args[k].func;
-                               want_device = args[k].want_device;
-                               goto opt_found;
-                       }
-                       if (opt[len] == 0)
-                               break;
-                       opt += len + 1;
-               }
+
+       k = find_option(argc, argp);
+       if (k > 0) {
+               argp++;
+               argc--;
+               func = args[k].func;
+               want_device = args[k].want_device;
+               goto opt_found;
        }
        if ((*argp)[0] == '-')
                exit_bad_args();
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to