From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756254AbaDPStl (ORCPT ); Wed, 16 Apr 2014 14:49:41 -0400 Received: from mga03.intel.com ([143.182.124.21]:25563 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752460AbaDPStk (ORCPT ); Wed, 16 Apr 2014 14:49:40 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,873,1389772800"; d="scan'208";a="419946967" From: Andi Kleen To: jolsa@redhat.com Cc: acme@infradead.org, linux-kernel@vger.kernel.org, namhyung@kernel.org, Andi Kleen Subject: [PATCH 03/10] fixup! perf, tools: Add support for text descriptions of events and alias add Date: Wed, 16 Apr 2014 11:49:25 -0700 Message-Id: <1397674172-30959-3-git-send-email-andi@firstfloor.org> X-Mailer: git-send-email 1.8.5.3 In-Reply-To: <1397674172-30959-1-git-send-email-andi@firstfloor.org> References: <1397674172-30959-1-git-send-email-andi@firstfloor.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andi Kleen --- tools/perf/util/pmu.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index cc888d9..26311d9 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -737,11 +737,51 @@ static char *format_alias_or(char *buf, int len, struct perf_pmu *pmu, return buf; } -static int cmp_string(const void *a, const void *b) +struct pair { + char *name; + char *desc; +}; + +static int cmp_pair(const void *a, const void *b) +{ + const struct pair *as = a; + const struct pair *bs = b; + + /* Put downloaded event list last */ + if (!!as->desc != !!bs->desc) + return !!as->desc - !!bs->desc; + return strcmp(as->name, bs->name); +} + +static void wordwrap(char *s, int start, int max, int corr) +{ + int column = start; + int n; + + while (*s) { + int wlen = strcspn(s, " \t"); + + if (column + wlen >= max && column > start) { + printf("\n%*s", start, ""); + column = start + corr; + } + n = printf("%s%.*s", column > start ? " " : "", wlen, s); + if (n <= 0) + break; + s += wlen; + column += n; + while (isspace(*s)) + s++; + } +} + +static int get_columns(void) { - const char * const *as = a; - const char * const *bs = b; - return strcmp(*as, *bs); + /* + * Should ask the terminal with TIOCGWINSZ here, but we + * need the original fd before the pager. + */ + return 79; } void print_pmu_events(const char *event_glob, bool name_only) -- 1.8.5.3