From patchwork Sun Feb 9 15:55:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ren=C3=A9_Scharfe?= X-Patchwork-Id: 11372137 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B904192A for ; Sun, 9 Feb 2020 15:56:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 97B0D2081E for ; Sun, 9 Feb 2020 15:56:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=web.de header.i=@web.de header.b="lIUbDYfN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727661AbgBIPz7 (ORCPT ); Sun, 9 Feb 2020 10:55:59 -0500 Received: from mout.web.de ([212.227.15.3]:36003 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727316AbgBIPz7 (ORCPT ); Sun, 9 Feb 2020 10:55:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1581263754; bh=M31iPiEwJn/VCJ5wp1CI62KF4hO+OJk3wbKbUPpQyFU=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=lIUbDYfNzRJQfozQaIVaGeJyfRXJcTXL3ol69yOYFsNf3QZvtEx1t6QZRJekrFTvb /fxRe95g23Lu/vssP92PGZ6oUC9SHRiPhN0B/q2Zlco4amUUuxJe7qCeWMmyluqLhU luER9II0w78DxyRN9DAOmU3G4+wuebunMGOxNATQ= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.178.26] ([91.47.145.153]) by smtp.web.de (mrweb001 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lu57G-1jT2ho2eQA-011RjH; Sun, 09 Feb 2020 16:55:54 +0100 Subject: [PATCH 1/4] parse-options: use COPY_ARRAY in parse_options_concat() From: =?utf-8?q?Ren=C3=A9_Scharfe?= To: Git Mailing List Cc: Jeff King , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1?= =?utf-8?b?eQ==?= References: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Message-ID: <074eda38-9517-26b6-5608-55ec5f473d80@web.de> Date: Sun, 9 Feb 2020 16:55:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Content-Language: en-US X-Provags-ID: V03:K1:xtWYpe+5oRZFsbUQ/NXvZtrJDa7TbddpHvdrV6qCnlEJfsfo4VJ NTgPg5KgG22gEEz/Rbn0B2bnN7w8Uux/DpdOXGQ1sTtHxwKukMKV72wDjV068L2yW49yNw8 3U8O0vg1BSmXJvnpkoFesrPCvbze3PVJDto+C5aLh2syvV70wmg0aSSI3mU4D2565uR9FnN dbwq4qIv8wzspwCbB1e0A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:yuN+E2VrnvM=:uAUVYYxGO7lF0i68Cunj9o xATU0wb68paKvEdSI7CI8gqIwD1tJqHZXI29qT/kc12jKbvtubm6Hpm0Xk/4ADMk3uLQWR0MJ m/22mvkJ/LPh+q5FUGSTRBMKCCy61OL+AO9EEsLeBbXbR3HVpv+1Ip7Du4IhKNJ2jz8eSlGvh ttQSrlNx0Z0wDqTzE1n/BKKeJjwqk0nYYKf+7AqKO/otn8ioG36FLOkfW5V0iiRYN+D0jgYVD gAEZPD9eQMOgcMJzze2RG8Bol3AvYxT56Rvier4dNB8RoQp89CO0dYVYd95SnDwN3RUqBZEfH nfa0Tz2mIQNodRlVyLuwJueZshej1QT9KGaHasYfDa7GeTlY98JB73Wjj/VteZ6eUTc+5H43J 3zRnqjLmkBdzB6Bb/eLa6eUsCwqYO+NjtoJCIc/li3/rxxV95ffyfRQ7k64FXFldjAIoM2IPY FGr8o69ENvQzGHImhg2aD+Wy0cZrA1XXP83os6XhQrWwdHVUk0fiGNuAtAQ9ZG8NJsARQxJzV nbuV+agUi75a2BVYWkA/SAAigB3+63DZEbr287E/IJ34G3GlT75PQ5YMkV23yldqOJUYb+cJ+ PKPgn6IXRGtUJqlkWawManxcAOizZeafEMaxWIxMnvphltxka9asju2NjMrYIw5jIsPlyhcqh KYyo8Km/wBQ+jAzs9jjHmUVGt7zrnmcqua4K62gIcIp7IuW5orE83vJx3IqeQKVqyqAAazBkK 5Ua0FPC1SAvRO6ZLhy39D12FMql+wpKRG49Kvv1PSkzNK41ruJ9STYj5ytQCU1qk18l+nESFm AlDHJNt2RBl0sK0kwuoc3lBnvL2HVIQ0oGACdwI+WqaMcDeEDFNc3TT8ypv4VugA1uGg4PxS+ Fl8ITnO03GtWYbU2oWHsQaB+g1Nk99TLZe0c5osGH8v6AHNFoNi0qloxwKq3q7RIXtHNtwAS8 PKS0PzFOG5YEAJbl9qgKYXkfaUD8BW+XJBWKADqqM3x2peGoclB0dKOc+4Epw3GOgFEp6Pxdd VHRCPJ36zgcgGumH96SIHw5cYVeC19203UyMphtDLuFI60rhyDxCCB7+IygdjaCi4WsjyE4YW KluBSXYmCdUfSOdVydFdvH6LUjf1gFvIo7Q/5XOdxSCbUexAjbLJ600WYKpmIM7rOzIWidMDX ik5D5rw439IEJJ2ZDc4+/VPZCwIR14tdNQhlSlKPaoAdmj1m1fVL5u0ZEMhIx9JXt8EhM= Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Use COPY_ARRAY to copy whole arrays instead of iterating through the elements. That's shorter, simpler and bit more efficient. Signed-off-by: René Scharfe --- parse-options-cb.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) -- 2.25.0 diff --git a/parse-options-cb.c b/parse-options-cb.c index c2062ae742..012e048856 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -188,11 +188,8 @@ struct option *parse_options_concat(struct option *a, struct option *b) b_len++; ALLOC_ARRAY(ret, st_add3(a_len, b_len, 1)); - for (i = 0; i < a_len; i++) - ret[i] = a[i]; - for (i = 0; i < b_len; i++) - ret[a_len + i] = b[i]; - ret[a_len + b_len] = b[b_len]; /* final OPTION_END */ + COPY_ARRAY(ret, a, a_len); + COPY_ARRAY(ret + a_len, b, b_len + 1); /* + 1 for final OPTION_END */ return ret; } From patchwork Sun Feb 9 15:56:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ren=C3=A9_Scharfe?= X-Patchwork-Id: 11372139 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 354F4924 for ; Sun, 9 Feb 2020 15:56:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 13B712081E for ; Sun, 9 Feb 2020 15:56:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=web.de header.i=@web.de header.b="R5Y4ZAxn" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727692AbgBIP4w (ORCPT ); Sun, 9 Feb 2020 10:56:52 -0500 Received: from mout.web.de ([212.227.15.3]:58849 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727316AbgBIP4v (ORCPT ); Sun, 9 Feb 2020 10:56:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1581263807; bh=PLLREJ2uoKTHEwtgE+SGhGnVKQ3uxEHF5V+j7XsngAA=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=R5Y4ZAxnOTojNnpxb8zCjJL4E9vuGgitRQYmJFdHDxmlobSWt/m+0TGvHtrRE4yQO oUyPQ1i4mDV1VFl7DQ3NENawFSeGVKIgbodtJLjjumu7r5GSXCpS7JlgjZxKAYMWoX +ch1s0ez2KtVQdYf3kEs5AaTqFIo8GFp9ukJBi7E= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.178.26] ([91.47.145.153]) by smtp.web.de (mrweb001 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lym5H-1jXjWi2ht9-0165AA; Sun, 09 Feb 2020 16:56:47 +0100 Subject: [PATCH 2/4] parse-options: factor out parse_options_count() From: =?utf-8?q?Ren=C3=A9_Scharfe?= To: Git Mailing List Cc: Jeff King , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1?= =?utf-8?b?eQ==?= References: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Message-ID: Date: Sun, 9 Feb 2020 16:56:47 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Content-Language: en-US X-Provags-ID: V03:K1:ALM7h8dcNjb2MHX3usUewJq8/mzlrIflr3+qUfv/kzCf3lSuJXs h4Zh0GGSDdCVnlya3t/ZpxhRHn5b/rEcidKeJF7306xCvfeqVunbafr9Vr1KsNGtFdKMwzT QlVKLNxuROMM4eGvOpZrnnqWUNCw28O7oudfvdq5UXO2YNX0gtVQxyAzUezTNDr047YW9Fg xf3D8DMgPPU9UVQkiTVgA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:zvJW+pvcOzo=:Gim44S/rk4EZRMnfdVZ1Bw eJn/3cgDFTFIgC2lDPvMYAC6dwnoGJSJVb+GQU+P48CT3n37yVjvoQV/ZioBdYVcm832Klug+ rRVRM6qvk4t8KMmGr0g6wGH7VBTqE6KXRPz46/jfoSZGdjgGysPzklhOvXdynaaNxBf1fsXo3 NVGDyurPVH+bC8t8IWeq9+fWEEb0C0RVwBQSnbG8T2D6fCvji0daZ4RT4dUr5D84LkxUufKJk bUt4MfprJqmCThrIRddkXg4tTJdMIDDTHvOK60n6mPtwXWg9R4sQyeNQ6Sp0zAOhMz31zUcTz 55QND7x/+/i+mYlxk5YXKO+UMiACC1w66I0qqDiuIonJE8GZ1i0OVNC4jkFJD2ttfVl4cgdlB 22Nj+Wj0sNUFsghlIjKZKpdW1AH/ugvIngczzIC8nT0RN8ySzhcjEDtJcO+t+rHADZRMLLVY2 c7nEn/l+MmDfivSUSNMNBbUEypBwj9aXAGPmoff5zJXjC9YqkL2TlUYMVA/kvPjGb++LYspmI dXjk/y113xJP2u8GA1pHMcZyD7sgpXBpcSNBrDMC+ydxcG7XX+nfuRRIAEXSTyzd1nb/yGt4E jTGAJ/7TUd47NHWAD8/jHQqTbzNEO0bpBASm6RzNgdwHKgH8wWUQoqfl8rm1tsEAAmEQDfN71 DY0f/j3o3eRiRsbNs/1efZu0sa/3/lMpQSKFvMpM2NoZKdi1l/KOljD9HXxxb+F7VDAJZ8J/j WswKF4XuBrgFjAtK6lpXTtWZfc9HVEkIRwI2t9nh8UiqC1mrxx8NSPtHwbUpnVgvX2Dc4ZGs/ PQN2HF+cjBpm44Le28p772igLLnTeyoDE5oU9Nnkdhsp9LqwzwqBzyC0Z+niy16NPOoUiqQxn Vv1sYcoPH5gAEtJs9E3hWbBTemfjlmYZycVewyduwIIpl+wjJRFo81227Q4IzpOj9J2lo4uIX dR5q96yMR11TcFxQkx+XHt43ZfdxrPj9tNbOQW1YtUIUy4xh/YE5xZyYI4t1BBZfBdi0AoRTW x8PiBMX+euUE+lEjykUDJcWuAArpO7m126znPSoG86Vjj5ji341sEzq7Get+/H2mlhc4NthFY 7wSWHQtW1pMQiXpEwIyAlHrrzP4rSbpD4W9dMQJpbZXW5lx615Uu0ODYRgey9UAPnqhH9TNhV aamxcMhnVi3YZr8dwrpSA5733ZqL5OmebQ21S3DfOqIko6cyitx36Eh7wueYhsujavx0xm2z/ 4XYG4Gx5M36J2RTmr Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add a helper function to count the number of options (excluding the final OPT_END()) and use it to simplify parse_options_dup() and parse_options_concat(). Signed-off-by: René Scharfe --- parse-options-cb.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) -- 2.25.0 diff --git a/parse-options-cb.c b/parse-options-cb.c index 012e048856..db6f666ef7 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -159,16 +159,20 @@ int parse_opt_tertiary(const struct option *opt, const char *arg, int unset) return 0; } +static size_t parse_options_count(const struct option *opt) +{ + size_t n = 0; + + for (; opt && opt->type != OPTION_END; opt++) + n++; + return n; +} + struct option *parse_options_dup(const struct option *o) { const struct option *orig = o; struct option *opts; - int nr = 0; - - while (o && o->type != OPTION_END) { - nr++; - o++; - } + size_t nr = parse_options_count(o); ALLOC_ARRAY(opts, nr + 1); COPY_ARRAY(opts, orig, nr); @@ -180,12 +184,8 @@ struct option *parse_options_dup(const struct option *o) struct option *parse_options_concat(struct option *a, struct option *b) { struct option *ret; - size_t i, a_len = 0, b_len = 0; - - for (i = 0; a[i].type != OPTION_END; i++) - a_len++; - for (i = 0; b[i].type != OPTION_END; i++) - b_len++; + size_t a_len = parse_options_count(a); + size_t b_len = parse_options_count(b); ALLOC_ARRAY(ret, st_add3(a_len, b_len, 1)); COPY_ARRAY(ret, a, a_len); From patchwork Sun Feb 9 15:57:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ren=C3=A9_Scharfe?= X-Patchwork-Id: 11372141 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5FD37138D for ; Sun, 9 Feb 2020 15:58:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3EEB12081E for ; Sun, 9 Feb 2020 15:58:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=web.de header.i=@web.de header.b="lKJpOlH0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727761AbgBIP6A (ORCPT ); Sun, 9 Feb 2020 10:58:00 -0500 Received: from mout.web.de ([212.227.15.4]:55959 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727320AbgBIP6A (ORCPT ); Sun, 9 Feb 2020 10:58:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1581263876; bh=BolcHo35TYV5SMVP1jTEWFEUeDIGcjL4m7k76Zzue6I=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=lKJpOlH07mZP/uFiOxY6XZmQJxKtmOlAupxpu/UeUv7BVCW/Gos/Am75EevvpXrAG XsG0udCnupyoDeIMwnvtXH0sVuZOKhbjUIOuxjJF1B/KjnWan27c3chQjsq5tMmZSG Xyns1SpMQIa5YveqLpC6ocrzhETx3QDue4oALoS0= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.178.26] ([91.47.145.153]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MAMY6-1jCKVC2FKc-00Betc; Sun, 09 Feb 2020 16:57:56 +0100 Subject: [PATCH 3/4] parse-options: const parse_options_concat() parameters From: =?utf-8?q?Ren=C3=A9_Scharfe?= To: Git Mailing List Cc: Jeff King , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1?= =?utf-8?b?eQ==?= References: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Message-ID: <2f8eeca8-bada-d67d-9c96-bf10f97a794e@web.de> Date: Sun, 9 Feb 2020 16:57:56 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Content-Language: en-US X-Provags-ID: V03:K1:Yz0K4RzpE25HFYDL7lxun6YYNz/JMkmDNqbhjMKDCLEuz2uGvXF x7Ywqt1H7cCGfbC4LU7GcWBbkJM/HGScNPuJBBibhmtwAjgkTHAA3oPE+oGn8WhShHuoZUo fXVsk7RwZzzcgWD6DP7PKvFwK93pxDxVzEQk1bbQUnFvshU7VprUCdjGZn99YRRbAMhCxGj MzGuTJBZC9Fv6fL65ejIw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:KOEOBRnvOKU=:8pZhW9mUTipamBDd3mFwil LdL6ZyECxd+f5CHkaMMN9GlDvaf2O5M9lo3Eg343Zy7itwKCLFNidGeLa4jbc3BqJunkPYRyc Gc+Kty8V0HdekqxOQHIFGwDD+I6xk8s2iOxA8ktL+zoBA7QmQLBWghUHPgDG1WOsK1uw9Hycp //clLxTpczXvjuKpshaFFGFQ9UMzYWz1zAtOf6k3750b4Tl15FF80mJ6I/p+8tovfShls21pL oE956m6za0pHrIQxDalVTPRBRjAWmRDRLPkhE1Cm8ZX4+zsVAskgg/yP+HgmxBlFIWLoBjvII ZH1yVi4dJ+ZPsPcb79OY10KtG90RAEaWnPJ+IZjW7x0O2es3RXwvScNeIodfAj1CHILZ+ISXm Qmk3WEwaF0YWNt/TFpW+uuCNDehfbYJuA94p6XMdULxYw6meMxYofwGfSgfXZMe0D34YC5MYp /d3cjrBXUMe5ES7/7oBZCL060q+YL/3gbsOXxUV6mhaXiNjFUk8r3PbY0KDPh1jKod75q98ye aRjjHUApIoyoErDK7L3fco+/BP/5CHH0tLj2U7w486dj5d0gyB7xMFTEDcjxwcFAUFks92Q9u H9L+AqQqzZw5Uvt87HxjUSdeD23hGu8epBzKw8NM6N821S7f6CC6wehWEtcnI4ayn58+75Bea JcLck7CtjxTk6Su4dS2cBBqC2/Ra9cel+amAaraPW+qwgSDJqnQ1258OrdpnYaq5WpPmjDIbd qrBj0jtL4trtXYkTYEUAqZerlBLscI/H7tj4wT8OpgSainOLiqRaKVB3fzl+K86IJvzvB9yzm +wSpBE29FKUYABrP8qFKuorrIoBJt5PHD7uK1KbXEAfWnM6PY9c7uRp7Bl7ByepGQZyFaHmR6 4UwULPJbYJJ2zK8PPTGdJe0cm/qYgijqCW1q8cWhKqvJ/KLgelp37oW9eEuM+5fUMo6d9Hx6n kL+VaYbg0moJ60Gd0C6We9sbwnCytpq4Xd3xRS4FIy0w6grYEVOPspND1ehscl5Wkm4YTnNdG l/VWmRrU8rs8YnsUfaXh41m3HnTkeelNjl07r8zAxmiEhN0HX9OPX1dL6iKTPdouEHEXyNtU9 Hz/4Xq26+D8OiurEOVvz7876TWvG6x6wipMfkQy85PpaaH3GdpW1jAvjSk/c4H4jISU542Xx1 vWlPHYUip7HhlPH3l6coToojtCqXQOvx7ckOcllEFQQ8k1rgxLN97/AGDXZmsHTPvqtJE= Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Document the fact that the function doesn't modify the two option arrays passed to it by adding the keyword const to each parameter. Signed-off-by: René Scharfe --- parse-options-cb.c | 3 ++- parse-options.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) -- 2.25.0 diff --git a/parse-options-cb.c b/parse-options-cb.c index db6f666ef7..7d56681130 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -181,7 +181,8 @@ struct option *parse_options_dup(const struct option *o) return opts; } -struct option *parse_options_concat(struct option *a, struct option *b) +struct option *parse_options_concat(const struct option *a, + const struct option *b) { struct option *ret; size_t a_len = parse_options_count(a); diff --git a/parse-options.h b/parse-options.h index fdc0c1cb97..1d60205881 100644 --- a/parse-options.h +++ b/parse-options.h @@ -281,7 +281,7 @@ int parse_options_step(struct parse_opt_ctx_t *ctx, int parse_options_end(struct parse_opt_ctx_t *ctx); struct option *parse_options_dup(const struct option *a); -struct option *parse_options_concat(struct option *a, struct option *b); +struct option *parse_options_concat(const struct option *a, const struct option *b); /*----- some often used options -----*/ int parse_opt_abbrev_cb(const struct option *, const char *, int); From patchwork Sun Feb 9 15:58:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ren=C3=A9_Scharfe?= X-Patchwork-Id: 11372143 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 265D2924 for ; Sun, 9 Feb 2020 15:58:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 04FC22080C for ; Sun, 9 Feb 2020 15:58:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=web.de header.i=@web.de header.b="loegrE+a" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727768AbgBIP6q (ORCPT ); Sun, 9 Feb 2020 10:58:46 -0500 Received: from mout.web.de ([212.227.15.4]:41321 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727320AbgBIP6p (ORCPT ); Sun, 9 Feb 2020 10:58:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1581263922; bh=gVpJwl2EREnaPklYJGzt87BmVM5DZK/FdVv8qmL/Scw=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=loegrE+aNR+AxM6FIn5eXcclCgTTxFjA8sznAkPZzCJE8Rhs20Wx5VFhp7GK2jF4+ p6IglanzChDyJDktza6jsDO+w28WQ2L8RHvh+t1Xl0aqLiOclNLMpxAvv6BoOD524E 20BH88/LhdFcsk40q5yefR3Ha15/aBdjg7SLfD7o= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.178.26] ([91.47.145.153]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MSIwN-1iv4lF2ypn-00TSSB; Sun, 09 Feb 2020 16:58:42 +0100 Subject: [PATCH 4/4] parse-options: simplify parse_options_dup() From: =?utf-8?q?Ren=C3=A9_Scharfe?= To: Git Mailing List Cc: Jeff King , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1?= =?utf-8?b?eQ==?= References: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Message-ID: <162fb36a-6dd1-c178-9032-d3f4213930a6@web.de> Date: Sun, 9 Feb 2020 16:58:42 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <11b82734-f61c-5e73-2d0c-22208c06d495@web.de> Content-Language: en-US X-Provags-ID: V03:K1:BYT0sHuf9N7U3ue32XIVwt3rATgiEyTyHJNey2yPj4sdcJGEihj 7lOUi8LORPocoei6DO5b33WAK0D5N+F1O8r1TWtBC9Jy3cw8jHMEQBEHn457QAvsNB7PtvR DGV2YeVW25v+NEOUIhoa8HHaqg0yj0my1gJqERDeHikf9ujt0/nYVyjslkX8mVR4cJXZ6gs oswGON6hUqCo1TsuYJ3Fg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:77Ox6AoB1ek=:DDza2jmpZkCKajcuB+9FzY D+2Z/Q4gMt70tuc1qL55TO6emBJ9fB4srpflYOz47BpskYLySM5EawgCE/B1jVvExVPNwjH/t A93hiWgjT0S1tvdtPmFpCUaxxeSFCwxO6PUZD4GVSpr5ot8DNfMbm/R6EUkvMKLzm3Apss77I xj5oZShW6EXh5S/XlP6IbpAPnQnfsGZsmirwlSf8XWIujz5zCnsUXO+d4NqDmx/A4gDANe/0V PhcopM3v9lSK45j2k3eFyO3tjrDo/t8jxYd6+V7qjNMMvcoLypc9acP8rx86dY4/gpPBotjLr fop8326V6qwd+DeNvykNpsx6rJYhJ/hNVugyn7i3Ni7lC+rTPeXYoTQbvyIkJ6LinUdNZGXPN ReA75iwRn3yLx1IkG7D2fi6pA2Dv9kwKMFYxKsSJRzyTYGVvU9aybjatFWCylsBvYyA4ldDMB AUyxCniSAEA7KR9AaIa1MwNGz+MWm17OAm4PAKQdw5EY6eqgqK+XWydyLRAVPNLbTkdce1bch +jicJqRGLeVa8A0tTph4ELbovBh+JB3mLgE1K3+XwzfEIS1JAe4BbiA0nI7H1EUDTXLlTMX4c W3INieBWNd1UFxi5sh0jGkwdu0ORRvctkoIpYFbzOFJ0d4uaZKfmpoSJ56c8890jAS1eoJ55C Bw7/q9MVT1fSiEb7jYOOqDwEtH8V3ff2Tl5ritJPJBOzliWbVBawazq1hjMu2iz/nIXHFONrL jjU8EtBTjQo1twA6Qk43/6egpWTJUvQ7I8bCgs09S4Cd+q5yr2mGDeKVSxf5ed1vBPy+7uKA/ 7v8h24/TU4DfL6mxkPt3npqEo6ZZk/8sG5JSLGfXahAuYNWHFfTICHXvXnHYceUuicTZjdkcU Vd1K+7MKfOWcVO6ELVWClRiRvxFmDmQi5sqHPBdCuXdX5RFEFpWg4g25N+Z5Qwnt8r9PUbDpl J37Kl5oH5mipzP4lA86qYbiW0GIaVIyobtmxbvnEj8p7VIcnN7Hz1k9uoXKN6CiyS3oxwTGvx SBvzNt3AkTg/k5xZfGljsHX7WjK+nMnfv+eDaey65QKMPDC/SWIQj72sqQN71iZV42zEqANgH TPa5dG+D8Pmxml1g6erUPEyshdAZdDqkfMRsdxEyx2KTKKDPblZMF8PHTv8HNN5Gv+7OMXG0J TyNrBznIhdm1sC2YByyVhqpUO6AUlLu8oTuRk9CiERLpoB4vLS7C04U3jhTEx8uKxxVo3szO2 EnqOrIk3locxrWH1h Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Simplify parse_options_dup() by making it a trivial wrapper of parse_options_concat() by making use of the facts that the latter duplicates its input as well and that appending an empty set is a no-op. Signed-off-by: René Scharfe --- parse-options-cb.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) -- 2.25.0 diff --git a/parse-options-cb.c b/parse-options-cb.c index 7d56681130..a28b55be48 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -170,15 +170,9 @@ static size_t parse_options_count(const struct option *opt) struct option *parse_options_dup(const struct option *o) { - const struct option *orig = o; - struct option *opts; - size_t nr = parse_options_count(o); - - ALLOC_ARRAY(opts, nr + 1); - COPY_ARRAY(opts, orig, nr); - memset(opts + nr, 0, sizeof(*opts)); - opts[nr].type = OPTION_END; - return opts; + struct option no_options[] = { OPT_END() }; + + return parse_options_concat(o, no_options); } struct option *parse_options_concat(const struct option *a,