From patchwork Mon Mar 14 09:30:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: kan.liang@intel.com X-Patchwork-Id: 597136 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qP3rQ32rFz9t4n for ; Tue, 15 Mar 2016 03:59:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752293AbcCNQ7d (ORCPT ); Mon, 14 Mar 2016 12:59:33 -0400 Received: from mga02.intel.com ([134.134.136.20]:30789 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751837AbcCNQ7b (ORCPT ); Mon, 14 Mar 2016 12:59:31 -0400 Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP; 14 Mar 2016 09:55:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,336,1455004800"; d="scan'208";a="66121700" Received: from otc-grantly-02.jf.intel.com ([10.54.30.139]) by fmsmga004.fm.intel.com with ESMTP; 14 Mar 2016 09:55:36 -0700 From: kan.liang@intel.com To: bwh@kernel.org Cc: davem@davemloft.net, nicolas.dichtel@6wind.com, ben@decadent.org.uk, jesse.brandeburg@intel.com, andi@firstfloor.org, netdev@vger.kernel.org, Kan Liang Subject: [PATCH 1/5] ethtool: move option parsing related codes into function Date: Mon, 14 Mar 2016 02:30:03 -0700 Message-Id: <1457947807-4804-1-git-send-email-kan.liang@intel.com> X-Mailer: git-send-email 2.5.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Kan Liang Move option parsing code into find_option function. No behavior changes. Signed-off-by: Kan Liang --- ethtool.c | 49 +++++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/ethtool.c b/ethtool.c index 0cd0d4f..bd0583c 100644 --- a/ethtool.c +++ b/ethtool.c @@ -4223,6 +4223,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 *); @@ -4240,24 +4263,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();