From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8AD6C433FE for ; Fri, 18 Nov 2022 02:46:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239416AbiKRCqj (ORCPT ); Thu, 17 Nov 2022 21:46:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56196 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240016AbiKRCqh (ORCPT ); Thu, 17 Nov 2022 21:46:37 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD9BD8DA47 for ; Thu, 17 Nov 2022 18:46:33 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-368994f4bc0so37610617b3.14 for ; Thu, 17 Nov 2022 18:46:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=E7K5GydWND88eiPprqviP7o7yiy4SWslcLb+tIIL4oQ=; b=Z3h2C6yyu0jeLWS9Fe5hzaPxwCOCOZ60urpXed8CIS9czECweKhJYSEVJteGNP12lu 7EsIFt3RwMNcdx5MZdbQBNvypTSfCGJXhcvJ3jOhoZVJFOryNYaxI9F6OE2EK0FoNYKm RkpGTT8XodH/sKdH9V5H1skq0tUACuTCJEDJsr6RnwoAh2C0zRhFK9pRkFPRNhXNwZPb GCRHQAL5wsimk2s6i7kdES68wxMl8D5XztO4J2G7uqN7SKa6YgBenQ1Kasa6uFbAIRfw qoU0WsLGT5wkEy0NWjmEosHeQVvSTztIuJh3KYIqO85Be34IqtNyBReiB05d6NBFWXw1 Azfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=E7K5GydWND88eiPprqviP7o7yiy4SWslcLb+tIIL4oQ=; b=G6Ltv34MDWiYLdcKjYEBghhcAnAAMidSsnjOZHKh0cZ2VxQ0HKahdyTUdHX9TFIhoa vdYWB89T6Kwa8uQOLS00HzM4NQkO0RhVGvTWtAhozMk6qh2SEEfYkdhtYOajuOg4Vp3T 4fBap9TBvYDKzTjD1ZzqYIcV/C6iEwt0cfaUxD5WPV5e1aIflFgX7rOun6+kAKOu10+z CFoxj7oETvHXCV/NJ7purhW07dqFsuq7VGcza90dA6tSJlQJ8kvpjp8rgPP0lwmrVlcM fsdxyNu92LkTwFjVFQ/uF9eZ2F4PGbHhsjUgI0e30AAhghWwofd7KT5aQUKUaxq+T/Zc o6xg== X-Gm-Message-State: ANoB5pm1DORkIr83NdaIjw252thLbdW26F1tqAcsU0FNSrvrhP9X7e15 zuNbRys/UZgqc5b9lCLBvsyTnUr5J+YH X-Google-Smtp-Source: AA0mqf71b56eGXBGzvb6HYNNjsItjJ1b/uiojF/ERc1Vx8nzmc4Lto/0FIvKh+ueGFoCvUFZKEFe4J2AaLBo X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:3f1e:c462:d6b8:fba8]) (user=irogers job=sendgmr) by 2002:a81:6c08:0:b0:369:94dc:7321 with SMTP id h8-20020a816c08000000b0036994dc7321mr4892474ywc.156.1668739593116; Thu, 17 Nov 2022 18:46:33 -0800 (PST) Date: Thu, 17 Nov 2022 18:46:05 -0800 In-Reply-To: <20221118024607.409083-1-irogers@google.com> Message-Id: <20221118024607.409083-2-irogers@google.com> Mime-Version: 1.0 References: <20221118024607.409083-1-irogers@google.com> X-Mailer: git-send-email 2.38.1.584.g0f3c55d4c2-goog Subject: [PATCH v2 1/3] perf list: Support newlines in wordwrap From: Ian Rogers To: Weilin Wang , Perry Taylor , Caleb Biggers , Leo Yan , Adrian Hunter , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Sandipan Das , Kajol Jain , Zhengjun Xing , Kan Liang , Ravi Bangoria , Xin Gao , Rob Herring , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Cc: Stephane Eranian , Ian Rogers Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Rather than a newline starting from column 0, record a newline was seen and then add the newline and space before the next word. Signed-off-by: Ian Rogers --- tools/perf/builtin-list.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c index 84fa2d050eac..f3750331e8f6 100644 --- a/tools/perf/builtin-list.c +++ b/tools/perf/builtin-list.c @@ -74,17 +74,19 @@ static void wordwrap(const char *s, int start, int max, int corr) { int column = start; int n; + bool saw_newline = false; while (*s) { - int wlen = strcspn(s, " \t"); + int wlen = strcspn(s, " \t\n"); - if (column + wlen >= max && column > start) { + if ((column + wlen >= max && column > start) || saw_newline) { printf("\n%*s", start, ""); column = start + corr; } n = printf("%s%.*s", column > start ? " " : "", wlen, s); if (n <= 0) break; + saw_newline = s[wlen] == '\n'; s += wlen; column += n; s = skip_spaces(s); @@ -146,7 +148,7 @@ static void default_print_event(void *ps, const char *pmu_name, const char *topi wordwrap(desc, 8, pager_get_columns(), 0); printf("]\n"); } - + long_desc = long_desc ?: desc; if (long_desc && print_state->long_desc) { printf("%*s", 8, "["); wordwrap(long_desc, 8, pager_get_columns(), 0); @@ -154,7 +156,8 @@ static void default_print_event(void *ps, const char *pmu_name, const char *topi } if (print_state->detailed && encoding_desc) { - printf("%*s%s", 8, "", encoding_desc); + printf("%*s", 8, ""); + wordwrap(encoding_desc, 8, pager_get_columns(), 0); if (metric_name) printf(" MetricName: %s", metric_name); if (metric_expr) -- 2.38.1.584.g0f3c55d4c2-goog