From patchwork Wed Feb 14 08:55:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arkadi Sharshevsky X-Patchwork-Id: 873280 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="FU14qUvD"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zhCtG2Vtzz9t2x for ; Wed, 14 Feb 2018 19:55:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966475AbeBNIzr (ORCPT ); Wed, 14 Feb 2018 03:55:47 -0500 Received: from mail-db5eur01on0059.outbound.protection.outlook.com ([104.47.2.59]:51587 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934850AbeBNIzo (ORCPT ); Wed, 14 Feb 2018 03:55:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=XMT8fk3oTSeSvtCx3y8lGE+qxl7m2jiBrmIzcCsEJkU=; b=FU14qUvDB7L5YpUBP7GvzXWC9FIxEssMpZkGa3EhdYOuPm1urhPeQpfcfMWVdJOywUcvHhER06jJ4hN3dlIqm35/YyBubk4iVVyDQ2mYvnKP8iEYmtviEoeRv7tjYsRXaD4+hvYvS0LUIDC9vMMz895dmIv7JvLx6/n3LQWFJMk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=arkadis@mellanox.com; Received: from dev-r-vrt-156.mtr.labs.mlnx (37.142.13.130) by VI1PR0501MB2461.eurprd05.prod.outlook.com (2603:10a6:800:68::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Wed, 14 Feb 2018 08:55:39 +0000 From: Arkadi Sharshevsky To: netdev@vger.kernel.org Cc: davem@davemloft.net, stephen@networkplumber.org, dsa@cumulusnetworks.com, mlxsw@mellanox.com, Arkadi Sharshevsky Subject: [PATCH iproute2 1/7] devlink: Change empty line indication with indentations Date: Wed, 14 Feb 2018 10:55:16 +0200 Message-Id: <1518598522-27713-2-git-send-email-arkadis@mellanox.com> X-Mailer: git-send-email 2.4.11 In-Reply-To: <1518598522-27713-1-git-send-email-arkadis@mellanox.com> References: <1518598522-27713-1-git-send-email-arkadis@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: HE1PR0102CA0039.eurprd01.prod.exchangelabs.com (2603:10a6:7:7d::16) To VI1PR0501MB2461.eurprd05.prod.outlook.com (2603:10a6:800:68::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 8eb59bdf-51b1-44e6-f633-08d57388b97b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:VI1PR0501MB2461; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 3:/lLyO27fObcr+aUGUG4UfUbhN1Db2Tx+cYkgXevWLNnSTPCqNzUameyFfeLXdzyd+hU3cZJIPTXMa2+ZVXgRifU7d14w91UuaRyOYYciGDbvDSoZ/GwfR+XXVmaFwOY1bexyrq8ISE5BGbda8cEKKJH1+L5l65p/Jhupd4E9Ax6el/qRvXJLcP3zpJipYUu6Nceiloexk67Lig8T3ESHKPX7Ezf5ioPu4eho+ZwRQz9jV2SRBnfsAydsYGZT8EDm; 25:uUd/7p6uzZHqBiIa/hcRUao3yPjqdWUnkvnr3OEs20sejRM4EWKaQs7CqHj2U/CxewbkxHVMMIKirgP3IbOQPfg8deJ/3eNQaLoXKAOuJx4zdXowOg0ObhlH0xtPuuZrrV0IoyhSBPJ2nOtWa1wjp5Lj0CrW+stWBWjC1/SANajzCkHo2r9U3zwImmc04sfK6e8Cvfr+ph2OYyew3OWj2Aim52+7N8uIFDGCUnKyBBXGbvba/LDCrjWtVFe0bd9rkIj5XaI6AW4IVpl6WPU0APJYa+iSOxSVcm2SS80KSNOmWDtmrIWvIj65zXEuLzln3rUTKFYXeoI6JWkP3GV9MQ==; 31:T1OoyWODqvd4/AXYIFHI/HRTDyL+/pi/hMte5P34+pyxMe1kCYrdtRy+pifBOYy0d1EHmJlpj53REBRznYMi1TfzQ4xV4xFKoXjbRgU2uEdaJdK1LvM3NDUXsKTVBo9fXKHR4ACcaqca3l9lUfe7gEo4HbANx/Jw+l/QBrEkr1YLppcCOxExcfxH0ufZDP8irnEKuqP4a+vc5hSPAOc7ZkjkHk7sR/0THtur8JsGDnY= X-MS-TrafficTypeDiagnostic: VI1PR0501MB2461: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 20:BRT/rP7grq9EQSSuTYIjdEImhN5F2G4a3iuElKRCeJZjPpExTojdL7iqSArhktiKDb3Se9uG7ZcUUmI4unFUIyFXrJNwxYh9oUkohN/6M6pDNJtJ0S91MMLxbc3Z1yIx2DKWwBLS/GPXszZAptlcigapBTS1Vj6Uw2IIg26h/7OEvXyB2NlphLGx8+TF9ykfEI5dV1qCTEOKo+7Zm+7BnWvxycc5NvZqNkGCo2s+LVLeM1hYA4iLKunn+wpJxjaw933bdk0RwzicKnIFcM4VOEPoXZZfPOrLd/+A6g8irKPK9jSo8GgFCOu91RNDjT3/RQjOeHiHTBrc/X+Ao8h3AZaA29My8SCxGeyROZKP2pj6Vt1JuUV/l+aqBOGvEteDLe8mFJSR81qyk4mN8kmz895C91eRNZs3WmsZCRsh1npRiRPOTpjLlX61bnodvOb4LJLOC1eixIZJARQ5kElDkHki8ttpd78XhjOFA5phYKdY9rB/h8NrVTZXF8wIqlK5; 4:SMm6h/x+oL1jjOQa4D0wBbTynxCT/GbbrkHIzZSM/NAtarSkER7i/pSx2YtxqVNNppe+Izw4O8UjUr/bsyiwa3xK/n+uwLgJv73v4nbEWRaJFR7GT+ITOKPuleqONEA+T65iMhyOJpEsfWNgKBTpB4iD9eyIis1xj44+JU3kVHtTp6lvro8RZEDWYsNZK3rdiElSPwrzJb5QDFF2NMfZVijhPi7QJHEjWgiWHFGULjkHvGQLhxdWC4yX43vfeWuJ6CxcLrPBUoAeSHkJaQSYhg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3231101)(944501161)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123564045)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR0501MB2461; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2461; X-Forefront-PRVS: 0583A86C08 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(39380400002)(39860400002)(366004)(396003)(376002)(189003)(199004)(50226002)(81156014)(2361001)(6116002)(6512007)(7736002)(26005)(86362001)(3846002)(81166006)(47776003)(305945005)(107886003)(316002)(6506007)(106356001)(8676002)(16586007)(53936002)(478600001)(386003)(5660300001)(76176011)(25786009)(48376002)(52116002)(4326008)(2950100002)(6916009)(97736004)(6666003)(8936002)(66066001)(2906002)(68736007)(2351001)(36756003)(105586002)(186003)(50466002)(16526019)(6486002)(51416003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2461; H:dev-r-vrt-156.mtr.labs.mlnx; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 23:1HZRL2nd6z38wpoWI3EAxu/gNMVPDiWWlnJxec45emNBx2HwLKUt1xBGjczHM/NZmRrP3Jqf+mwuMzfb/USnX6fufX8UgExd21xkMJMbO7K811ajVk71dFfziWMKttER/AhTFf2Rb++dhzuuEghtAJowmCAsVpGyPX6VHUScgJGytX4URY80ET/ZPvbQBdzA5v/ycTc7KQDzVwM4X0JmI2zpqtzM0NQ70HFYI2YI73nIco6MHyslqRCETKVGsfS0afrt4rZMcg6VhZ4WUvfHTgXMFUFwAeUG+5FcgQ03USZZ4fyq+EpIbseq2U308ofoIpwvgkitUAIRayNJgfvETlR8/m3EQAKRoVujA8cpvJpI8CoiWpqupe+lVCyAQtE31fkpxt1TYkDabDUvSHeCC/rWDD8LNd2knOZEgs/rhK8VCV3ZbA+WCv2rEK5fjUPLsLUbSI1OmTCuqNQGnNZqW4QTWwx10i9lfxX/y/PiseFHQmMmklPgwQNW3OiCRLn+jrjzeYDOrZ1RAnOrhu2G/1DxhodzH7GFGvu/7kUOzrm+o7uBWuppEjwB1IBcvCczNpyE+GoCxhmw3X1wZEu9uuivJ8Yw3WT9NL30hZoq8pVrx0piPAK23g1WYjM4KRxK85IAOwFL29k1cWrUCwQBmz9LeutHO61TnKAHBY9qxxL179ujcG516R7eqMZ5wdBRQW5/q7TuFv5k/7mX62oGCoKZV7roGpBs8tOPajvCZCE7n5zaML3le3II2qr9dvwMzQvF6Rl1FVW1QstskovWO1EPoRfcb/kiUbubUJq8DE5Y6SnwVSAlFTJrynvEqBF/0u+aAKWFpKFIsqgOo0KFpTYulEV1PTvDZo1XfWzYH0hJ/Uy6PRw00tJAA67MxSG5EtVuATILqDCNM7X905iJmunl7Wgz98teGgCa09N3+zTcGlcwO9fXFWf4OAeK7QeS8ZSzb1rjAFQOl8IuiP27FfjK4UGgj6XY8tabpPLRVJBXW8f9/Nt6Og7NXXfZec2pQNQOZAaOFC6ukCnhijvzsMObNshqAQqE7ebqTkRP8Lz2qvWEQhtfcGtgjiwSuacelxQqVUtq6Z3uhfFeq3r3t0hlXyiV4uBjFk8WoCC8c9mQU06EiGGGD/c2n34P14QfpgSjg+dsXWxXjwWKzT+dPg== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 6:oP5kv0PgtZwThu7Exzc+68WXj38DtjcfSf9orSvBHAR/Db3FZ0XgfxSer0M7wQOfo7TDnWhU8m3yrDDWBiHTNaJKw1wQT3ZKcydXBcBmZYVlKoiaxXrJ2OdxRAh/FEP5z1JgbkE0NXbkPefwaFTggr3FS8O1HZLFlT7zi06NUGil/Z2goSqUM6eBmJHP+a2Qn6dAV48JzKbXm36sUZpwNrWXwVp+vH9za4/JSZcXqqZlreoRJmZjz/gQG1Gu3W9hbENLabNCiIymPmBmKdQKkEDyUIxUUNiOea5BaM480TEm8gVxqweZrzXvJlB9EmwDSfkqP8Dprpc6EBoFK4y3eSTC/VZ07Ir9SlsktA3bnog=; 5:j/hVB19vyGdusunPMr4RovRC97Tx34cc+UHfQuUD3Fb4/4dkX+1i8CUzaA5sE7K65v9HF36NBqp5PqNOFYy1Fy+FzbDVx3bOOLdq1GQlBwS4FHrSbzdR6ao7TsNzDDgfnWnieJAS5O+k89Ke1UQc9rlwUEgtVIXL6XPZUiT7T28=; 24:P6OzUQxukJB/4kkQ6l8SiRhSZ2FdrrwV5FfqQeLCVFd2o0j47U9cCCwu/Rk5VQU9MZloQuEsr5/YEi8w59GPNzexbNoPw6YT7JBuNTaZ3Sc=; 7:ucXIP9m9BogVVNPN0Ih0hkjpRCeV0Qehm9pOP0Ucgl+tVWIVLaNctLebDGOvd9MdCNCZIFT2yYO7kV5umitMcrfRv2ANq5K73UQi3Za0McDJWzOutcI9yAi5CempuUIwFwI9hMAKXEwauGjfXO5H4HoUrgF84V+MOPZbt1Np2nOIsYfsdDW9jKDKLXW0Vnv/qKDX0BmeAihTf5XpoUIQ3Yon30yv/PsIOYONsco+5CfmU4sbVaQReHCQ1gLmLR6B SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2018 08:55:39.4323 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8eb59bdf-51b1-44e6-f633-08d57388b97b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2461 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Currently multi-line objects are separated by new-lines. This patch changes this behavior by using indentations for separation. Signed-off-by: Arkadi Sharhsevsky Acked-by: Jiri Pirko --- devlink/devlink.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/devlink/devlink.c b/devlink/devlink.c index 57e71ac..8ef6041 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -35,6 +35,8 @@ #define ESWITCH_INLINE_MODE_NETWORK "network" #define ESWITCH_INLINE_MODE_TRANSPORT "transport" +static int g_new_line_count; + #define pr_err(args...) fprintf(stderr, ##args) #define pr_out(args...) \ do { \ @@ -43,6 +45,7 @@ g_indent_newline = false; \ } \ fprintf(stdout, ##args); \ + g_new_line_count = 0; \ } while (0) #define pr_out_sp(num, args...) \ @@ -50,6 +53,7 @@ int ret = fprintf(stdout, ##args); \ if (ret < num) \ fprintf(stdout, "%*s", num - ret, ""); \ + g_new_line_count = 0; \ } while (0) static int g_indent_level; @@ -77,8 +81,11 @@ static void __pr_out_indent_dec(void) static void __pr_out_newline(void) { - pr_out("\n"); - g_indent_newline = true; + if (g_new_line_count < 1) { + pr_out("\n"); + g_indent_newline = true; + } + g_new_line_count++; } static int _mnlg_socket_recv_run(struct mnlg_socket *nlg, @@ -1401,20 +1408,22 @@ static void pr_out_array_start(struct dl *dl, const char *name) jsonw_name(dl->jw, name); jsonw_start_array(dl->jw); } else { - if (!g_indent_newline) - __pr_out_newline(); - pr_out("%s:", name); + __pr_out_indent_inc(); __pr_out_newline(); + pr_out("%s:", name); __pr_out_indent_inc(); + __pr_out_newline(); } } static void pr_out_array_end(struct dl *dl) { - if (dl->json_output) + if (dl->json_output) { jsonw_end_array(dl->jw); - else + } else { + __pr_out_indent_dec(); __pr_out_indent_dec(); + } } static void pr_out_entry_start(struct dl *dl)