From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: Bruno Haible Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Fri, 06 Sep 2024 14:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: 73068@debbugs.gnu.org X-Debbugs-Original-To: bug-coreutils@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.17256316025733 (code B ref -1); Fri, 06 Sep 2024 14:07:01 +0000 Received: (at submit) by debbugs.gnu.org; 6 Sep 2024 14:06:42 +0000 Received: from localhost ([127.0.0.1]:53700 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smZbl-0001UP-R9 for submit@debbugs.gnu.org; Fri, 06 Sep 2024 10:06:42 -0400 Received: from lists.gnu.org ([209.51.188.17]:35978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smZbj-0001UH-OE for submit@debbugs.gnu.org; Fri, 06 Sep 2024 10:06:40 -0400 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 1smZbk-0002SG-1U for bug-coreutils@gnu.org; Fri, 06 Sep 2024 10:06:40 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.218]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1smZbh-0004OP-TW for bug-coreutils@gnu.org; Fri, 06 Sep 2024 10:06:39 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1725631594; cv=none; d=strato.com; s=strato-dkim-0002; b=Qu/IH5gXdwG+KCTciPpJh3wT/eovkgnH9Yfwr8rVsimzxzxmOj9aUOnG4aYxS9GnJD nlwwygNBpuGVvlmn6lI2LeiwNkwinhIEMEFGVoD1h6AvJyzKFCKGTjFHCnjwR0QAYcOQ /PT7kK5VCyCh6cO8CS1Z2YhZltAyHkV++HYva9eqWr5MKvMLy/OewWC0SvW7HyH4sGqG EB/fwfbUiaZb3USWOBPT3AuCBA7nsVEkBNPOR3CRu7179CAKtoW6b90RV5khb+x6ZpE6 6L47yIyqQjeghpnNaB2rK5ZaFeXopl+QbT5ssNiLi5Qx/Xb4uM/pwrV35J31SlUpeeOg 4vUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1725631594; s=strato-dkim-0002; d=strato.com; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=Dd6hvHuco9BYL9Dat5vIw+XZRUki6nsOXo/KUNq1YO0=; b=mNg+NraBOVMR9OG+Hm+I8A8On+BgKZU9eml3RoMNLULWoVnOoJjmbpQ44zvcH84LXw NFnYEGW8wt0r1IvXNNUHTQjsr5MFnDMycafYoGeKOaqvx8aTQ6M0hsmq0kw5VcocJXD8 TeDeaIKdZRKCOK+Z7GXcCwUNkbRFM4XautyS316NcB4r3THLwD3If6fF+PkLWE67sldF 7d8/x6J8cfrT7xFUuzV+LeEPXDnVxXyS/reUDTz0ppForhqIRpj53x1N9kbYKi6YEPvP yQ+Y9trrR52HfrQgxGMXXmeMlvCP7EMpg24SSZ6n4tNX3l/i3x7dLvkWaBOmeDfJ96oL RxDA== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1725631594; s=strato-dkim-0002; d=clisp.org; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=Dd6hvHuco9BYL9Dat5vIw+XZRUki6nsOXo/KUNq1YO0=; b=lxWyoopNP+INF1YaUccy0FjXg08Ue/i6YoV3GT3tXOULJ1sXYH9YvuDlL2sD8b8M73 zulDOfPkMdlagCKxYNjkblIGgRQWTa2RV1KTIo3UI7Kmzo/y8nsuerJnX07PXo2Dne1d TiPWf3++XSZy6CfPdWTUmk9hj1BQdDSn0VePw1WUnVvq6V72R7IfoU+vZUwaOj12rlkw uaZNbMFECxc4/6aDtp5RqGtCSheLY5ueBMNIkv5KFiXkFrEXSTyZO3IWwGHNiFb0N2XD MXm6KR5To8y18BISIhmX4dLD1cJ1LiBwtdVP9jywkewKa1P1Dwkd8FCB9x5LNOb6d4N0 IEKg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1725631594; s=strato-dkim-0003; d=clisp.org; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=Dd6hvHuco9BYL9Dat5vIw+XZRUki6nsOXo/KUNq1YO0=; b=d83jGlz0mN2582yHN2dCT5RPKmWUqX5Hdt0L/UBnLxk1JuW0WCMU7e1dDjTd0397Bk 0aSrz80/iMVa8c2ww+Bw== X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqm2ZHWMunzFi3uOEAcb8g1Nvgrg=" Received: from nimes.localnet by smtp.strato.de (RZmta 51.2.3 AUTH) with ESMTPSA id N17ea7086E6YP3P (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Fri, 6 Sep 2024 16:06:34 +0200 (CEST) From: Bruno Haible Date: Fri, 06 Sep 2024 16:06:34 +0200 Message-ID: <2220600.3uDm00564X@nimes> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Received-SPF: none client-ip=81.169.146.218; envelope-from=bruno@clisp.org; helo=mo4-p00-ob.smtp.rzone.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, POSIX:2024 specifies that printf(1) should support numbered conversion specifications: https://pubs.opengroup.org/onlinepubs/9799919799/utilities/printf.html https://austingroupbugs.net/view.php?id=3D1592 Could this support please be added to GNU coreutils? As of coreutils 9.5, I still get: $ /usr/bin/printf 'abc%2$sdef%1$sxxx\n' 1 2 abc/usr/bin/printf: %2$: invalid conversion specification Rationale: It was pointed out in https://austingroupbugs.net/view.php?id=3D= 1592 that these four statements do all the same thing: 1) pid=3D$$; eval_gettext "Running as process number \$pid."; echo 2) printf_gettext "Running as process number %d." $$; echo 3) printf "`gettext 'Running as process number %d.'`" $$; echo 4) printf $(gettext 'Running as process number %d.') $$; echo The first one has the drawback that it requires the programmer to add backslashes to their format strings. The second one has the drawback that it requires a 'printf_gettext' program (that does not yet exist). The third and fourth one (suggested by J=F6rg Schilling, IIRC) feel more natural to a shell script programmer. However, they require that printf supports numbered arguments. In the first time, we would use a shorthand $printf where (on most GNU systems) printf=3D'/usr/bin/printf', until bash, dash, etc. support it as well. The long-term goal is to be able to change the GNU gettext documentation https://www.gnu.org/software/gettext/manual/html_node/sh.html to list: " Formatting with positions printf " Bruno From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Mon, 09 Sep 2024 18:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Bruno Haible , 73068@debbugs.gnu.org Received: via spool by 73068-submit@debbugs.gnu.org id=B73068.172590671420704 (code B ref 73068); Mon, 09 Sep 2024 18:32:02 +0000 Received: (at 73068) by debbugs.gnu.org; 9 Sep 2024 18:31:54 +0000 Received: from localhost ([127.0.0.1]:34133 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1snjB3-0005Ns-RB for submit@debbugs.gnu.org; Mon, 09 Sep 2024 14:31:54 -0400 Received: from mail-wm1-f41.google.com ([209.85.128.41]:61645) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1snjB1-0005Ne-JT for 73068@debbugs.gnu.org; Mon, 09 Sep 2024 14:31:52 -0400 Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-42cafda818aso21577245e9.2 for <73068@debbugs.gnu.org>; Mon, 09 Sep 2024 11:31:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725906642; x=1726511442; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=KKNnada5mmdmXbTvPouz5irPrSiMpqnElcirRtdMVEk=; b=mYnbJEcJPN1VkiLi4u0ScSgefkbQLVBBoMc+O4im+l2MUJ55vH1HiCip4b54aSsTCG 29G37e/em2kuIxDUlzfAjxhZALxQnOlGiB6viGsI3LzBLp8S59Jaj3dLOths6glTUVEW RZQo+dXmghS8sOex6LsQjdLT0w0YP11AprqtwKOtz5kfvnL2MvIzRLiW3knUZVeHtncX MXBgJruspXWBjFwAtq9LmH7FqEcKEqwMN2WqjmW4iMwYqn7WuI9u/MxiEYkjKjiyca8z O1kW1WJlrLlChbFCIYmNxVfCZadg5kidftkrnkxkK4tHeVOT08pOYyGOVfx5yW3AUPAn p45Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725906642; x=1726511442; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KKNnada5mmdmXbTvPouz5irPrSiMpqnElcirRtdMVEk=; b=uAa9qGVTbYkpWdiJwZQ1X0Ade5TJRl3n0l9MdpHw6+NNWXVy385Cq9ks2yk0c572FA 0LYbzC3gqr/mCEcs1vv3nqr37P5npTJGWS2LPwYMf3GlrwKZhUAy7sLfMUKN7sZrKCWK 6W9QE0tT86n/w+F5cWtaIwRhihZrxUSIkOHVP15DXkPsI9DlBoDq5Te4fn8XL2ABWx48 IbTYHKFYO0DcTypFw0N2xACx79tCL2xGuPIFu7UqjEl4QsS+woPO6kW8eBp1pJTbe3gx MatoLSf2txtpN4aeGYozaPkKVlCVG8kIyWkg6zkrDvogLQ1mUSC8uJmcVYQJfC850OOs gaRw== X-Forwarded-Encrypted: i=1; AJvYcCWYWPuTQnL59VwB6Dz2t6d8EpbHl44K+L0N5jltUzfeO2GTpYrl8BC9hUvMQTjutWdH3xzO+g==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz/FrD3gbFtsfDx8iDWS+RAD/Z7kju66B+cnD81Vqbv3HYHLvpM KpBvPGSs7O1dLT7Lgi7ZPDJBA06wMxMMcN7MLIBkrxFgtWNwN910 X-Google-Smtp-Source: AGHT+IHZplSH1mDVWjgiq8gvXviNPqUCoKpx6bB32fimE2xT8kT9kJcvsA2KuZf/ab9zG3IvAhiY+g== X-Received: by 2002:a05:600c:4ec9:b0:42c:af06:703 with SMTP id 5b1f17b1804b1-42caf060a7cmr58660015e9.31.1725906641262; Mon, 09 Sep 2024 11:30:41 -0700 (PDT) Received: from [192.168.1.76] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-42cae4ed007sm85053305e9.11.2024.09.09.11.30.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 09 Sep 2024 11:30:40 -0700 (PDT) Message-ID: <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> Date: Mon, 9 Sep 2024 19:30:38 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta References: <2220600.3uDm00564X@nimes> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig?= Brady In-Reply-To: <2220600.3uDm00564X@nimes> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On 06/09/2024 15:06, Bruno Haible wrote: > Hi, > > POSIX:2024 specifies that printf(1) should support numbered conversion > specifications: > https://pubs.opengroup.org/onlinepubs/9799919799/utilities/printf.html > https://austingroupbugs.net/view.php?id=1592 > > Could this support please be added to GNU coreutils? As of coreutils 9.5, > I still get: > > $ /usr/bin/printf 'abc%2$sdef%1$sxxx\n' 1 2 > abc/usr/bin/printf: %2$: invalid conversion specification This make sense to implement. I see ksh and FreeBSD at least, already have. I'll have a look at doing this. thank you, Pádraig From unknown Sat Jun 21 05:15:32 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Bruno Haible Subject: bug#73068: closed (Re: bug#73068: printf: please implement POSIX:2024 argument reordering) Message-ID: References: <2220600.3uDm00564X@nimes> X-Gnu-PR-Message: they-closed 73068 X-Gnu-PR-Package: coreutils Reply-To: 73068@debbugs.gnu.org Date: Thu, 12 Sep 2024 16:18:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1726157882-10548-1" This is a multi-part message in MIME format... ------------=_1726157882-10548-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #73068: printf: please implement POSIX:2024 argument reordering which was filed against the coreutils package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 73068@debbugs.gnu.org. --=20 73068: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D73068 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1726157882-10548-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 73068-done) by debbugs.gnu.org; 12 Sep 2024 16:17:20 +0000 Received: from localhost ([127.0.0.1]:41738 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1somVS-0002it-Qx for submit@debbugs.gnu.org; Thu, 12 Sep 2024 12:17:19 -0400 Received: from mail-wm1-f41.google.com ([209.85.128.41]:58861) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1somVO-0002iX-2k for 73068-done@debbugs.gnu.org; Thu, 12 Sep 2024 12:17:17 -0400 Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-42cb2191107so9515625e9.1 for <73068-done@debbugs.gnu.org>; Thu, 12 Sep 2024 09:17:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726157760; x=1726762560; darn=debbugs.gnu.org; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:sender:from:to:cc:subject:date :message-id:reply-to; bh=F04sCwnlJfAX6w108tD7FGWj3z3U8UeFIRtuMhEx2xI=; b=MD4YAlrH+80XWgm1k9WwQ+yRGIfGt1zxet/qHHe9pv/WnddjYC7rLUe31H1zUZrLrq 1LwR+tfNa4WEOHslezM77bhNKBOoKvo6A52OFzB57HyJ0n8PuvGAmY06QeVswkLySJ3S Of44Idgvjw0aLXBvlyNvpIdEv0W7Crv6aJ0GCKofgBp1zF/LGKGPJiQDrRPw1hgRgSlk gMDdBZhyPjxVe/vMlZdGNg8Q6lJ1HaHPHow9VR/Hgd2jHRpNemLE97kgURTccQTqvY3n RcSvN3NAWXuDeQ/v11Z7SacL+Ot6JxHLnXM616xr/wPfKPANtkvGSeBtyC4SG6Sqz1c4 D0jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726157760; x=1726762560; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F04sCwnlJfAX6w108tD7FGWj3z3U8UeFIRtuMhEx2xI=; b=MZ3bsI3JTZ+a1Gmc8nuPsyAqBDAwDo2suB2mzVp97aAibxruFeiHmL6jbGrE5trBUr luNETqBAPl4jhnk+9eO71EUMVdegf0JAG/NwDPFELUAMOlc1P3rffyUxl2C8lF/b35Ms NJdVUDXgvvA8UanacuErt8BcVKYbxFu1qaszzzwK3wLEIDnULfU9E8SFPUkdOfBREkZb Z5DSfuC/1apw/Kxi+S+fEA5XTSTR+AdFP7dB/XMyc18rZKihB2+FOaSOFXM1TuFlWsZI sQ5x9OThBLR45G/cnYirKGGnGqELzKhU58hQT4OGbVW/u6KOHK0o/5i2u591iiU3OEpn IBmg== X-Forwarded-Encrypted: i=1; AJvYcCVu1fi+gzyLFyeTY65fazBeFX3jCuy2j6UbF9GkKU2p5Pl/kcaO7Z69yUc2m58+OHWKNEdIsH5q9ksS@debbugs.gnu.org X-Gm-Message-State: AOJu0YxIRa9Vl5XsuLy3lu0+kyTj+4jOz9tBlhDFqjRIHUXnHmHXH9qe rE3L0TtynTeNO4x+oDiBSZcJ4tPbpUcxgZYAl//Tfjg8s/lbM9yE X-Google-Smtp-Source: AGHT+IFAM0bbAtwhGWY7qFPkvumiEij+AaDyYNcuymO/AXwWUC79S/sOtnf0tNZLTyyqu9VarOg4QA== X-Received: by 2002:a05:6000:87:b0:367:9881:7d66 with SMTP id ffacd0b85a97d-378c2d4d703mr2070130f8f.41.1726157759567; Thu, 12 Sep 2024 09:15:59 -0700 (PDT) Received: from [192.168.1.76] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-42caeb32639sm178442475e9.13.2024.09.12.09.15.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Sep 2024 09:15:58 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------8PjsAmsU0Pc1tbtCcnQvuLkA" Message-ID: Date: Thu, 12 Sep 2024 17:15:56 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#73068: printf: please implement POSIX:2024 argument reordering From: =?UTF-8?Q?P=C3=A1draig_Brady?= To: Bruno Haible , 73068-done@debbugs.gnu.org References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> Content-Language: en-US In-Reply-To: <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 73068-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) This is a multi-part message in MIME format. --------------8PjsAmsU0Pc1tbtCcnQvuLkA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 09/09/2024 19:30, Pádraig Brady wrote: > On 06/09/2024 15:06, Bruno Haible wrote: >> Hi, >> >> POSIX:2024 specifies that printf(1) should support numbered conversion >> specifications: >> https://pubs.opengroup.org/onlinepubs/9799919799/utilities/printf.html >> https://austingroupbugs.net/view.php?id=1592 >> >> Could this support please be added to GNU coreutils? As of coreutils 9.5, >> I still get: >> >> $ /usr/bin/printf 'abc%2$sdef%1$sxxx\n' 1 2 >> abc/usr/bin/printf: %2$: invalid conversion specification > > > This make sense to implement. > I see ksh and FreeBSD at least, already have. > I'll have a look at doing this. I'll apply the attached sometime tomorrow. Marking this as done. cheers, Pádraig --------------8PjsAmsU0Pc1tbtCcnQvuLkA Content-Type: text/x-patch; charset=UTF-8; name="printf-indexed.patch" Content-Disposition: attachment; filename="printf-indexed.patch" Content-Transfer-Encoding: base64 RnJvbSA5N2U1NWM3YWNlOWU5ZTQ2YTMyZmFhMGQ1OTI4NzA5ODNhMTQzNjdiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogV2VkLCAxMSBTZXAgMjAyNCAxNjowNzo0OCAr MDEwMApTdWJqZWN0OiBbUEFUQ0hdIHByaW50ZjogYWRkIGluZGV4ZWQgYXJndW1lbnQgc3Vw cG9ydAoKKiBzcmMvcHJpbnRmLmMgKHByaW50X2Zvcm1hdHRlZCk6IEFkZCBzdXBwb3J0IGZv ciAlaSQgaW5kZXhlZCBhcmdzLgoqIHRlc3RzL3ByaW50Zi9wcmludGYtaW5kZXhlZC5zaDog QWRkIGEgbmV3IGZpbGUgb2YgdGVzdCBjYXNlcy4KKiB0ZXN0cy9sb2NhbC5tazogUmVmZXJl bmNlIHRoZSBuZXcgdGVzdCBmaWxlLgoqIGRvYy9jb3JldXRpbHMudGV4aSAocHJpbnRmIGlu dm9jYXRpb24pOiBNZW50aW9uIGhvdyBtaXhlZApwcm9jZXNzaW5nIG9mIGluZGV4ZWQgYW5k IHNlcXVlbnRpYWwgcmVmZXJlbmNlcyBhcmUgc3VwcG9ydGVkLAp1bmxpa2UgdGhlIHByaW50 ZigyKSBsaWJyYXJ5IGZ1bmN0aW9uLgoqIE5FV1M6IE1lbnRpb24gdGhlIG5ldyBmZWF0dXJl LgpUaGVzZSBhcmUgc3BlY2lmaWVkIGluIFBPU0lYOjIwMjQuCkFkZHJlc3NlcyBodHRwczov L2J1Z3MuZ251Lm9yZy83MzA2OAotLS0KIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArCiBkb2MvY29yZXV0aWxzLnRleGkgICAgICAgICAgICAgfCAgIDYgKysKIHNy Yy9wcmludGYuYyAgICAgICAgICAgICAgICAgICB8IDE3OSArKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0KIHRlc3RzL2xvY2FsLm1rICAgICAgICAgICAgICAgICB8ICAgMSAr CiB0ZXN0cy9wcmludGYvcHJpbnRmLWluZGV4ZWQuc2ggfCAgOTMgKysrKysrKysrKysrKysr KysKIDUgZmlsZXMgY2hhbmdlZCwgMjE1IGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNzU1IHRlc3RzL3ByaW50Zi9wcmludGYtaW5kZXhlZC5zaAoK ZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IGUxZDNmODJkMS4uNjA5NGRlOGQyIDEw MDY0NAotLS0gYS9ORVdTCisrKyBiL05FV1MKQEAgLTQwLDYgKzQwLDEwIEBAIEdOVSBjb3Jl dXRpbHMgTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBvdXRs aW5lIC0qLQogICBscyBub3cgc3VwcG9ydHMgdGhlIC0tc29ydD1uYW1lIG9wdGlvbiwKICAg dG8gZXhwbGljaXRseSBzZWxlY3QgdGhlIGRlZmF1bHQgb3BlcmF0aW9uIG9mIHNvcnRpbmcg YnkgZmlsZSBuYW1lLgogCisgIHByaW50ZiBub3cgc3VwcG9ydHMgaW5kZXhlZCBhcmd1bWVu dHMsIHVzaW5nIHRoZSBQT1NJWDoyMDI0IHNwZWNpZmllZAorICAlaSQgZm9ybWF0LCB3aGVy ZSAnaScgaXMgYW4gaW50ZWdlciByZWZlcmVuY2luZyBhIHBhcnRpY3VsYXIgYXJndW1lbnQs CisgIHRodXMgYWxsb3dpbmcgcmVwZXRpdGlvbiBvciByZW9yZGVyaW5nIG9mIHByaW50ZiBh cmd1bWVudHMuCisKICoqIEltcHJvdmVtZW50cwogCiAgICdoZWFkIC1jIE5VTScsICdoZWFk IC1uIE5VTScsICdubCAtbCBOVU0nLCAnbnByb2MgLS1pZ25vcmUgTlVNJywKZGlmZiAtLWdp dCBhL2RvYy9jb3JldXRpbHMudGV4aSBiL2RvYy9jb3JldXRpbHMudGV4aQppbmRleCA1OGI0 MjU3NzkuLjlmZTk1MzU4NyAxMDA2NDQKLS0tIGEvZG9jL2NvcmV1dGlscy50ZXhpCisrKyBi L2RvYy9jb3JldXRpbHMudGV4aQpAQCAtMTM0MjksNiArMTM0MjksMTIgQEAgTWlzc2luZyBA dmFye2FyZ3VtZW50fXMgYXJlIHRyZWF0ZWQgYXMgbnVsbCBzdHJpbmdzIG9yIGFzIHplcm9z LAogZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGNvbnRleHQgZXhwZWN0cyBhIHN0cmluZyBv ciBhIG51bWJlci4gIEZvcgogZXhhbXBsZSwgdGhlIGNvbW1hbmQgQHNhbXB7cHJpbnRmICVz eCVkfSBwcmludHMgQHNhbXB7eDB9LgogCitAaXRlbQorSW5kZXhlZCBhcmd1bWVudHMgcmVm ZXJlbmNlZCB3aXRoIEBzYW1weyVpJH0gZm9ybWF0cywgY2FuIGJlCittaXhlZCB3aXRoIHN0 YW5kYXJkIHNlcXVlbnRpYWwgYXJndW1lbnQgcmVmZXJlbmNlcywKK2luIHdoaWNoIGNhc2Ug Ym90aCBpbmRleCB0eXBlcyBhcmUgaW5kZXBlbmRlbnQuCitGb3IgZXhhbXBsZSwgdGhlIGNv bW1hbmQgQHNhbXB7cHJpbnRmICclMSRzJXMnIEF9IHByaW50cyBAc2FtcHtBQX0sCisKIEBp dGVtCiBAa2luZGV4IFxjCiBBbiBhZGRpdGlvbmFsIGVzY2FwZSwgQHNhbXB7XGN9LCBjYXVz ZXMgQGNvbW1hbmR7cHJpbnRmfSB0byBwcm9kdWNlIG5vCmRpZmYgLS1naXQgYS9zcmMvcHJp bnRmLmMgYi9zcmMvcHJpbnRmLmMKaW5kZXggZGUzNTA3OTI1Li5iMWM3ZGQ1NjEgMTAwNjQ0 Ci0tLSBhL3NyYy9wcmludGYuYworKysgYi9zcmMvcHJpbnRmLmMKQEAgLTI5MSwxNSArMjkx LDEzIEBAIHByaW50X2VzY19zdHJpbmcgKGNoYXIgY29uc3QgKnN0cikKIH0KIAogLyogRXZh bHVhdGUgYSBwcmludGYgY29udmVyc2lvbiBzcGVjaWZpY2F0aW9uLiAgU1RBUlQgaXMgdGhl IHN0YXJ0IG9mCi0gICB0aGUgZGlyZWN0aXZlLCBMRU5HVEggaXMgaXRzIGxlbmd0aCwgYW5k IENPTlZFUlNJT04gc3BlY2lmaWVzIHRoZQotICAgdHlwZSBvZiBjb252ZXJzaW9uLiAgTEVO R1RIIGRvZXMgbm90IGluY2x1ZGUgYW55IGxlbmd0aCBtb2RpZmllciBvcgotICAgdGhlIGNv bnZlcnNpb24gc3BlY2lmaWVyIGl0c2VsZi4gIEZJRUxEX1dJRFRIIGFuZCBQUkVDSVNJT04g YXJlIHRoZQotICAgZmllbGQgd2lkdGggYW5kIHByZWNpc2lvbiBmb3IgJyonIHZhbHVlcywg aWYgSEFWRV9GSUVMRF9XSURUSCBhbmQKLSAgIEhBVkVfUFJFQ0lTSU9OIGFyZSB0cnVlLCBy ZXNwZWN0aXZlbHkuICBBUkdVTUVOVCBpcyB0aGUgYXJndW1lbnQgdG8KLSAgIGJlIGZvcm1h dHRlZC4gICovCisgICB0aGUgZGlyZWN0aXZlLCBhbmQgQ09OVkVSU0lPTiBzcGVjaWZpZXMg dGhlIHR5cGUgb2YgY29udmVyc2lvbi4KKyAgIEZJRUxEX1dJRFRIIGFuZCBQUkVDSVNJT04g YXJlIHRoZSBmaWVsZCB3aWR0aCBhbmQgcHJlY2lzaW9uIGZvciAnKicKKyAgIHZhbHVlcywg aWYgSEFWRV9GSUVMRF9XSURUSCBhbmQgSEFWRV9QUkVDSVNJT04gYXJlIHRydWUsIHJlc3Bl Y3RpdmVseS4KKyAgIEFSR1VNRU5UIGlzIHRoZSBhcmd1bWVudCB0byBiZSBmb3JtYXR0ZWQu ICAqLwogCiBzdGF0aWMgdm9pZAotcHJpbnRfZGlyZWMgKGNoYXIgY29uc3QgKnN0YXJ0LCBz aXplX3QgbGVuZ3RoLCBjaGFyIGNvbnZlcnNpb24sCitwcmludF9kaXJlYyAoY2hhciBjb25z dCAqc3RhcnQsIGNoYXIgY29udmVyc2lvbiwKICAgICAgICAgICAgICBib29sIGhhdmVfZmll bGRfd2lkdGgsIGludCBmaWVsZF93aWR0aCwKICAgICAgICAgICAgICBib29sIGhhdmVfcHJl Y2lzaW9uLCBpbnQgcHJlY2lzaW9uLAogICAgICAgICAgICAgIGNoYXIgY29uc3QgKmFyZ3Vt ZW50KQpAQCAtMzMzLDYgKzMzMSw3IEBAIHByaW50X2RpcmVjIChjaGFyIGNvbnN0ICpzdGFy dCwgc2l6ZV90IGxlbmd0aCwgY2hhciBjb252ZXJzaW9uLAogICAgICAgICBicmVhazsKICAg ICAgIH0KIAorICAgIHNpemVfdCBsZW5ndGggPSBzdHJsZW4gKHN0YXJ0KTsKICAgICBwID0g eG1hbGxvYyAobGVuZ3RoICsgbGVuZ3RoX21vZGlmaWVyX2xlbiArIDIpOwogICAgIHEgPSBt ZW1wY3B5IChwLCBzdGFydCwgbGVuZ3RoKTsKICAgICBxID0gbWVtcGNweSAocSwgbGVuZ3Ro X21vZGlmaWVyLCBsZW5ndGhfbW9kaWZpZXJfbGVuKTsKQEAgLTQ0OCw1MCArNDQ3LDkyIEBA IHByaW50X2RpcmVjIChjaGFyIGNvbnN0ICpzdGFydCwgc2l6ZV90IGxlbmd0aCwgY2hhciBj b252ZXJzaW9uLAogc3RhdGljIGludAogcHJpbnRfZm9ybWF0dGVkIChjaGFyIGNvbnN0ICpm b3JtYXQsIGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKLSAgaW50IHNhdmVfYXJnYyA9IGFy Z2M7CQkvKiBQcmVzZXJ2ZSBvcmlnaW5hbCB2YWx1ZS4gICovCisKKy8qIFNldCBjdXJyX2Fy ZyBmcm9tIGluZGV4ZWQgJWkkIG9yIG90aGVyd2lzZSBuZXh0IGluIHNlcXVlbmNlLgorICAg UE9TIGNhbiBiZSAwLDEsMiwzIGNvcnJlc3BvbmRpbmcgdG8KKyAgIFslXVt3aWR0aF1bLnBy ZWNpc2lvbl1bY29udmVyc2lvbl0gcmVzcGVjdGl2ZWx5LiAgKi8KKworI2RlZmluZSBHRVRf Q1VSUl9BUkcoUE9TKQkJCQlcCitkbyB7CQkJCQkJCVwKKyAgY2hhciAqYXJnZTsJCQkJCQlc CisgIGludG1heF90IGFyZyA9IFBPUz09MyA/IDAgOiBzdHJ0b2ltYXggKGYsICZhcmdlLCAx MCk7CVwKKyAgaWYgKDAgPCBhcmcgJiYgYXJnIDw9IElOVF9NQVggJiYgKmFyZ2UgPT0gJyQn KQlcCisgICAgLyogUHJvY2VzcyBpbmRleGVkICVpJCBmb3JtYXQuICAqLwkJCVwKKyAgICAv KiBOb3RlICckJyBjb21lcyBiZWZvcmUgYW55IGZsYWdzLiAgKi8JCVwKKyAgICB7CQkJCQkJ CVwKKyAgICAgIFNFVF9DVVJSX0FSRyAoYXJnIC0gMSk7CQkJCVwKKyAgICAgIGYgPSBhcmdl ICsgMTsJCQkJCVwKKyAgICAgIGlmIChQT1MgPT0gMCkJCQkJCVwKKyAgICAgICAgZGlyZWNf YXJnID0gYXJnIC0gMTsJCQkJXAorICAgIH0JCQkJCQkJXAorICBlbHNlCQkJCQkJCVwKKyAg ICAvKiBSZXNldCB0byBzZXF1ZW50aWFsIHByb2Nlc3NpbmcuICAqLwkJXAorICAgIHsJCQkJ CQkJXAorICAgICAgaWYgKFBPUyA9PSAwKQkJCQkJXAorICAgICAgICBkaXJlY19hcmcgPSAt MTsJCQkJCVwKKyAgICAgIGVsc2UgaWYgKFBPUyA8IDMgfHwgZGlyZWNfYXJnID09IC0xKQkJ XAorICAgICAgICBTRVRfQ1VSUl9BUkcgKCsrY3Vycl9zX2FyZyk7CQkJXAorICAgICAgZWxz ZQkJCQkJCVwKKyAgICAgICAgU0VUX0NVUlJfQVJHIChkaXJlY19hcmcpOwkJCVwKKyAgICB9 CQkJCQkJCVwKK30gd2hpbGUgKDApCQkJCQkJXAorCisjZGVmaW5lIFNFVF9DVVJSX0FSRyhB UkcpCQkJCVwKK2RvIHsJCQkJCQkJXAorICBjdXJyX2FyZyA9IEFSRzsJCQkJCVwKKyAgZW5k X2FyZyA9IE1BWCAoY3Vycl9hcmcsIGVuZF9hcmcpOwkJCVwKK30gd2hpbGUgKDApCQkJCQkJ XAorCisgIGludCBjdXJyX2FyZyA9IC0xOwkJLyogQ3VycmVudCBvZmZzZXQuICAqLworICBp bnQgY3Vycl9zX2FyZyA9IC0xOwkJLyogQ3VycmVudCBzZXF1ZW50aWFsIG9mZnNldC4gICov CisgIGludCBlbmRfYXJnID0gLTE7CQkvKiBFbmQgYXJnIHByb2Nlc3NlZC4gICovCisgIGlu dCBkaXJlY19hcmcgPSAtMTsJCS8qIEFyZyBmb3IgbWFpbiBkaXJlY3RpdmUuICAqLwogICBj aGFyIGNvbnN0ICpmOwkJLyogUG9pbnRlciBpbnRvICdmb3JtYXQnLiAgKi8KICAgY2hhciBj b25zdCAqZGlyZWNfc3RhcnQ7CS8qIFN0YXJ0IG9mICUgZGlyZWN0aXZlLiAgKi8KLSAgc2l6 ZV90IGRpcmVjX2xlbmd0aDsJCS8qIExlbmd0aCBvZiAlIGRpcmVjdGl2ZS4gICovCisgIGNo YXIgKmRpcmVjOwkJCS8qIEdlbmVyYXRlZCAlIGRpcmVjdGl2ZS4gICovCisgIGNoYXIgKnBk aXJlYzsJCQkvKiBQb2ludGVyIHRvIGN1cnJlbnQgZW5kIG9mIGRpcmVjdGl2ZS4gICovCiAg IGJvb2wgaGF2ZV9maWVsZF93aWR0aDsJLyogVHJ1ZSBpZiBGSUVMRF9XSURUSCBpcyB2YWxp ZC4gICovCiAgIGludCBmaWVsZF93aWR0aCA9IDA7CQkvKiBBcmcgdG8gZmlyc3QgJyonLiAg Ki8KICAgYm9vbCBoYXZlX3ByZWNpc2lvbjsJCS8qIFRydWUgaWYgUFJFQ0lTSU9OIGlzIHZh bGlkLiAgKi8KICAgaW50IHByZWNpc2lvbiA9IDA7CQkvKiBBcmcgdG8gc2Vjb25kICcqJy4g ICovCiAgIGNoYXIgb2tbVUNIQVJfTUFYICsgMV07CS8qIG9rWyd4J10gaXMgdHJ1ZSBpZiAl eCBpcyBhbGxvd2VkLiAgKi8KIAorICBkaXJlYyA9IHhtYWxsb2MgKHN0cmxlbiAoZm9ybWF0 KSArIDEpOworCiAgIGZvciAoZiA9IGZvcm1hdDsgKmY7ICsrZikKICAgICB7CiAgICAgICBz d2l0Y2ggKCpmKQogICAgICAgICB7CiAgICAgICAgIGNhc2UgJyUnOgotICAgICAgICAgIGRp cmVjX3N0YXJ0ID0gZisrOwotICAgICAgICAgIGRpcmVjX2xlbmd0aCA9IDE7CisgICAgICAg ICAgZGlyZWNfc3RhcnQgPSBmOworICAgICAgICAgIHBkaXJlYyA9IGRpcmVjOworICAgICAg ICAgICpwZGlyZWMrKyA9ICpmKys7CiAgICAgICAgICAgaGF2ZV9maWVsZF93aWR0aCA9IGhh dmVfcHJlY2lzaW9uID0gZmFsc2U7CiAgICAgICAgICAgaWYgKCpmID09ICclJykKICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgcHV0Y2hhciAoJyUnKTsKICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICBHRVRfQ1VSUl9BUkcgKDApOwor CiAgICAgICAgICAgaWYgKCpmID09ICdiJykKICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgLyogRklYTUU6IEZpZWxkIHdpZHRoIGFuZCBwcmVjaXNpb24gYXJlIG5vdCBzdXBwb3J0 ZWQKICAgICAgICAgICAgICAgICAgZm9yICViLCBldmVuIHRob3VnaCBQT1NJWCByZXF1aXJl cyBpdC4gICovCi0gICAgICAgICAgICAgIGlmIChhcmdjID4gMCkKLSAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICBwcmludF9lc2Nfc3RyaW5nICgqYXJndik7Ci0gICAg ICAgICAgICAgICAgICArK2FyZ3Y7Ci0gICAgICAgICAgICAgICAgICAtLWFyZ2M7Ci0gICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBHRVRfQ1VSUl9BUkcgKDMpOworICAgICAg ICAgICAgICBpZiAoY3Vycl9hcmcgPCBhcmdjKQorICAgICAgICAgICAgICAgIHByaW50X2Vz Y19zdHJpbmcgKGFyZ3ZbY3Vycl9hcmddKTsKICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICB9CiAKICAgICAgICAgICBpZiAoKmYgPT0gJ3EnKQogICAgICAgICAgICAgewot ICAgICAgICAgICAgICBpZiAoYXJnYyA+IDApCisgICAgICAgICAgICAgIEdFVF9DVVJSX0FS RyAoMyk7CisgICAgICAgICAgICAgIGlmIChjdXJyX2FyZyA8IGFyZ2MpCiAgICAgICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgICAgZnB1dHMgKHF1b3RlYXJnX3N0eWxlIChzaGVs bF9lc2NhcGVfcXVvdGluZ19zdHlsZSwgKmFyZ3YpLAotICAgICAgICAgICAgICAgICAgICAg ICAgIHN0ZG91dCk7Ci0gICAgICAgICAgICAgICAgICArK2FyZ3Y7Ci0gICAgICAgICAgICAg ICAgICAtLWFyZ2M7CisgICAgICAgICAgICAgICAgICBmcHV0cyAocXVvdGVhcmdfc3R5bGUg KHNoZWxsX2VzY2FwZV9xdW90aW5nX3N0eWxlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcmd2W2N1cnJfYXJnXSksIHN0ZG91dCk7CiAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTUwMSw0 MyArNTQyLDQ2IEBAIHByaW50X2Zvcm1hdHRlZCAoY2hhciBjb25zdCAqZm9ybWF0LCBpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICBva1snZiddID0gb2tbJ0YnXSA9IG9r WydnJ10gPSBva1snRyddID0gb2tbJ2knXSA9IG9rWydvJ10gPQogICAgICAgICAgICAgb2tb J3MnXSA9IG9rWyd1J10gPSBva1sneCddID0gb2tbJ1gnXSA9IDE7CiAKLSAgICAgICAgICBm b3IgKDs7IGYrKywgZGlyZWNfbGVuZ3RoKyspCi0gICAgICAgICAgICBzd2l0Y2ggKCpmKQot ICAgICAgICAgICAgICB7CisgICAgICAgICAgZm9yICg7OyBmKyspCisgICAgICAgICAgICB7 CisgICAgICAgICAgICAgIHN3aXRjaCAoKmYpCisgICAgICAgICAgICAgICAgewogI2lmIChf X0dMSUJDX18gPT0gMiAmJiAyIDw9IF9fR0xJQkNfTUlOT1JfXykgfHwgMyA8PSBfX0dMSUJD X18KLSAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6 CiAjZW5kaWYKLSAgICAgICAgICAgICAgY2FzZSAnXCcnOgotICAgICAgICAgICAgICAgIG9r WydhJ10gPSBva1snQSddID0gb2tbJ2MnXSA9IG9rWydlJ10gPSBva1snRSddID0KLSAgICAg ICAgICAgICAgICAgIG9rWydvJ10gPSBva1sncyddID0gb2tbJ3gnXSA9IG9rWydYJ10gPSAw OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICBjYXNlICctJzogY2Fz ZSAnKyc6IGNhc2UgJyAnOgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg ICBjYXNlICcjJzoKLSAgICAgICAgICAgICAgICBva1snYyddID0gb2tbJ2QnXSA9IG9rWydp J10gPSBva1sncyddID0gb2tbJ3UnXSA9IDA7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g ICAgICAgICAgICAgIGNhc2UgJzAnOgotICAgICAgICAgICAgICAgIG9rWydjJ10gPSBva1sn cyddID0gMDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgZGVmYXVs dDoKLSAgICAgICAgICAgICAgICBnb3RvIG5vX21vcmVfZmxhZ19jaGFyYWN0ZXJzOwotICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSAnXCcnOgorICAgICAgICAgICAg ICAgICAgb2tbJ2EnXSA9IG9rWydBJ10gPSBva1snYyddID0gb2tbJ2UnXSA9IG9rWydFJ10g PQorICAgICAgICAgICAgICAgICAgICBva1snbyddID0gb2tbJ3MnXSA9IG9rWyd4J10gPSBv a1snWCddID0gMDsKKyAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg IGNhc2UgJy0nOiBjYXNlICcrJzogY2FzZSAnICc6CisgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICBjYXNlICcjJzoKKyAgICAgICAgICAgICAgICAgIG9rWydj J10gPSBva1snZCddID0gb2tbJ2knXSA9IG9rWydzJ10gPSBva1sndSddID0gMDsKKyAgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJzAnOgorICAgICAg ICAgICAgICAgICAgb2tbJ2MnXSA9IG9rWydzJ10gPSAwOworICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgIGdv dG8gbm9fbW9yZV9mbGFnX2NoYXJhY3RlcnM7CisgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAqcGRpcmVjKysgPSAqZjsKKyAgICAgICAgICAgIH0KICAgICAgICAgbm9fbW9y ZV9mbGFnX2NoYXJhY3RlcnM6CiAKICAgICAgICAgICBpZiAoKmYgPT0gJyonKQogICAgICAg ICAgICAgewotICAgICAgICAgICAgICArK2Y7Ci0gICAgICAgICAgICAgICsrZGlyZWNfbGVu Z3RoOwotICAgICAgICAgICAgICBpZiAoYXJnYyA+IDApCisgICAgICAgICAgICAgICpwZGly ZWMrKyA9ICpmKys7CisKKyAgICAgICAgICAgICAgR0VUX0NVUlJfQVJHICgxKTsKKworICAg ICAgICAgICAgICBpZiAoY3Vycl9hcmcgPCBhcmdjKQogICAgICAgICAgICAgICAgIHsKLSAg ICAgICAgICAgICAgICAgIGludG1heF90IHdpZHRoID0gdnN0cnRvaW1heCAoKmFyZ3YpOwor ICAgICAgICAgICAgICAgICAgaW50bWF4X3Qgd2lkdGggPSB2c3RydG9pbWF4IChhcmd2W2N1 cnJfYXJnXSk7CiAgICAgICAgICAgICAgICAgICBpZiAoSU5UX01JTiA8PSB3aWR0aCAmJiB3 aWR0aCA8PSBJTlRfTUFYKQogICAgICAgICAgICAgICAgICAgICBmaWVsZF93aWR0aCA9IHdp ZHRoOwogICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBlcnJv ciAoRVhJVF9GQUlMVVJFLCAwLCBfKCJpbnZhbGlkIGZpZWxkIHdpZHRoOiAlcyIpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGUgKCphcmd2KSk7Ci0gICAgICAgICAgICAg ICAgICArK2FyZ3Y7Ci0gICAgICAgICAgICAgICAgICAtLWFyZ2M7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICBxdW90ZSAoYXJndltjdXJyX2FyZ10pKTsKICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBmaWVsZF93aWR0aCA9 IDA7CkBAIC01NDUsMjIgKzU4OSwyMCBAQCBwcmludF9mb3JtYXR0ZWQgKGNoYXIgY29uc3Qg KmZvcm1hdCwgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgICAgfQogICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgIHdoaWxlIChJU0RJR0lUICgqZikpCi0gICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICArK2Y7Ci0gICAgICAgICAgICAgICAgKytkaXJlY19s ZW5ndGg7Ci0gICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgKnBkaXJlYysrID0gKmYr KzsKICAgICAgICAgICBpZiAoKmYgPT0gJy4nKQogICAgICAgICAgICAgewotICAgICAgICAg ICAgICArK2Y7Ci0gICAgICAgICAgICAgICsrZGlyZWNfbGVuZ3RoOworICAgICAgICAgICAg ICAqcGRpcmVjKysgPSAqZisrOwogICAgICAgICAgICAgICBva1snYyddID0gMDsKICAgICAg ICAgICAgICAgaWYgKCpmID09ICcqJykKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgICArK2Y7Ci0gICAgICAgICAgICAgICAgICArK2RpcmVjX2xlbmd0aDsKLSAgICAg ICAgICAgICAgICAgIGlmIChhcmdjID4gMCkKKyAgICAgICAgICAgICAgICAgICpwZGlyZWMr KyA9ICpmKys7CisKKyAgICAgICAgICAgICAgICAgIEdFVF9DVVJSX0FSRyAoMik7CisKKyAg ICAgICAgICAgICAgICAgIGlmIChjdXJyX2FyZyA8IGFyZ2MpCiAgICAgICAgICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICBpbnRtYXhfdCBwcmVjID0gdnN0cnRvaW1h eCAoKmFyZ3YpOworICAgICAgICAgICAgICAgICAgICAgIGludG1heF90IHByZWMgPSB2c3Ry dG9pbWF4IChhcmd2W2N1cnJfYXJnXSk7CiAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBy ZWMgPCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBBIG5lZ2F0aXZlIHByZWNpc2lvbiBpcyB0YWtlbiBhcyBpZiB0aGUKQEAg LTU3MCwxMSArNjEyLDkgQEAgcHJpbnRfZm9ybWF0dGVkIChjaGFyIGNvbnN0ICpmb3JtYXQs IGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChJTlRfTUFYIDwgcHJlYykKICAgICAgICAg ICAgICAgICAgICAgICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIDAsIF8oImludmFsaWQgcHJl Y2lzaW9uOiAlcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlICgq YXJndikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlIChhcmd2W2N1 cnJfYXJnXSkpOwogICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg ICAgICAgICAgIHByZWNpc2lvbiA9IHByZWM7Ci0gICAgICAgICAgICAgICAgICAgICAgKyth cmd2OwotICAgICAgICAgICAgICAgICAgICAgIC0tYXJnYzsKICAgICAgICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBwcmVj aXNpb24gPSAwOwpAQCAtNTgyLDEyICs2MjIsMTEgQEAgcHJpbnRfZm9ybWF0dGVkIChjaGFy IGNvbnN0ICpmb3JtYXQsIGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB3aGlsZSAoSVNESUdJ VCAoKmYpKQotICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICArK2Y7 Ci0gICAgICAgICAgICAgICAgICAgICsrZGlyZWNfbGVuZ3RoOwotICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgKnBkaXJlYysrID0gKmYrKzsKICAgICAgICAgICAg IH0KIAorICAgICAgICAgICpwZGlyZWMrKyA9ICdcMCc7CisKICAgICAgICAgICB3aGlsZSAo KmYgPT0gJ2wnIHx8ICpmID09ICdMJyB8fCAqZiA9PSAnaCcKICAgICAgICAgICAgICAgICAg fHwgKmYgPT0gJ2onIHx8ICpmID09ICd0JyB8fCAqZiA9PSAneicpCiAgICAgICAgICAgICAr K2Y7CkBAIC02MDEsMTAgKzY0MCwxMyBAQCBwcmludF9mb3JtYXR0ZWQgKGNoYXIgY29uc3Qg KmZvcm1hdCwgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgICAgICAgICAgICAg c3BlY2xlbiwgZGlyZWNfc3RhcnQpOwogICAgICAgICAgIH0KIAotICAgICAgICAgIHByaW50 X2RpcmVjIChkaXJlY19zdGFydCwgZGlyZWNfbGVuZ3RoLCAqZiwKKyAgICAgICAgICBHRVRf Q1VSUl9BUkcgKDMpOworCisgICAgICAgICAgcHJpbnRfZGlyZWMgKGRpcmVjLCAqZiwKICAg ICAgICAgICAgICAgICAgICAgICAgaGF2ZV9maWVsZF93aWR0aCwgZmllbGRfd2lkdGgsCiAg ICAgICAgICAgICAgICAgICAgICAgIGhhdmVfcHJlY2lzaW9uLCBwcmVjaXNpb24sCi0gICAg ICAgICAgICAgICAgICAgICAgIChhcmdjIDw9IDAgPyAiIiA6IChhcmdjLS0sICphcmd2Kysp KSk7CisgICAgICAgICAgICAgICAgICAgICAgIChhcmdjIDw9IGN1cnJfYXJnID8gIiIgOiBh cmd2W2N1cnJfYXJnXSkpOworCiAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSAn XFwnOgpAQCAtNjE2LDcgKzY1OCw4IEBAIHByaW50X2Zvcm1hdHRlZCAoY2hhciBjb25zdCAq Zm9ybWF0LCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIH0KICAgICB9CiAKLSAg cmV0dXJuIHNhdmVfYXJnYyAtIGFyZ2M7CisgIGZyZWUgKGRpcmVjKTsKKyAgcmV0dXJuIE1J TiAoYXJnYywgZW5kX2FyZyArIDEpOwogfQogCiBpbnQKZGlmZiAtLWdpdCBhL3Rlc3RzL2xv Y2FsLm1rIGIvdGVzdHMvbG9jYWwubWsKaW5kZXggZmRiZjM2OTQ2Li5mNzIzNTM4NjIgMTAw NjQ0Ci0tLSBhL3Rlc3RzL2xvY2FsLm1rCisrKyBiL3Rlc3RzL2xvY2FsLm1rCkBAIC0zNTMs NiArMzUzLDcgQEAgYWxsX3Rlc3RzID0JCQkJCVwKICAgdGVzdHMvcHJpbnRmL3ByaW50Zi5z aAkJCVwKICAgdGVzdHMvcHJpbnRmL3ByaW50Zi1jb3YucGwJCQlcCiAgIHRlc3RzL3ByaW50 Zi9wcmludGYtaGV4LnNoCQkJXAorICB0ZXN0cy9wcmludGYvcHJpbnRmLWluZGV4ZWQuc2gJ CVwKICAgdGVzdHMvcHJpbnRmL3ByaW50Zi1tYi5zaAkJCVwKICAgdGVzdHMvcHJpbnRmL3By aW50Zi1zdXJwcmlzZS5zaAkJXAogICB0ZXN0cy9wcmludGYvcHJpbnRmLXF1b3RlLnNoCQkJ XApkaWZmIC0tZ2l0IGEvdGVzdHMvcHJpbnRmL3ByaW50Zi1pbmRleGVkLnNoIGIvdGVzdHMv cHJpbnRmL3ByaW50Zi1pbmRleGVkLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw MDAwMDAwMC4uMWMzYTZjMzgwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcHJpbnRmL3By aW50Zi1pbmRleGVkLnNoCkBAIC0wLDAgKzEsOTMgQEAKKyMhL2Jpbi9zaAorIyB0ZXN0cyBm b3IgcHJpbnRmICVpJCBpbmRleGVkIGZvcm1hdCBwcm9jZXNzaW5nCisKKyMgQ29weXJpZ2h0 IChDKSAyMDI0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy4gIiR7c3JjZGly PS59L3Rlc3RzL2luaXQuc2giOyBwYXRoX3ByZXBlbmRfIC4vc3JjCitwcmludF92ZXJfIHBy aW50ZgoraQorZ2V0bGltaXRzXworCitwcm9nPSdlbnYgcHJpbnRmJworCitwcmludGZfY2hl Y2soKSB7CisgIGNhdCA8PEVPRiA+IGV4cCB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KKyQxCitF T0YKKworICBzaGlmdAorCisgICRwcm9nICIkQCIgPiBvdXQgfHwgZmFpbD0xCisgIGNvbXBh cmUgZXhwIG91dCB8fCBmYWlsPTEKK30KKworcHJpbnRmX2NoZWNraV9lcnIoKSB7CisgIGNh dCA8PEVPRiA+IGV4cCB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KKyQxCitFT0YKKworICBzaGlm dAorCisgIHJldHVybnNfMSAkcHJvZyAiJEAiIDI+IG91dCB8fCBmYWlsPTEKKyAgY29tcGFy ZSBleHAgb3V0IHx8IGZhaWw9MQorfQorCitOTD0iCisiCisKKyMgUmVvcmRlcmluZworcHJp bnRmX2NoZWNrICcyMScgJyUyJHMlMSRzXG4nIDEgMgorCisjIFJlcGV0aXRpb24KK3ByaW50 Zl9jaGVjayAiMTEke05MfTIyIiAnJTEkcyUxJHNcbicgMSAyCisKKyMgTXVsdGlwbGUgdXNl cyBvZiBmb3JtYXQKK3ByaW50Zl9jaGVjayAiQSBDIEIke05MfUQgICIgJyVzICUzJHMgJXNc bicgQSBCIEMgRAorcHJpbnRmX2NoZWNrICIgICA0JHtOTH0xIiAnJTEkKmRcbicgNCAxCisK KyMgTWl4ZWQgaW5kZXhlZCBhbmQgc2VxdWVudGlhbCBtYWluIGFyZworcHJpbnRmX2NoZWNr ICJBIEIgQSIgJyVzICVzICUxJHNcbicgQSBCCitwcmludGZfY2hlY2sgJyAgIDAgMSAgJyAn JTEwMCQqZCAlcyAlcyAlc1xuJyA0IDEKKworIyBpbmRleGVkIGFyZywgd2lkdGgsIGFuZCBw cmVjaXNpb24KK3ByaW50Zl9jaGVjayAnIDAxJyAnJTEkKjIkLiozJGRcbicgMSAzIDIKKyMg aW5kZXhlZCBhcmcsIHNlcXVlbnRpYWwgd2lkdGgsIGFuZCBwcmVjaXNpb24KK3ByaW50Zl9j aGVjayAnIDAxJyAnJTMkKi4qZFxuJyAzIDIgMQorIyBpbmRleGVkIGFyZywgd2lkdGgsIGFu ZCBzZXF1ZW50aWFsIHByZWNpc2lvbgorcHJpbnRmX2NoZWNrICcgMDEnICclMyQqMiQuKmRc bicgMiAzIDEKKyMgaW5kZXhlZCBhcmcsIHByZWNpc2lvbiwgYW5kIHNlcXVlbnRpYWwgd2lk dGgKK3ByaW50Zl9jaGVjayAnIDAxJyAnJTMkKi4qMiRkXG4nIDMgMiAxCisjIEluZGV4ZWQg YXJnLCB3aWR0aAorcHJpbnRmX2NoZWNrICcgICAxJyAnJTIkKjEkZFxuJyA0IDEKKyMgSW5k ZXhlZCBhcmcsIGFuZCBzZXF1ZW50aWFsIHdpZHRoCitwcmludGZfY2hlY2sgJyAgIDEnICcl MiQqZFxuJyA0IDEKKworIyBGbGFncyBjb21lIGFmdGVyICQgKDAgaXMgbm90IGEgZmxhZyBo ZXJlKToKK3ByaW50Zl9jaGVjayAnICAgMScgJyUwMSQ0ZFxuJyAxCisjIEZsYWdzIGNvbWUg YWZ0ZXIgJCAoMCBpcyBhIGZsYWcgaGVyZSk6CitwcmludGZfY2hlY2sgJzAwMDEnICclMSQw KjIkZFxuJyAxIDQKKyMgRmxhZ3MgY29tZSBhZnRlciAkICgtMiBub3QgdGFrZW4gYXMgYSB2 YWxpZCBpbmRleCBoZXJlKToKK3ByaW50Zl9jaGVja19lcnIgJ3ByaW50ZjogJS0yJDogaW52 YWxpZCBjb252ZXJzaW9uIHNwZWNpZmljYXRpb24nIFwKKyAgICAgICAgICAgICAgICAgJyUt MiRzICUxJHNcbicgQSBCCisKKyMgRW5zdXJlIG9ubHkgYmFzZSAxMCBudW1iZXJzIGFyZSBh Y2NlcHRlZAorcHJpbnRmX2NoZWNrX2VyciAicHJpbnRmOiAnQSc6IGV4cGVjdGVkIGEgbnVt ZXJpYyB2YWx1ZSIgXAorICAgICAgICAgICAgICAgICAnJTB4MiRzICUxJHNcbicgQSBCCisj IFZlcmlmeSBpbnQgbGltaXRzIChhdm9pZGluZyBjb21wYXJpc29ucyB3aXRoIGFyZ2MgZXRj LikKK3ByaW50Zl9jaGVja19lcnIgInByaW50ZjogJSR7SU5UX09GTE9XfSQ6IGludmFsaWQg Y29udmVyc2lvbiBzcGVjaWZpY2F0aW9uIiBcCisgICAgICAgICAgICAgICAgICIlJHtJTlRf T0ZMT1d9JGRcbiIgMQorCitFeGl0ICRmYWlsCi0tIAoyLjQ2LjAKCg== --------------8PjsAmsU0Pc1tbtCcnQvuLkA-- ------------=_1726157882-10548-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 6 Sep 2024 14:06:42 +0000 Received: from localhost ([127.0.0.1]:53700 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smZbl-0001UP-R9 for submit@debbugs.gnu.org; Fri, 06 Sep 2024 10:06:42 -0400 Received: from lists.gnu.org ([209.51.188.17]:35978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1smZbj-0001UH-OE for submit@debbugs.gnu.org; Fri, 06 Sep 2024 10:06:40 -0400 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 1smZbk-0002SG-1U for bug-coreutils@gnu.org; Fri, 06 Sep 2024 10:06:40 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.218]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1smZbh-0004OP-TW for bug-coreutils@gnu.org; Fri, 06 Sep 2024 10:06:39 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1725631594; cv=none; d=strato.com; s=strato-dkim-0002; b=Qu/IH5gXdwG+KCTciPpJh3wT/eovkgnH9Yfwr8rVsimzxzxmOj9aUOnG4aYxS9GnJD nlwwygNBpuGVvlmn6lI2LeiwNkwinhIEMEFGVoD1h6AvJyzKFCKGTjFHCnjwR0QAYcOQ /PT7kK5VCyCh6cO8CS1Z2YhZltAyHkV++HYva9eqWr5MKvMLy/OewWC0SvW7HyH4sGqG EB/fwfbUiaZb3USWOBPT3AuCBA7nsVEkBNPOR3CRu7179CAKtoW6b90RV5khb+x6ZpE6 6L47yIyqQjeghpnNaB2rK5ZaFeXopl+QbT5ssNiLi5Qx/Xb4uM/pwrV35J31SlUpeeOg 4vUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1725631594; s=strato-dkim-0002; d=strato.com; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=Dd6hvHuco9BYL9Dat5vIw+XZRUki6nsOXo/KUNq1YO0=; b=mNg+NraBOVMR9OG+Hm+I8A8On+BgKZU9eml3RoMNLULWoVnOoJjmbpQ44zvcH84LXw NFnYEGW8wt0r1IvXNNUHTQjsr5MFnDMycafYoGeKOaqvx8aTQ6M0hsmq0kw5VcocJXD8 TeDeaIKdZRKCOK+Z7GXcCwUNkbRFM4XautyS316NcB4r3THLwD3If6fF+PkLWE67sldF 7d8/x6J8cfrT7xFUuzV+LeEPXDnVxXyS/reUDTz0ppForhqIRpj53x1N9kbYKi6YEPvP yQ+Y9trrR52HfrQgxGMXXmeMlvCP7EMpg24SSZ6n4tNX3l/i3x7dLvkWaBOmeDfJ96oL RxDA== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1725631594; s=strato-dkim-0002; d=clisp.org; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=Dd6hvHuco9BYL9Dat5vIw+XZRUki6nsOXo/KUNq1YO0=; b=lxWyoopNP+INF1YaUccy0FjXg08Ue/i6YoV3GT3tXOULJ1sXYH9YvuDlL2sD8b8M73 zulDOfPkMdlagCKxYNjkblIGgRQWTa2RV1KTIo3UI7Kmzo/y8nsuerJnX07PXo2Dne1d TiPWf3++XSZy6CfPdWTUmk9hj1BQdDSn0VePw1WUnVvq6V72R7IfoU+vZUwaOj12rlkw uaZNbMFECxc4/6aDtp5RqGtCSheLY5ueBMNIkv5KFiXkFrEXSTyZO3IWwGHNiFb0N2XD MXm6KR5To8y18BISIhmX4dLD1cJ1LiBwtdVP9jywkewKa1P1Dwkd8FCB9x5LNOb6d4N0 IEKg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1725631594; s=strato-dkim-0003; d=clisp.org; h=Message-ID:Date:Subject:To:From:Cc:Date:From:Subject:Sender; bh=Dd6hvHuco9BYL9Dat5vIw+XZRUki6nsOXo/KUNq1YO0=; b=d83jGlz0mN2582yHN2dCT5RPKmWUqX5Hdt0L/UBnLxk1JuW0WCMU7e1dDjTd0397Bk 0aSrz80/iMVa8c2ww+Bw== X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqm2ZHWMunzFi3uOEAcb8g1Nvgrg=" Received: from nimes.localnet by smtp.strato.de (RZmta 51.2.3 AUTH) with ESMTPSA id N17ea7086E6YP3P (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Fri, 6 Sep 2024 16:06:34 +0200 (CEST) From: Bruno Haible To: bug-coreutils@gnu.org Subject: printf: please implement POSIX:2024 argument reordering Date: Fri, 06 Sep 2024 16:06:34 +0200 Message-ID: <2220600.3uDm00564X@nimes> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" Received-SPF: none client-ip=81.169.146.218; envelope-from=bruno@clisp.org; helo=mo4-p00-ob.smtp.rzone.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, POSIX:2024 specifies that printf(1) should support numbered conversion specifications: https://pubs.opengroup.org/onlinepubs/9799919799/utilities/printf.html https://austingroupbugs.net/view.php?id=3D1592 Could this support please be added to GNU coreutils? As of coreutils 9.5, I still get: $ /usr/bin/printf 'abc%2$sdef%1$sxxx\n' 1 2 abc/usr/bin/printf: %2$: invalid conversion specification Rationale: It was pointed out in https://austingroupbugs.net/view.php?id=3D= 1592 that these four statements do all the same thing: 1) pid=3D$$; eval_gettext "Running as process number \$pid."; echo 2) printf_gettext "Running as process number %d." $$; echo 3) printf "`gettext 'Running as process number %d.'`" $$; echo 4) printf $(gettext 'Running as process number %d.') $$; echo The first one has the drawback that it requires the programmer to add backslashes to their format strings. The second one has the drawback that it requires a 'printf_gettext' program (that does not yet exist). The third and fourth one (suggested by J=F6rg Schilling, IIRC) feel more natural to a shell script programmer. However, they require that printf supports numbered arguments. In the first time, we would use a shorthand $printf where (on most GNU systems) printf=3D'/usr/bin/printf', until bash, dash, etc. support it as well. The long-term goal is to be able to change the GNU gettext documentation https://www.gnu.org/software/gettext/manual/html_node/sh.html to list: " Formatting with positions printf " Bruno ------------=_1726157882-10548-1-- From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: Bruno Haible Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Thu, 12 Sep 2024 17:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: =?UTF-8?Q?P=C3=A1draig?= Brady Cc: 73068-done@debbugs.gnu.org Received: via spool by 73068-done@debbugs.gnu.org id=D73068.172616082621202 (code D ref 73068); Thu, 12 Sep 2024 17:08:02 +0000 Received: (at 73068-done) by debbugs.gnu.org; 12 Sep 2024 17:07:06 +0000 Received: from localhost ([127.0.0.1]:41784 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sonHd-0005Vu-VI for submit@debbugs.gnu.org; Thu, 12 Sep 2024 13:07:06 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.220]:39391) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sonHa-0005VL-UT for 73068-done@debbugs.gnu.org; Thu, 12 Sep 2024 13:07:04 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1726160812; cv=none; d=strato.com; s=strato-dkim-0002; b=Rdz5RFBU+sgelBM14rzSfkYjuzdgylaKCieL/Ck2oLlbqQQFLXy3Z+i26NmUbk1vTe 5ttDBQKl7OQnROqpeL1Vqb1n5yE4CXaLcMZzmwE537g5d6dqKQImkDhzbJs1rRk++dc0 wMzSanp4iSnI9bG8+xNWuX11Xo8XVg6fxqqFGgyzy4wMfOPJiDZ9NLmMe6nAm4PxrkYM pDZkyOL61vFPf5hrjiVXPuM7lJ5dnbuPDtWNLY0PGAcYjyomOHv9PjdAKJ+lEkoO+jX2 sjYKTSD4/rLSAxhB2hnWDPyXDO5dT/M+hNq7nOACc52Mix7GlWi0dDZ0Olxv9bY3UVNB Lr3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1726160812; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=NXH5AgrnK9nwjhmXjiTkOullrBWDwWUvfD9jj7lSBHk=; b=B84Q2/U2LtZZhuJOp8eEhV375gbL1hCk+GZiaU4+GNLY0kbKtsVN6NeHu3okkqKzmW 5FI5aLi4/by2V++FmpjaNQLY7wFotpD9EcnAM2PRlH/qQFWal39j+a4zsxPHXcZgV4o0 dzOcOpo+G2+s+1ygy+Qq4kxJz+EfxAg24u8VZ7tQYzJ/blTJX649VR7C4Rfn9AIm3Fd0 8+lQdgiexmAKHRfiItyiGPJbvsLXERtjuciWLD5559jh8OEIPqn49OjDHFgizrPngKl5 pjojrxioo02D9vYBto6qn4aFlHs2/TaAF8SRD5w+jFS7XPqfn3TRv2CbYAyk0y5omkCQ Z1hg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo00 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1726160812; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=NXH5AgrnK9nwjhmXjiTkOullrBWDwWUvfD9jj7lSBHk=; b=C2hd1K8n+889Dotim5Q8t5jOVH/3tbTSublJITyOW9yefcsAC+HCbIq+kKuFPpyafk 66JzqoffjHDBrufBuxY+kXBAvhWhTbEaP1M63GRPJ2qvHD7RvZ7WeUdTcPAF5qRgeZ73 vUG1zh31EGtgKof7WfT6Q+7XlYxc/BzK/E2CCpbUfebaiI0pkEnpptvQre2N+wAMhEx+ s6Q5HFWALFL+jJCRZi46VglWtjVaqNsy5xwcOnAOsk3uZGLTgtG9VnslCcT3ntI+01y0 3UXnlrbeyCWUsbiXx36asE6k3AIXuEFDsuzQKAR9wfGwOZI74K4bmjYHVX34Kbv6OQwM nrHA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1726160812; s=strato-dkim-0003; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=NXH5AgrnK9nwjhmXjiTkOullrBWDwWUvfD9jj7lSBHk=; b=5yvAFovFyENVWlZtSqddbp63WyGXFkztDJf5eU7C7FfNpNFIAiV65lOHsgHSxg5VE2 lrVodhA+GVRyXWCSJFBw== X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlLnY4jECd2hdUURIbZgL8PX2QiTuZ3cdB8X/nqmeZFWhnpBQXJWNGAZ0chO6kD1oL" Received: from nimes.localnet by smtp.strato.de (RZmta 51.2.3 AUTH) with ESMTPSA id N17ea708CH6qpaj (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Thu, 12 Sep 2024 19:06:52 +0200 (CEST) From: Bruno Haible Date: Thu, 12 Sep 2024 19:06:52 +0200 Message-ID: <2338371.iQE5PxAY86@nimes> In-Reply-To: References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) P=E1draig Brady wrote: > I'll apply the attached sometime tomorrow. Nice! Thank you. There seems to be a typo in the unit test, though: It defines a shell function 'printf_checki_err' but the function it then invokes is 'printf_check_err'. Bruno From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: Collin Funk Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Thu, 12 Sep 2024 17:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: 73068@debbugs.gnu.org Cc: bruno@clisp.org, P@draigBrady.com Received: via spool by 73068-submit@debbugs.gnu.org id=B73068.172616292828920 (code B ref 73068); Thu, 12 Sep 2024 17:43:02 +0000 Received: (at 73068) by debbugs.gnu.org; 12 Sep 2024 17:42:08 +0000 Received: from localhost ([127.0.0.1]:41866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sonpX-0007WO-Tp for submit@debbugs.gnu.org; Thu, 12 Sep 2024 13:42:08 -0400 Received: from mail-pj1-f46.google.com ([209.85.216.46]:43510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sonpV-0007Vp-AT for 73068@debbugs.gnu.org; Thu, 12 Sep 2024 13:42:06 -0400 Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-2d8818337a5so1762811a91.1 for <73068@debbugs.gnu.org>; Thu, 12 Sep 2024 10:41:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726162851; x=1726767651; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5hV9lVD4fqiKj8NJ2dqmZXqXahfK4sNNo7EFPOLniSM=; b=SOpP5JQFwV89PtEgYU0ZluUfzABP2FBEZcC0oY/jSLggDXqUyvT17S67XL/HoPRSc5 E2oEYWuNmrCtj1uwB998zh81SYrhHyZlQZXAerQKAy6giCA1pOsIDI0kx+YtPsbGtEJC 4Q/ksNsiu2ohTXFo4vM9tDfCnihDeuBNwzBAHpjQ8BurkUMCxHoF2n2cLqxyhEDTnVUo BB0p5mEJ9B+bTDISSrTIb87ZTsfVY0j5UzUWMJyt0oK+xyuhQBeFlJXBxvTMsJM8LMpV rPXeplC8aRSobW0VyPZ1GjQ+Exj3GveBkBGaoGof8Y9hrUAi7+qpF3uMJDoswnwgHRHx /aYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726162851; x=1726767651; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5hV9lVD4fqiKj8NJ2dqmZXqXahfK4sNNo7EFPOLniSM=; b=XdG8tFDUMoSpnyjcpFqdq1j2nXalOGH5xBaI/srfSWXthxqAUDWi4xzhFYjzXCeb2s 8yBoraEGO7i8FqSSyAC0fN8PoQSNoVUGnKjuWGzArPVOqUkpTtXwSM7/hALGIdMODPUt E2ZtP+mbGn8fPt+7/4gqkuFednWfCMzBmUBk4Y5HLGPqd5yvEytxZlY9RCcxphUkg4sO myqZATxGW1cttVpjgRPlOjChEQrDQ89xszKJdbgMeNdKYTTlTVCN7kM/3UpZNXwDKNA1 tXn4vzyCKYYIGd0IoGP7AhtK1LJh/AyzPOiUN6PCs5RyjVfPnC3wXwfp8Ke8cmPLqURu n4FA== X-Gm-Message-State: AOJu0YxNBdgVVLQ1kUC+9WCL5LeQw9uB6hLEi147fAltVc6d7uL78pdk 65mVvJa6Yxw2EpjFEuXUMiwOXyKYxC5YiO6c+448pXsSuS1X05NPARVSZg== X-Google-Smtp-Source: AGHT+IG4z5nimTRAzY6nrFkbJfb2AGG7BvV2rEya/M8HN58i63rKkz51CUNIEZ16Dqf3x0e4BUiz2A== X-Received: by 2002:a17:90b:3b90:b0:2d8:dd5c:f954 with SMTP id 98e67ed59e1d1-2db6720f2bamr17314180a91.16.1726162851036; Thu, 12 Sep 2024 10:40:51 -0700 (PDT) Received: from fedora (c-73-93-224-2.hsd1.ca.comcast.net. [73.93.224.2]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2076afdd8b2sm16739995ad.175.2024.09.12.10.40.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Sep 2024 10:40:50 -0700 (PDT) From: Collin Funk In-Reply-To: ("=?UTF-8?Q?P=C3=A1draig?= Brady"'s message of "Thu, 12 Sep 2024 17:15:56 +0100") References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> Date: Thu, 12 Sep 2024 10:40:48 -0700 Message-ID: <87frq4lqhr.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Hi P=C3=A1draig, P=C3=A1draig Brady writes: > I'll apply the attached sometime tomorrow. > > Marking this as done. Patch looks good, thanks. One small comment, though. > +#define GET_CURR_ARG(POS) \ > +do { \ > + char *arge; \ > + intmax_t arg =3D POS=3D=3D3 ? 0 : strtoimax (f, &arge, 10); \ > + if (0 < arg && arg <=3D INT_MAX && *arge =3D=3D '$') \ > + /* Process indexed %i$ format. */ \ > + /* Note '$' comes before any flags. */ \ Shouldn't you check errno here, like: char *arge; errno =3D 0; intmax_t arg =3D POS=3D=3D3 ? 0 : strtoimax (f, &arge, 10); if (errno =3D=3D 0 && 0 < arg && arg <=3D INT_MAX && *arge =3D=3D '$') [...] I think that would handle all bad cases. For example, I think "%$" might return 0 but set errno to EINVAL. Collin From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Thu, 12 Sep 2024 18:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Bruno Haible Cc: 73068-done@debbugs.gnu.org Received: via spool by 73068-done@debbugs.gnu.org id=D73068.17261644671904 (code D ref 73068); Thu, 12 Sep 2024 18:08:01 +0000 Received: (at 73068-done) by debbugs.gnu.org; 12 Sep 2024 18:07:47 +0000 Received: from localhost ([127.0.0.1]:41908 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sooEM-0000Ud-Se for submit@debbugs.gnu.org; Thu, 12 Sep 2024 14:07:47 -0400 Received: from mail-lf1-f53.google.com ([209.85.167.53]:49489) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sooEK-0000UO-Mj for 73068-done@debbugs.gnu.org; Thu, 12 Sep 2024 14:07:45 -0400 Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-5365c512b00so1671977e87.3 for <73068-done@debbugs.gnu.org>; Thu, 12 Sep 2024 11:07:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726164390; x=1726769190; darn=debbugs.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=p/nWX1CjrqSdeI/uUg/iXhiVsq1el+Ilew68DZxIrF8=; b=Z5wi2oDcwO8yeJx23QkKPLls3X4UPxQfOxS+ys3EgqXooF0K8MGCNUkcWrCBNLR1IB PtqfvwzWa+gveEd9c8/5PkTzm+GVXNBr84i81+Gkkh1+ex7NgvLVVn+4IGvsY4SOQv12 IDSry6OBsjMHiV0IAFFvHbNOjx0KExfX/Mjzc/CpbpHQsFOfoOfpYtfyiMNOU4xyQnp7 luieFRD6BgR6gPqoF4RrcSLyznTAm3kDN/hlMrOAglrwV0xtSHIVHUHpUecKAfJ2A/Kp BugD9vdqnu2M4J3nm8VLrDwuK4cOFKGLc0R+xEd497OS5NeVV9PqU5x8n85UVfWvaivW ZhwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726164390; x=1726769190; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=p/nWX1CjrqSdeI/uUg/iXhiVsq1el+Ilew68DZxIrF8=; b=BIHTU9Qj4stahIlzjchhUlEE5V+TE01+HPakg2UxO6dHcaoS2pzvRlcbE0AmSUNbMb ZV3hjIXNgORSDig5Ge0Fk6Ef2KVMBDE2sNnsqiaAVgR6RJh2lAeGGdADEI+GGOKQZ17+ IItXgYjRZVd+RYLw4i9tf5GXBIjcQZjTpxhlP9+qfnbKd6XzKVyTesHmJFto0HenlNpO fTeD9kkRB/FghKdBDw06bX9sygGda58hJsB/o3OdiEY3415i0Pu735EI0ipwnQA+TQnx dOXEQrDVubyFj08QAICdKtZ4sM13nDaTfl46sguoKoDD9NXW78cqdXw+ErolKBNWySec x1CA== X-Gm-Message-State: AOJu0Yz5TE8/aCAiwrUfEBSG9buPKhlhUsniYKnyuAKEnD9ZnJDn6zJE fcLpr0YCAGgEgi6DurfICJMpp66ATJYL4F1NnjseromytvmRLgjO X-Google-Smtp-Source: AGHT+IGviG9VkbEYgakvOLUBmF2xBHkY+CIJXUPCX1oNPtSqZBTklYSiguKTAVn9EW/w1F54oXqgTw== X-Received: by 2002:ac2:4c41:0:b0:52e:f58b:65ee with SMTP id 2adb3069b0e04-53678ff48ebmr2600049e87.57.1726164389725; Thu, 12 Sep 2024 11:06:29 -0700 (PDT) Received: from [192.168.1.76] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-42ccdb23c56sm64129965e9.4.2024.09.12.11.06.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Sep 2024 11:06:29 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------btrg1r2RAOoLkJIZ0qrFba0T" Message-ID: <1a000b35-2d41-4d21-94ce-2e011d9c80ef@draigBrady.com> Date: Thu, 12 Sep 2024 19:06:28 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> <2338371.iQE5PxAY86@nimes> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig?= Brady In-Reply-To: <2338371.iQE5PxAY86@nimes> X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) This is a multi-part message in MIME format. --------------btrg1r2RAOoLkJIZ0qrFba0T Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12/09/2024 18:06, Bruno Haible wrote: > Pádraig Brady wrote: >> I'll apply the attached sometime tomorrow. > > Nice! Thank you. > > There seems to be a typo in the unit test, though: It defines a shell > function 'printf_checki_err' but the function it then invokes is > 'printf_check_err'. Hah, good catch. That hid other errors in the test. Fixed up with the attached. thanks for the review, Pádraig --------------btrg1r2RAOoLkJIZ0qrFba0T Content-Type: text/x-patch; charset=UTF-8; name="printf-indexed-adj1.diff" Content-Disposition: attachment; filename="printf-indexed-adj1.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3Rlc3RzL3ByaW50Zi9wcmludGYtaW5kZXhlZC5zaCBiL3Rlc3RzL3By aW50Zi9wcmludGYtaW5kZXhlZC5zaAppbmRleCAxYzNhNmMzODAuLmQwZjc5OWFiMSAxMDA3 NTUKLS0tIGEvdGVzdHMvcHJpbnRmL3ByaW50Zi1pbmRleGVkLnNoCisrKyBiL3Rlc3RzL3By aW50Zi9wcmludGYtaW5kZXhlZC5zaApAQCAtMzQsMTQgKzM0LDE0IEBAIEVPRgogICBjb21w YXJlIGV4cCBvdXQgfHwgZmFpbD0xCiB9CiAKLXByaW50Zl9jaGVja2lfZXJyKCkgeworcHJp bnRmX2NoZWNrX2VycigpIHsKICAgY2F0IDw8RU9GID4gZXhwIHx8IGZyYW1ld29ya19mYWls dXJlXwogJDEKIEVPRgogCiAgIHNoaWZ0CiAKLSAgcmV0dXJuc18xICRwcm9nICIkQCIgMj4g b3V0IHx8IGZhaWw9MQorICByZXR1cm5zXyAxICRwcm9nICIkQCIgMj4gb3V0IHx8IGZhaWw9 MQogICBjb21wYXJlIGV4cCBvdXQgfHwgZmFpbD0xCiB9CiAKQEAgLTg1LDkgKzg1LDkgQEAg cHJpbnRmX2NoZWNrX2VyciAncHJpbnRmOiAlLTIkOiBpbnZhbGlkIGNvbnZlcnNpb24gc3Bl Y2lmaWNhdGlvbicgXAogCiAjIEVuc3VyZSBvbmx5IGJhc2UgMTAgbnVtYmVycyBhcmUgYWNj ZXB0ZWQKIHByaW50Zl9jaGVja19lcnIgInByaW50ZjogJ0EnOiBleHBlY3RlZCBhIG51bWVy aWMgdmFsdWUiIFwKLSAgICAgICAgICAgICAgICAgJyUweDIkcyAlMSRzXG4nIEEgQgorICAg ICAgICAgICAgICAgICAnJTB4MiRzICUyJHNcbicgQSBCCiAjIFZlcmlmeSBpbnQgbGltaXRz IChhdm9pZGluZyBjb21wYXJpc29ucyB3aXRoIGFyZ2MgZXRjLikKLXByaW50Zl9jaGVja19l cnIgInByaW50ZjogJSR7SU5UX09GTE9XfSQ6IGludmFsaWQgY29udmVyc2lvbiBzcGVjaWZp Y2F0aW9uIiBcCi0gICAgICAgICAgICAgICAgICIlJHtJTlRfT0ZMT1d9JGRcbiIgMQorcHJp bnRmX2NoZWNrX2VyciAicHJpbnRmOiAlJHtJTlRfT0ZMT1d9XCQ6IGludmFsaWQgY29udmVy c2lvbiBzcGVjaWZpY2F0aW9uIiBcCisgICAgICAgICAgICAgICAgICIlJHtJTlRfT0ZMT1d9 XCRkXG4iIDEKIAogRXhpdCAkZmFpbAo= --------------btrg1r2RAOoLkJIZ0qrFba0T-- From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Thu, 12 Sep 2024 19:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Collin Funk , 73068@debbugs.gnu.org Cc: bruno@clisp.org Received: via spool by 73068-submit@debbugs.gnu.org id=B73068.172616791113786 (code B ref 73068); Thu, 12 Sep 2024 19:06:02 +0000 Received: (at 73068) by debbugs.gnu.org; 12 Sep 2024 19:05:11 +0000 Received: from localhost ([127.0.0.1]:41956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sop7v-0003a7-46 for submit@debbugs.gnu.org; Thu, 12 Sep 2024 15:05:11 -0400 Received: from mail-wr1-f44.google.com ([209.85.221.44]:57623) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sop7s-0003ZP-V6 for 73068@debbugs.gnu.org; Thu, 12 Sep 2024 15:05:09 -0400 Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-374c1963cb6so939422f8f.3 for <73068@debbugs.gnu.org>; Thu, 12 Sep 2024 12:05:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726167835; x=1726772635; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=atyclwdKsOo641qxdmOVGzfhbWHJH728Aa7GCAnCk70=; b=dNtWCWMFN2gmKRZ/WWgkQQmshRL0PmndQ9aAVCMMRiLU7juVgEMSUGLwTndOJ1QNY0 0sGaX+s6Ep0bJt2sQ7SRqJoZutnFJX71lNgs96Dw2EQ5kVo3MrKknZklG7IOPsaslOuo CBKWTDUWzlmYH6Ku36mtIADfwi2iDYagbLR/ulXzkH3m2iI9sseBj4U4wHKVxcj9PuSI De+qrTN0oNWuhlsN/nBdVxB3pncQ0YMLayREvSZFDVBNKLU4LWe1lkjQ3CARSoBo7z5o /Vzhon5a5QtunfnknOoIAvWDo34iE7dE2gPusExI3kNWsMGgn//kltEeP+6vlb6sdLVW Olhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726167835; x=1726772635; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=atyclwdKsOo641qxdmOVGzfhbWHJH728Aa7GCAnCk70=; b=s/OpWdt261ghcwx67585rG96EXKjgEIlMwueXbIg/zSCL3kPsEFjFrSwYW6GaBzT0b aHfe/mqMvaAwPj+RgO6f528Wqe43hOt3u0EEQokLf1FDlmOEo2VbUhSxXw9ZP5DVbXTd wZ+e2t9TZw48EnCiR31oGfaxaJc0GTi5zZZCF1TdFsqckZEhp03m5QktQ3IywOq/XHrJ ILbUiu9MsGgtoGCnRcaI4DW+k+CoVqiACrkiYvDF84bG8Heqo9mAQwO0+RNdTBqd/W4X jsCAA/F3SDgCDlMdK38wXfy9jo/1XyK9ZFoGhHggOeWmfvCEyyG5ieOGlG/Y8jc9VdLv x+vQ== X-Forwarded-Encrypted: i=1; AJvYcCWxNFjW1XqfNEa/VOurHxGmNaG9ELqH1g1fRm+fDaFKssTGgYokCED2mPcZCgw3hY/XkRC1+w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxnYkmXm6GvBI6Gwy1thAfPwViKIfu2jFgUCdMvAXHFQ3FuWYm3 brmKk0a4rkhNEJkKK2IQjpt6OHuNtCx+my6VJPE2LtXmw5y7qkan X-Google-Smtp-Source: AGHT+IFo8V6zVJgbo46Adb389V/mC3D+VSTsZpnkWHoHsf+AI6YRRuXQW80Z7UuRoEpJ5/VYVWuFeA== X-Received: by 2002:a05:6000:542:b0:374:c0a3:fbb1 with SMTP id ffacd0b85a97d-378c2d12e01mr2281512f8f.35.1726167834553; Thu, 12 Sep 2024 12:03:54 -0700 (PDT) Received: from [192.168.1.76] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-378956653c6sm15035846f8f.32.2024.09.12.12.03.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Sep 2024 12:03:54 -0700 (PDT) Message-ID: Date: Thu, 12 Sep 2024 20:03:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> <87frq4lqhr.fsf@gmail.com> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig?= Brady In-Reply-To: <87frq4lqhr.fsf@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On 12/09/2024 18:40, Collin Funk wrote: > Hi Pádraig, > > Pádraig Brady writes: > >> I'll apply the attached sometime tomorrow. >> >> Marking this as done. > > Patch looks good, thanks. > > One small comment, though. > >> +#define GET_CURR_ARG(POS) \ >> +do { \ >> + char *arge; \ >> + intmax_t arg = POS==3 ? 0 : strtoimax (f, &arge, 10); \ >> + if (0 < arg && arg <= INT_MAX && *arge == '$') \ >> + /* Process indexed %i$ format. */ \ >> + /* Note '$' comes before any flags. */ \ > > Shouldn't you check errno here, like: > > char *arge; > errno = 0; > intmax_t arg = POS==3 ? 0 : strtoimax (f, &arge, 10); > if (errno == 0 && 0 < arg && arg <= INT_MAX && *arge == '$') > [...] > > I think that would handle all bad cases. > > For example, I think "%$" might return 0 but set errno to EINVAL. A fair point, but note we only accept 1 ... INT_MAX, so that implicitly excludes any of the possible error returns. I should at least add a comment. Though it got me thinking that strtol() may be too lenient in what it accepts, resulting in possible confusion for users. For example some printf flags like ' ' or '+' would be accepted as part of a number, when ideally they should not be. For example, the user might do: $ printf '[% 1$d]\n' 1234 [1234] When they really intended: $ printf '[%1$ d]\n' 1234 [ 1234] This is tricky enough, that we should be as restrictive as possible here, so I may resort to strspn(f, "0123456789") to parse instead. I'll think a bit about it. thanks! Pádraig From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Thu, 12 Sep 2024 19:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: =?UTF-8?Q?P=C3=A1draig?= Brady , Collin Funk , 73068@debbugs.gnu.org Cc: bruno@clisp.org Received: via spool by 73068-submit@debbugs.gnu.org id=B73068.172616960419783 (code B ref 73068); Thu, 12 Sep 2024 19:34:02 +0000 Received: (at 73068) by debbugs.gnu.org; 12 Sep 2024 19:33:24 +0000 Received: from localhost ([127.0.0.1]:41981 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sopZE-000591-9h for submit@debbugs.gnu.org; Thu, 12 Sep 2024 15:33:24 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:42848) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sopZC-00058m-Ag for 73068@debbugs.gnu.org; Thu, 12 Sep 2024 15:33:23 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 085B53C011BDD; Thu, 12 Sep 2024 12:33:08 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP id mzif-VnyhE17; Thu, 12 Sep 2024 12:33:07 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 98BF93C00FA8F; Thu, 12 Sep 2024 12:33:07 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 98BF93C00FA8F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1726169587; bh=W9w/FqbcwQJ2zYeHwQmpP5teIDMDikAYNM4jXNCDu64=; h=Message-ID:Date:MIME-Version:To:From; b=ijul2CvMUxvL0K0clErntXFDSAsPrqQXLo7I3RzGMHCBaQ9wbBbz3qsKSYZL9PsAu +IX2iD5rS5go8b6VrOoOXotWuBs/he4JvfzMQGO/aqngMIXnL3c/Haazu9g6masgDv mLaN0yURCW+j6pj2FHrR3xnhkFQt66CjZwMc5u02bvucWExjFvSz0jnbrXZlgCiJ8O ABi5TASOGnCGllVZwQl10KEqnfjR+eu6PgXlLy6fIysWoQSNc1v8TrCrCIeLkS2LOI SOGRH7fo1INDM8DBXufawACyryqohbdsWpJUQpC0uIpMOimx/FiaaSXfwHUYvrfiHR r2IPNv3DBkY0g== X-Virus-Scanned: amavis at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id 4gfJ46H6yGrR; Thu, 12 Sep 2024 12:33:07 -0700 (PDT) Received: from [192.168.254.12] (unknown [47.150.137.250]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 769D33C011BDD; Thu, 12 Sep 2024 12:33:07 -0700 (PDT) Message-ID: <8f9d4203-ad1e-42c6-81f3-e133461c59c2@cs.ucla.edu> Date: Thu, 12 Sep 2024 12:33:07 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> <87frq4lqhr.fsf@gmail.com> Content-Language: en-US From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 2024-09-12 12:03, P=C3=A1draig Brady wrote: > This is tricky enough, that we should be as restrictive as possible her= e, > so I may resort to strspn(f, "0123456789") to parse instead. > I'll think a bit about it. The code's also assuming INT_MAX < INTMAX_MAX, which POSIX doesn't=20 require. You could put in a static_assert to that effect, I suppose, to=20 document the assumption. More important, though, if you're not in the C locale all bets are off=20 as far as what strtoimax will also parse. When I ran into this problem with GNU tar, I ended by giving up on=20 strtoimax and did my own little integer parser. It does exactly what I=20 want and I don't have to fire up the strtoimax complexity+locale engine. From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Fri, 13 Sep 2024 12:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Paul Eggert , Collin Funk , 73068@debbugs.gnu.org Cc: bruno@clisp.org Received: via spool by 73068-submit@debbugs.gnu.org id=B73068.172623220616688 (code B ref 73068); Fri, 13 Sep 2024 12:57:01 +0000 Received: (at 73068) by debbugs.gnu.org; 13 Sep 2024 12:56:46 +0000 Received: from localhost ([127.0.0.1]:42689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sp5qv-0004L5-O8 for submit@debbugs.gnu.org; Fri, 13 Sep 2024 08:56:46 -0400 Received: from mail-wm1-f52.google.com ([209.85.128.52]:46111) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sp5qt-0004Kh-Ik for 73068@debbugs.gnu.org; Fri, 13 Sep 2024 08:56:44 -0400 Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-42cb1e623d1so20738085e9.0 for <73068@debbugs.gnu.org>; Fri, 13 Sep 2024 05:56:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726232129; x=1726836929; darn=debbugs.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=hQWeIGXNa2dcZHiIcTi3tRN8tIPpxhzOyzeHSmrmjOo=; b=IC/cQ4HKkfadBbKiTmW6ZB2L4ivUmIsMMx6n+KRqhjnWeKq7C1Npg1+cm8sL59CX64 wiw7sWoxFoP7bGRZheEanQh550fAlCaRBRqgfaIYCs9plGaTuEIuNqAd3qU8Om5wyc4B FD9Dsv3Buucs0pSzkwzV8JMBeaHN36vkvhAnVPy/zgYk45IpRNphu9xqomFN/wPe82UD gm7FsrY8BQJONYUuc91fmBmgl3mhnOToqjZJmspUo2W2P4xB7xnSXLxz8W4WM8guJeYA /ximAGm/qF4fe825cuxyj44lNLqybq9evEbE+j+bkz6POrb1WBt0ZQeQ0662cUAU/uTp vO7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726232129; x=1726836929; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hQWeIGXNa2dcZHiIcTi3tRN8tIPpxhzOyzeHSmrmjOo=; b=WUElC9tbuzU0wfP0o3vwUfBGuD0JWoBPRfhzttcWvzUJ1nN416wuQRljozoWf3Nas2 ztCthzop4Glska0ORmR7X8F46zNn/pyi+JLw9NUvBA2NhmOcRvXfAgRL9/ydrBgoRqCA mEuwvHKfCxn10nKgGftq14/3Tsc1sd7jBaSZy+r6pYBOVjrAhNFKg7dCgJLa4gNnKnC3 tuD8YRymvnIIpflu9nq5zsgdT/TuzXzP4ffboA7NwBkU9fjPCoPflV4udjEILxe1iIV9 AdjxtZ6baZ8Y0JMuuf/FAr8OzNkv6t9CDFwqzJmEwIKpB6/rIu+l+xu8AQR7xvSWdCXm Hsbg== X-Forwarded-Encrypted: i=1; AJvYcCU3v53l+v1fSAlnBvVY1k+T8PHXshNrGZ9bU1uqar3phaUP1EFhZr6bchLKKdCh2KzrKz6yjA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzKwCgHZAQyrXrLOqfbAjqs8Njd/PHy4pdQYKznep39oQ0+B60G MgtvmlNN4wOx0kyJ/POtfY/cebkDMLQToupSCcQYiACvIqiSSQoK X-Google-Smtp-Source: AGHT+IGkrvVp9OPOfZVGNA7n2NmF7R0zs0UDqIqcoTcpnpAg4bstoHAZOZDg2tNJYEO21+iDrHGTlQ== X-Received: by 2002:a05:600c:1d28:b0:42c:ba1f:543e with SMTP id 5b1f17b1804b1-42cdb56caa4mr52291395e9.26.1726232128147; Fri, 13 Sep 2024 05:55:28 -0700 (PDT) Received: from [192.168.1.76] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-378956d35b9sm16917775f8f.70.2024.09.13.05.55.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 13 Sep 2024 05:55:27 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------B4oXpnS00qN24TypISkXo4yt" Message-ID: <1a3703d9-6bfb-4f66-9b2b-576203045ebc@draigBrady.com> Date: Fri, 13 Sep 2024 13:55:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> <87frq4lqhr.fsf@gmail.com> <8f9d4203-ad1e-42c6-81f3-e133461c59c2@cs.ucla.edu> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig?= Brady In-Reply-To: <8f9d4203-ad1e-42c6-81f3-e133461c59c2@cs.ucla.edu> X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) This is a multi-part message in MIME format. --------------B4oXpnS00qN24TypISkXo4yt Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12/09/2024 20:33, Paul Eggert wrote: > On 2024-09-12 12:03, Pádraig Brady wrote: > > >> This is tricky enough, that we should be as restrictive as possible here, >> so I may resort to strspn(f, "0123456789") to parse instead. >> I'll think a bit about it. > > The code's also assuming INT_MAX < INTMAX_MAX, which POSIX doesn't > require. You could put in a static_assert to that effect, I suppose, to > document the assumption. Indeed. We would have incorrectly taken the INTMAX_MAX arg in the (albeit unlikely) case where INT_MAX >= INTMAX_MAX, and the provided number overflowed INTMAX_MAX. To be explicit, strtol() doesn't return 0 in that case, so we need to check overflow (like Colin suggested). > More important, though, if you're not in the C locale all bets are off > as far as what strtoimax will also parse. > > When I ran into this problem with GNU tar, I ended by giving up on > strtoimax and did my own little integer parser. It does exactly what I > want and I don't have to fire up the strtoimax complexity+locale engine. Right, it's best to preparse for the above reason, and to avoid any confusion re leading spaces etc. like I previously mentioned. The attached adjustment does the preparse with strspn(), and only does the strtoimax() for appropriate strings. cheers, Pádraig --------------B4oXpnS00qN24TypISkXo4yt Content-Type: text/x-patch; charset=UTF-8; name="printf-indexed-adj2.diff" Content-Disposition: attachment; filename="printf-indexed-adj2.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9wcmludGYuYyBiL3NyYy9wcmludGYuYwppbmRleCAzNzg0NGYx NGEuLjQ0MjkzNTcwNSAxMDA2NDQKLS0tIGEvc3JjL3ByaW50Zi5jCisrKyBiL3NyYy9wcmlu dGYuYwpAQCAtNDU0LDE0ICs0NTQsMjMgQEAgcHJpbnRfZm9ybWF0dGVkIChjaGFyIGNvbnN0 ICpmb3JtYXQsIGludCBhcmdjLCBjaGFyICoqYXJndikKIAogI2RlZmluZSBHRVRfQ1VSUl9B UkcoUE9TKQkJCQlcCiBkbyB7CQkJCQkJCVwKLSAgY2hhciAqYXJnZTsJCQkJCQlcCi0gIGlu dG1heF90IGFyZyA9IFBPUz09MyA/IDAgOiBzdHJ0b2ltYXggKGYsICZhcmdlLCAxMCk7CVwK LSAgaWYgKDAgPCBhcmcgJiYgYXJnIDw9IElOVF9NQVggJiYgKmFyZ2UgPT0gJyQnKQlcCisg IGludG1heF90IGFyZyA9IDA7CQkJCQlcCisgIHNpemVfdCBhcmdsOwkJCQkJCVwKKyAgLyog Q2hlY2sgd2l0aCBzdHJzcG4oKSBmaXJzdCB0byBhdm9pZCBzcGFjZXMgZXRjLglcCisgICAg IFRoaXMgYWxzbyBhdm9pZHMgYW55IGxvY2FsZSBhbWJpZ3VpdGllcy4gICovCVwKKyAgaWYg KFBPUyAhPSAzICYmIChhcmdsID0gc3Ryc3BuIChmLCAiMDEyMzQ1Njc4OSIpKQlcCisgICAg ICAmJiBmW2FyZ2xdID09ICckJykJCQkJXAorICAgIHsJCQkJCQkJXAorICAgICAgZXJybm8g PSAwOwkJCQkJXAorICAgICAgYXJnID0gc3RydG9pbWF4IChmLCBOVUxMLCAxMCk7CQkJXAor ICAgICAgaWYgKGVycm5vKQkJCQkJXAorICAgICAgICBhcmcgPSAwOwkJCQkJXAorICAgIH0J CQkJCQkJXAorICBpZiAoMSA8PSBhcmcgJiYgYXJnIDw9IElOVF9NQVgpCQkJXAogICAgIC8q IFByb2Nlc3MgaW5kZXhlZCAlaSQgZm9ybWF0LiAgKi8JCQlcCi0gICAgLyogTm90ZSAnJCcg Y29tZXMgYmVmb3JlIGFueSBmbGFncy4gICovCQlcCiAgICAgewkJCQkJCQlcCiAgICAgICBT RVRfQ1VSUl9BUkcgKGFyZyAtIDEpOwkJCQlcCi0gICAgICBmID0gYXJnZSArIDE7CQkJCQlc CisgICAgICBmICs9IGFyZ2wgKyAxOwkJCQkJXAogICAgICAgaWYgKFBPUyA9PSAwKQkJCQkJ XAogICAgICAgICBkaXJlY19hcmcgPSBhcmcgLSAxOwkJCQlcCiAgICAgfQkJCQkJCQlcCmRp ZmYgLS1naXQgYS90ZXN0cy9wcmludGYvcHJpbnRmLWluZGV4ZWQuc2ggYi90ZXN0cy9wcmlu dGYvcHJpbnRmLWluZGV4ZWQuc2gKaW5kZXggZDBmNzk5YWIxLi41ZDYzZDY4ZjggMTAwNzU1 Ci0tLSBhL3Rlc3RzL3ByaW50Zi9wcmludGYtaW5kZXhlZC5zaAorKysgYi90ZXN0cy9wcmlu dGYvcHJpbnRmLWluZGV4ZWQuc2gKQEAgLTc1LDE5ICs3NSwyOCBAQCBwcmludGZfY2hlY2sg JyAgIDEnICclMiQqMSRkXG4nIDQgMQogIyBJbmRleGVkIGFyZywgYW5kIHNlcXVlbnRpYWwg d2lkdGgKIHByaW50Zl9jaGVjayAnICAgMScgJyUyJCpkXG4nIDQgMQogCi0jIEZsYWdzIGNv bWUgYWZ0ZXIgJCAoMCBpcyBub3QgYSBmbGFnIGhlcmUpOgorIyBGbGFncyBjb21lIGFmdGVy ICQgKDAgaXMgbm90IGEgZmxhZyBoZXJlIGJ1dCBhbGxvd2VkKToKIHByaW50Zl9jaGVjayAn ICAgMScgJyUwMSQ0ZFxuJyAxCiAjIEZsYWdzIGNvbWUgYWZ0ZXIgJCAoMCBpcyBhIGZsYWcg aGVyZSk6CiBwcmludGZfY2hlY2sgJzAwMDEnICclMSQwKjIkZFxuJyAxIDQKICMgRmxhZ3Mg Y29tZSBhZnRlciAkICgtMiBub3QgdGFrZW4gYXMgYSB2YWxpZCBpbmRleCBoZXJlKToKIHBy aW50Zl9jaGVja19lcnIgJ3ByaW50ZjogJS0yJDogaW52YWxpZCBjb252ZXJzaW9uIHNwZWNp ZmljYXRpb24nIFwKICAgICAgICAgICAgICAgICAgJyUtMiRzICUxJHNcbicgQSBCCisjIEZs YWdzIGNvbWUgYWZ0ZXIgJCAoJyAnIGlzIG5vdCBhbGxvd2VkIGFzIHBhcnQgb2YgbnVtYmVy IGhlcmUpCitwcmludGZfY2hlY2tfZXJyICdwcmludGY6ICUgMiQ6IGludmFsaWQgY29udmVy c2lvbiBzcGVjaWZpY2F0aW9uJyBcCisgICAgICAgICAgICAgICAgICclIDIkcyAlMSRzXG4n IEEgQgogCiAjIEVuc3VyZSBvbmx5IGJhc2UgMTAgbnVtYmVycyBhcmUgYWNjZXB0ZWQKIHBy aW50Zl9jaGVja19lcnIgInByaW50ZjogJ0EnOiBleHBlY3RlZCBhIG51bWVyaWMgdmFsdWUi IFwKICAgICAgICAgICAgICAgICAgJyUweDIkcyAlMiRzXG4nIEEgQgorIyBFbnN1cmUgZW1w dHkgbnVtYmVycyBhcmUgcmVqZWN0ZWQKK3ByaW50Zl9jaGVja19lcnIgJ3ByaW50ZjogJSQ6 IGludmFsaWQgY29udmVyc2lvbiBzcGVjaWZpY2F0aW9uJyBcCisgICAgICAgICAgICAgICAg ICclJGRcbicgMQogIyBWZXJpZnkgaW50IGxpbWl0cyAoYXZvaWRpbmcgY29tcGFyaXNvbnMg d2l0aCBhcmdjIGV0Yy4pCiBwcmludGZfY2hlY2tfZXJyICJwcmludGY6ICUke0lOVF9PRkxP V31cJDogaW52YWxpZCBjb252ZXJzaW9uIHNwZWNpZmljYXRpb24iIFwKICAgICAgICAgICAg ICAgICAgIiUke0lOVF9PRkxPV31cJGRcbiIgMQorIyBWZXJpZnkgaW50bWF4IGxpbWl0cywg ZW5zdXJpbmcgb3ZlcmZsb3cgZGV0ZWN0ZWQKK3ByaW50Zl9jaGVja19lcnIgInByaW50Zjog JSR7SU5UTUFYX09GTE9XfVwkOiBpbnZhbGlkIGNvbnZlcnNpb24gc3BlY2lmaWNhdGlvbiIg XAorICAgICAgICAgICAgICAgICAiJSR7SU5UTUFYX09GTE9XfVwkZFxuIiAxCiAKIEV4aXQg JGZhaWwK --------------B4oXpnS00qN24TypISkXo4yt-- From unknown Sat Jun 21 05:15:32 2025 X-Loop: help-debbugs@gnu.org Subject: bug#73068: printf: please implement POSIX:2024 argument reordering Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Fri, 13 Sep 2024 16:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73068 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Paul Eggert , Collin Funk , 73068@debbugs.gnu.org Cc: bruno@clisp.org Received: via spool by 73068-submit@debbugs.gnu.org id=B73068.17262452416478 (code B ref 73068); Fri, 13 Sep 2024 16:34:02 +0000 Received: (at 73068) by debbugs.gnu.org; 13 Sep 2024 16:34:01 +0000 Received: from localhost ([127.0.0.1]:44164 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sp9FB-0001gQ-8U for submit@debbugs.gnu.org; Fri, 13 Sep 2024 12:34:01 -0400 Received: from mail-wm1-f44.google.com ([209.85.128.44]:55526) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sp9F8-0001gA-L2 for 73068@debbugs.gnu.org; Fri, 13 Sep 2024 12:33:59 -0400 Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-42cbc22e1c4so10250315e9.2 for <73068@debbugs.gnu.org>; Fri, 13 Sep 2024 09:33:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726245163; x=1726849963; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:sender :from:to:cc:subject:date:message-id:reply-to; bh=wfu0qmxyr+Bj9QDwGaOC+qRAAj6XaXy2Wa5O3cWBrF8=; b=T2m5aQWChJb41xsy6lq+euHA3GDTsdbi4x0Vkkd5abxTBnGEK9AibK3m4mCeJzycTC 2MTrr78FVYezcrNCfoXQLR1sI7eHoi8EruYln0C8OjoDyr+lyP3EwMDzrnTTPLWjsGTQ taqG4nKhkmRNLXwgTwGOVx+qJXqo326g/2jYe0wr8/Ry2j2rvZFiuOI2D9Hn/7yFlb77 F4w7Aby39/BvCqPAnrrSwVehSToUoh+pFE+RRmljgZzwXPJFrczRHCk8Y6ilguSrgZ5w AUM/XstfkGRqRja5mX8xzijnUoLVr+ni4N5rfHmHVR6gEIoF3m5rs3+1ZA0VkQ0Th74G krXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726245163; x=1726849963; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:sender :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wfu0qmxyr+Bj9QDwGaOC+qRAAj6XaXy2Wa5O3cWBrF8=; b=kxnem8SWv+/bC570iPbMYAANlqkcSYQylh1y39aKuzIExLM30adgLUFX8kHwsPC5Yr q7Q9UAWXURDFueCkYSsfbycnLYq/w+FZnNeGGj3n9IA53rPHqPxs4SliRO2DBQJYk1F9 sLnXllUcS+QnYVUngICuNqzkYJLxnQH37u6osXLMN5SOYCiUjstLU2Ahnx0PAhA9ePa2 pJNbz5TMsam0n6Q/CHhwQ9vt2Qbr0g1XceBNNzxOUQezdLzrMAAzlzBH7Uq133fFS5j+ UATJdKw2MB5/3j9EBvawMD3wlfTgKzKTI5iZaQ0NQWWV2E9VLKV0z5Q0RU53GAh3tLsQ oTkg== X-Forwarded-Encrypted: i=1; AJvYcCVWFGwl76tyVs7Kg27sUAQ1n2rkNNuPQ8jY8n2hJU4HMW3WSBjHSp6kUvZ6e4xUOUTSMrw8Zg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzrNuJ51U0f0NvjM36sNUzbg42W5b/eANBSzFrpz0SDxyKyGcqx cAWAkKfAJWuQbD18r2/R6+uefFrGriLEFUrkv8QTiyJa4VBvOnX/ X-Google-Smtp-Source: AGHT+IETH+VETtE7JpyGky4JYTU6Mp1lY93GOMaXLjbMpeI50EnrHCiKPikPQPFYV0fdQ1CpqERg/A== X-Received: by 2002:a05:600c:1ca8:b0:425:80d5:b8b2 with SMTP id 5b1f17b1804b1-42d9082a676mr32384425e9.16.1726245163063; Fri, 13 Sep 2024 09:32:43 -0700 (PDT) Received: from [192.168.1.76] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-42d9b05d5dbsm31946815e9.13.2024.09.13.09.32.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 13 Sep 2024 09:32:42 -0700 (PDT) Message-ID: <810365b2-abd7-467e-be46-13831d3d3458@draigBrady.com> Date: Fri, 13 Sep 2024 17:32:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta From: =?UTF-8?Q?P=C3=A1draig?= Brady References: <2220600.3uDm00564X@nimes> <4856ebd5-c283-4e83-b59d-b7cf17d0c147@draigBrady.com> <87frq4lqhr.fsf@gmail.com> <8f9d4203-ad1e-42c6-81f3-e133461c59c2@cs.ucla.edu> <1a3703d9-6bfb-4f66-9b2b-576203045ebc@draigBrady.com> Content-Language: en-US In-Reply-To: <1a3703d9-6bfb-4f66-9b2b-576203045ebc@draigBrady.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On 13/09/2024 13:55, Pádraig Brady wrote: > On 12/09/2024 20:33, Paul Eggert wrote: >> On 2024-09-12 12:03, Pádraig Brady wrote: >> >> >>> This is tricky enough, that we should be as restrictive as possible here, >>> so I may resort to strspn(f, "0123456789") to parse instead. >>> I'll think a bit about it. >> >> The code's also assuming INT_MAX < INTMAX_MAX, which POSIX doesn't >> require. You could put in a static_assert to that effect, I suppose, to >> document the assumption. > > Indeed. We would have incorrectly taken the INTMAX_MAX arg in the > (albeit unlikely) case where INT_MAX >= INTMAX_MAX, > and the provided number overflowed INTMAX_MAX. > To be explicit, strtol() doesn't return 0 in that case, > so we need to check overflow (like Colin suggested). > >> More important, though, if you're not in the C locale all bets are off >> as far as what strtoimax will also parse. >> >> When I ran into this problem with GNU tar, I ended by giving up on >> strtoimax and did my own little integer parser. It does exactly what I >> want and I don't have to fire up the strtoimax complexity+locale engine. > > Right, it's best to preparse for the above reason, > and to avoid any confusion re leading spaces etc. like I previously mentioned. > > The attached adjustment does the preparse with strspn(), > and only does the strtoimax() for appropriate strings. I adjusted and pushed a further simplification that clamps %$ to %INT_MAX$, which is equivalent as argc can practically only be <= INT_MAX - 2. That simplifies the strtoimax() error handling, and removes any limits on valid decimal numbers. cheers, Pádraig