From nobody Sun Dec 22 05:26:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17075138404916.841586130781252; Fri, 9 Feb 2024 13:24:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rYYLU-0007Al-Vr; Fri, 09 Feb 2024 16:23:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rYYLT-00079A-Cs; Fri, 09 Feb 2024 16:23:39 -0500 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rYYLR-0000Cw-T1; Fri, 09 Feb 2024 16:23:39 -0500 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 2EA934BF67; Sat, 10 Feb 2024 00:24:04 +0300 (MSK) Received: from tls.msk.ru (mjt.wg.tls.msk.ru [192.168.177.130]) by tsrv.corpit.ru (Postfix) with SMTP id 1B87F77EE1; Sat, 10 Feb 2024 00:22:48 +0300 (MSK) Received: (nullmailer pid 1123184 invoked by uid 1000); Fri, 09 Feb 2024 21:22:47 -0000 From: Michael Tokarev To: qemu-devel@nongnu.org, qemu-block@nongnu.org Cc: Michael Tokarev Subject: [PATCH 15/23] qemu-img: resize: do not always eat last argument Date: Sat, 10 Feb 2024 00:22:36 +0300 Message-Id: <7e0e7cb2470d572e8c0a48ba85c993be3bdb1c07.1707513011.git.mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1707513841261100001 Content-Type: text/plain; charset="utf-8" 'qemu-img resize --help' does not work, since it wants more arguments. Only eat last option at the beginning if it starts like -N.., and allow getopt() to do its work, and eat it up at the end if not already eaten. This will not allow to mix options and size anyway, but it is better than now. Signed-off-by: Michael Tokarev --- qemu-img.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index 69d41e0a92..929a25a021 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -4271,13 +4271,13 @@ static int img_resize(const img_cmd_t *ccmd, int ar= gc, char **argv) =20 /* Remove size from argv manually so that negative numbers are not tre= ated * as options by getopt. */ - if (argc < 3) { - error_exit(ccmd, "Not enough arguments"); - return 1; + if (argc > 1 && argv[argc - 1][0] =3D=3D '-' + && argv[argc-1][1] >=3D '0' && argv[argc-1][1] <=3D '9') { + size =3D argv[--argc]; + } else { + size =3D NULL; } =20 - size =3D argv[--argc]; - /* Parse getopt arguments */ fmt =3D NULL; for(;;) { @@ -4329,10 +4329,13 @@ static int img_resize(const img_cmd_t *ccmd, int ar= gc, char **argv) break; } } - if (optind !=3D argc - 1) { + if (optind + 1 + (size =3D=3D NULL) !=3D argc) { error_exit(ccmd, "Expecting image file name and size"); } filename =3D argv[optind++]; + if (!size) { + size =3D argv[optind++]; + } =20 /* Choose grow, shrink, or absolute resize mode */ switch (size[0]) { --=20 2.39.2