From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932311AbcARJ2W (ORCPT ); Mon, 18 Jan 2016 04:28:22 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33571 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932148AbcARJY4 (ORCPT ); Mon, 18 Jan 2016 04:24:56 -0500 From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: lkml , David Ahern , Ingo Molnar , Namhyung Kim , Peter Zijlstra Subject: [PATCH 13/26] perf tools: Separate output fields parsing into setup_output_list function Date: Mon, 18 Jan 2016 10:24:11 +0100 Message-Id: <1453109064-1026-14-git-send-email-jolsa@kernel.org> In-Reply-To: <1453109064-1026-1-git-send-email-jolsa@kernel.org> References: <1453109064-1026-1-git-send-email-jolsa@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Separating output fields parsing into setup_output_list function, so it's separated from field_order string setup and could be reused later in following patches. Link: http://lkml.kernel.org/n/tip-4f4bt1un7gyfbyat7lah65dc@git.kernel.org Signed-off-by: Jiri Olsa --- tools/perf/util/sort.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index 844c97f51198..3461198217fc 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c @@ -2532,6 +2532,26 @@ static int output_field_add(char *tok) return -ESRCH; } +static int setup_output_list(char *str) +{ + char *tmp, *tok; + int ret = 0; + + for (tok = strtok_r(str, ", ", &tmp); + tok; tok = strtok_r(NULL, ", ", &tmp)) { + ret = output_field_add(tok); + if (ret == -EINVAL) { + error("Invalid --fields key: `%s'", tok); + break; + } else if (ret == -ESRCH) { + error("Unknown --fields key: `%s'", tok); + break; + } + } + + return ret; +} + static void reset_dimensions(void) { unsigned int i; @@ -2556,7 +2576,7 @@ bool is_strict_order(const char *order) static int __setup_output_field(void) { - char *tmp, *tok, *str, *strp; + char *str, *strp; int ret = -EINVAL; if (field_order == NULL) @@ -2576,17 +2596,7 @@ static int __setup_output_field(void) goto out; } - for (tok = strtok_r(strp, ", ", &tmp); - tok; tok = strtok_r(NULL, ", ", &tmp)) { - ret = output_field_add(tok); - if (ret == -EINVAL) { - error("Invalid --fields key: `%s'", tok); - break; - } else if (ret == -ESRCH) { - error("Unknown --fields key: `%s'", tok); - break; - } - } + ret = setup_output_list(strp); out: free(str); -- 2.4.3