From unknown Mon Jun 23 07:45:49 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#48960 <48960@debbugs.gnu.org> To: bug#48960 <48960@debbugs.gnu.org> Subject: Status: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit Reply-To: bug#48960 <48960@debbugs.gnu.org> Date: Mon, 23 Jun 2025 14:45:49 +0000 retitle 48960 stat v8.30 - device number in decimal shown as 16bit number i= nstead of to converted 8bit reassign 48960 coreutils submitter 48960 wolfgang.rohm@arcor.de severity 48960 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 11 10:57:18 2021 Received: (at submit) by debbugs.gnu.org; 11 Jun 2021 14:57:18 +0000 Received: from localhost ([127.0.0.1]:39802 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lriaz-0000R3-3r for submit@debbugs.gnu.org; Fri, 11 Jun 2021 10:57:18 -0400 Received: from lists.gnu.org ([209.51.188.17]:42500) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrbjy-0001Zw-5P for submit@debbugs.gnu.org; Fri, 11 Jun 2021 03:38:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52604) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrbjx-0005lm-L1 for bug-coreutils@gnu.org; Fri, 11 Jun 2021 03:38:05 -0400 Received: from smtpout2.vodafonemail.de ([145.253.239.133]:47238) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrbju-0001zp-Br for bug-coreutils@gnu.org; Fri, 11 Jun 2021 03:38:05 -0400 Received: from smtp.vodafone.de (smtpa05.fra-mediabeam.com [10.2.0.36]) by smtpout2.vodafonemail.de (Postfix) with ESMTP id 0351212172E for ; Fri, 11 Jun 2021 09:37:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arcor.de; s=vfde-smtpout-mb-15sep; t=1623397076; bh=Ktc9aCYTJQ2M2LV2oZnqcTK3Hthr9gOYj1O2iL9vtyc=; h=To:Reply-To:From:Subject:Date; b=CX4I3gOX2TFx9AsgT+oa6uY1sxWMzJg+0fVshyAlr8jTD8gBgwaYFLhmbWYwuV9Bl Eif8pa6CNwFG0ryYgh3Qd7FhoFHtOBz8kpOyFpXeTmnA9/I8MwW/LTH9swss3o+jcQ WylSqtZD/HLU23QcOd5257RCKvFFiFfx+QEExj+A= Received: from [192.168.1.10] (i5E869964.versanet.de [94.134.153.100]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp.vodafone.de (Postfix) with ESMTPSA id 95EAF140179 for ; Fri, 11 Jun 2021 07:37:55 +0000 (UTC) To: bug-coreutils@gnu.org From: Wolfgang Rohm Subject: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit Organization: Privat Message-ID: Date: Fri, 11 Jun 2021 09:37:54 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="------------5BC0EB01E242CAF75C588A90" Content-Language: de-DE X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 3429 X-purgate-ID: 155817::1623397075-00000827-BAC57673/0/0 Received-SPF: pass client-ip=145.253.239.133; envelope-from=wolfgang.rohm@arcor.de; helo=smtpout2.vodafonemail.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, FREEMAIL_FROM=0.001, GB_FREEMAIL_DISPTO=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 11 Jun 2021 10:57:11 -0400 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: , Reply-To: wolfgang.rohm@arcor.de Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------5BC0EB01E242CAF75C588A90 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Hello. Stat prints the device number, major and minor, in hex and decimal. They are both 8bit numbers clamped together. While the hex number is perfectly fine, the decimal doesn't respect how this number has come to existence. There is no meaning in the decimal value, if the the hex value is taken as one 16bit number and then converted. For example "fd00h" is converted to "64768d". There is no major device with 647 and no minor device with 768. Its just completely wrong. So instead of converting fd00h to 64768d, both 8bit hex numbers must be converted each, meaning alone. The right number would be therefore 253000, major 253 and minor 0. While the hex number needs two digits each (the first 0 can be ommited), the decimal needs three digits each (the first and second 0 can be omitted). |stat (GNU coreutils) 8.30 Copyright © 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Geschrieben von Michael Meskes. | -- Mit freundlichen Grüßen Wolfgang Rohm --------------5BC0EB01E242CAF75C588A90 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit

Hello.

Stat prints the device number, major and minor, in hex and decimal. They are both 8bit numbers clamped together. While the hex number is perfectly fine, the decimal doesn't respect how this number has come to existence. There is no meaning in the decimal value, if the the hex value is taken as one 16bit number and then converted.

For example "fd00h" is converted to "64768d". There is no major device with 647 and no minor device with 768. Its just completely wrong.

So instead of converting fd00h to 64768d, both 8bit hex numbers must be converted each, meaning alone. The right number would be therefore 253000, major 253 and minor 0. While the hex number needs two digits each (the first 0 can be ommited), the decimal needs three digits each (the first and second 0 can be omitted).

stat (GNU coreutils) 8.30
Copyright © 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geschrieben von Michael Meskes.

-- 
Mit freundlichen Grüßen
Wolfgang Rohm
--------------5BC0EB01E242CAF75C588A90-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 11 13:11:25 2021 Received: (at 48960) by debbugs.gnu.org; 11 Jun 2021 17:11:25 +0000 Received: from localhost ([127.0.0.1]:39867 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrkgn-00084M-6S for submit@debbugs.gnu.org; Fri, 11 Jun 2021 13:11:25 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:51090) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrkgl-000847-39 for 48960@debbugs.gnu.org; Fri, 11 Jun 2021 13:11:24 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id A10AA16010D; Fri, 11 Jun 2021 10:11:16 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id m3SiWabHtX4R; Fri, 11 Jun 2021 10:11:16 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id ECFD9160117; Fri, 11 Jun 2021 10:11:15 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id LYyJtN6b7ntP; Fri, 11 Jun 2021 10:11:15 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id CABCA16010D; Fri, 11 Jun 2021 10:11:15 -0700 (PDT) To: wolfgang.rohm@arcor.de, 48960@debbugs.gnu.org References: From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#48960: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit Message-ID: <8cc78813-1765-73b7-666e-9832741232a7@cs.ucla.edu> Date: Fri, 11 Jun 2021 10:11:15 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48960 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 (---) The stat output is confusing in other ways. For example: 507-day $ ls -ld .; stat . | grep Device drwxr-xr-x 4 eggert eggert 12288 May 5 14:48 . Device: 10300h/66304d Inode: 70388429 Links: 4 508-day $ ls -ld /dev/ptp0; stat /dev/ptp0 | grep Device crw------- 1 root root 246, 0 Jun 3 13:09 /dev/ptp0 Device: 5h/5d Inode: 321 Links: 1 Device type: f6,0 As you write, that "66304d" is useless on my platform, and the "5h/5d"=20 uses a completely different notation from the "f6,0". I suggest that we change the behavior of both "Device:" and "Device=20 type:" to be consistent with that of 'ls', so that the output becomes: 507-day $ ls -ld .; stat . | grep Device drwxr-xr-x 4 eggert eggert 12288 May 5 14:48 . Device: 259, 0 Inode: 70388429 Links: 4 508-day $ ls -ld /dev/ptp0; stat /dev/ptp0 | grep Device crw------- 1 root root 246, 0 Jun 3 13:09 /dev/ptp0 Device: 0, 5 Inode: 321 Links: 1 Device type: 246, 0 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 11 14:22:45 2021 Received: (at 48960) by debbugs.gnu.org; 11 Jun 2021 18:22:45 +0000 Received: from localhost ([127.0.0.1]:39938 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrlnp-0003hQ-13 for submit@debbugs.gnu.org; Fri, 11 Jun 2021 14:22:45 -0400 Received: from ishtar.tlinx.org ([173.164.175.65]:33174 helo=Ishtar.sc.tlinx.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lrlnn-0003hG-7M for 48960@debbugs.gnu.org; Fri, 11 Jun 2021 14:22:43 -0400 Received: from [192.168.3.12] (Athenae [192.168.3.12]) by Ishtar.sc.tlinx.org (8.14.7/8.14.4/SuSE Linux 0.8) with ESMTP id 15BIMCWC009421; Fri, 11 Jun 2021 11:22:14 -0700 Message-ID: <60C3A990.3020904@tlinx.org> Date: Fri, 11 Jun 2021 11:21:04 -0700 From: L A Walsh User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) MIME-Version: 1.0 To: Wolfgang Rohm Subject: Re: bug#48960: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 48960 Cc: 48960@debbugs.gnu.org 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 2021/06/11 00:37, Wolfgang Rohm wrote: > Hello. > > Stat prints the device number, major and minor, in hex and decimal. > They are both 8bit numbers clamped together. While the hex number is > perfectly fine, the decimal doesn't respect how this number has come > to existence. There is no meaning in the decimal value, if the the hex > value is taken as one 16bit number and then converted. > > For example "fd00h" is converted to "64768d". There is no major device > with 647 and no minor device with 768. Its just completely wrong. --- Aside from complete bogus output on my system for either hex or decimal and the "seemingly" undocumented appearance of 'd' to convert a 16-bit decimal value back to 2 8-bit values divide the number by 256 or shift the value right by 8 bits for the high number and either mod the number with 256 or 'and' (&) the value with 0xff: decimal_devno=64768 #(dropping the 'd' on the end) high=$(($decimal_devno/256)) low=$(($decimal_devno%256)) printf "%s:%s\n" "$high" "$low" (output:) 253:0 or via shifts+masks decimal_devno=64768 high=$((decimal_devno>>8)) low=$((decimal_devno & 0xff)) printf "%s:%s\n" "$high" "$low" (output:) 253:0 From debbugs-submit-bounces@debbugs.gnu.org Sat Jun 12 11:19:38 2021 Received: (at 48960) by debbugs.gnu.org; 12 Jun 2021 15:19:38 +0000 Received: from localhost ([127.0.0.1]:41936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ls5QA-0005gW-7Z for submit@debbugs.gnu.org; Sat, 12 Jun 2021 11:19:38 -0400 Received: from mail-wr1-f50.google.com ([209.85.221.50]:38428) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ls5Q8-0005gJ-QR for 48960@debbugs.gnu.org; Sat, 12 Jun 2021 11:19:37 -0400 Received: by mail-wr1-f50.google.com with SMTP id c9so9222316wrt.5 for <48960@debbugs.gnu.org>; Sat, 12 Jun 2021 08:19:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=aOA7rhvfKsSGgsL3s3fG9EvUuQHiZznt10XC0J639Jg=; b=UkS+sb+7Yb0sEj7nOmtbZChvo1EmMeAXkftLfHUo0X2GMcf1dGTxDHEXV+bCCmVQ7y zNyGbZiyuZQMV/BoxmBjEt94PbLU1w8HAOQHjbDy84WTgvAFs4YIzZYnZzesRe5b08eT ueHjfTTCRjMKeLG8OBUYjezKX3R9xsy29KQ9PHDPH1FNO0UJbsVcJoHUZ50b2toweDH5 pvh+eGpW10oa9InSskTlXaKsBsfuNJuwjBBgXA5zzTT/GMZayEvrhj6gkuMfbIk6IJZT JiqsbDVB2x+yY3gJgwuyUT1r8J8y2teZj2iASHe6xZ6uNwktevqgtIgCPQy5NUJgYiDG WiMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=aOA7rhvfKsSGgsL3s3fG9EvUuQHiZznt10XC0J639Jg=; b=jaIw4lqRhqjdZLML49uxJFNjWWVSl/RGPtgYNK5y/j7CQTrGwTC6Ngm7hr6YkJW54m xrFRp9Buz9lOUV7E8rsaU6pMnT+XC79RKFTK/O0yOoJpRKtKf+td0nF7NFL2rw8FXplL 5uUnJXwAqPRzF1m4DGNNYsH8xIJapahz5muxwKXBLjaNTELxEyrl0h2PTSphblPaunTt 33VQ/iLKsgmQean7htLweHtwDQTpRyOSOm1oMBPqIeIRJq6YnQSgxqe565PGLvM57Lfn aUhow7CfP8dSWE4MXRn+orTTOkyQpAogOvnlyoAXe3yIj2RMlOCD0eT/DrF09h80fqgf jmCg== X-Gm-Message-State: AOAM533PhJ9tunzJ0Ja+7xgPENluvGycCrZuIFJbEHHtmtnxyZNJl030 3VPBGSHhKoRDSTZMlLIDR3CfoIoqDHtA7g== X-Google-Smtp-Source: ABdhPJz9oGKyVQ3/klm+LUTFLzeQqSY49vM8GKscbrmQxswGOJqIjZ6kdVO0MWIGUtxZ9beZHO6nXg== X-Received: by 2002:a5d:60c8:: with SMTP id x8mr9992891wrt.382.1623511170797; Sat, 12 Jun 2021 08:19:30 -0700 (PDT) Received: from localhost.localdomain (86-42-14-227-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.42.14.227]) by smtp.googlemail.com with UTF8SMTPSA id b62sm8975803wmh.47.2021.06.12.08.19.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 12 Jun 2021 08:19:30 -0700 (PDT) Subject: Re: bug#48960: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit To: Paul Eggert , wolfgang.rohm@arcor.de, 48960@debbugs.gnu.org References: <8cc78813-1765-73b7-666e-9832741232a7@cs.ucla.edu> From: =?UTF-8?Q?P=c3=a1draig_Brady?= Message-ID: <0d8f1e49-9df3-376d-b21f-103cfe4cbe16@draigBrady.com> Date: Sat, 12 Jun 2021 16:19:28 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Thunderbird/84.0 MIME-Version: 1.0 In-Reply-To: <8cc78813-1765-73b7-666e-9832741232a7@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 48960 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.5 (/) On 11/06/2021 18:11, Paul Eggert wrote: > The stat output is confusing in other ways. For example: > > 507-day $ ls -ld .; stat . | grep Device > drwxr-xr-x 4 eggert eggert 12288 May 5 14:48 . > Device: 10300h/66304d Inode: 70388429 Links: 4 > 508-day $ ls -ld /dev/ptp0; stat /dev/ptp0 | grep Device > crw------- 1 root root 246, 0 Jun 3 13:09 /dev/ptp0 > Device: 5h/5d Inode: 321 Links: 1 Device type: f6,0 > > As you write, that "66304d" is useless on my platform, and the "5h/5d" > uses a completely different notation from the "f6,0". > > I suggest that we change the behavior of both "Device:" and "Device > type:" to be consistent with that of 'ls', so that the output becomes: > > 507-day $ ls -ld .; stat . | grep Device > drwxr-xr-x 4 eggert eggert 12288 May 5 14:48 . > Device: 259, 0 Inode: 70388429 Links: 4 > 508-day $ ls -ld /dev/ptp0; stat /dev/ptp0 | grep Device > crw------- 1 root root 246, 0 Jun 3 13:09 /dev/ptp0 > Device: 0, 5 Inode: 321 Links: 1 Device type: 246, 0 Yes I agree with this. I.e. it's most useful to present decomposed decimal IDs. What we have now in format specifiers is also inconsistent/incomplete: %d (composed) device number in decimal (st_dev) %D (composed) device number in hex (st_dev) %t major device type in hex, for device special files (st_rdev) %T minor device type in hex, for device special files (st_rdev) I.e. no decomposed st_dev, or no decimal st_rdev. I think it's more important to provide decomposed numbers, rather than hex representations (especially decomposed hex). It's probably best not to change any of the above format specifiers though for compat reasons. %d while not that useful in isolation, may be used to distinguish files or devices, which might be persisted in manifests etc. We could take the FreeBSD approach which is: %Hd major device number in decimal (st_dev) %Ld minor device number in decimal (st_dev) %Hr major device type in decimal (st_rdev) %Lr minor device type in decimal (st_rdev) Note I'd be inclined to not have a space between major,minor in default stat output, as there should be no ambiguity with locale formatted numbers, which could be the case with ls. For example, my ls alias uses thousands grouping with: alias ls="BLOCK_SIZE=\'1 ls --color=auto". I.e. the default format would from stat would be Device: %Hd,%Ld ..... Device type: %Hr,%Lr For consistency if we provided the above we should also probably provide: %r (composed) device type in decimal (st_rdev) %R (composed) device type in hex (st_rdev) cheers, Pádraig From debbugs-submit-bounces@debbugs.gnu.org Sun Jun 20 10:22:06 2021 Received: (at 48960) by debbugs.gnu.org; 20 Jun 2021 14:22:06 +0000 Received: from localhost ([127.0.0.1]:34760 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1luyKr-0005mB-E3 for submit@debbugs.gnu.org; Sun, 20 Jun 2021 10:22:05 -0400 Received: from mail-wm1-f49.google.com ([209.85.128.49]:56059) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1luyKp-0005ld-5Z for 48960@debbugs.gnu.org; Sun, 20 Jun 2021 10:22:04 -0400 Received: by mail-wm1-f49.google.com with SMTP id c84so8678352wme.5 for <48960@debbugs.gnu.org>; Sun, 20 Jun 2021 07:22:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:from:to:references:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=3SozXta0vuUkSzvW9TaJYPj88RTsTzaVWM94ZiG4D9c=; b=LmB0a4lyx9F+7ucrshNwehxnnQse+9HmMzlPVTU45RIiIblqS8FsZR6GRyGx99vtTe 5v2v3HVi/P9OG9JhXI2FZfdcYa42QKWl/1S8PFNHW7eA5AECh4YmEa/iQuAbgHIjXmpu L94a5qNZ1PBCelXxXnzammHF425lPfLVMkwemnuykAm74VpgYNSWkvoXotdMAjhEX9zr vuk9TFeD0x7Su442O1w9Bx5RQltNM/6sCsRAOtdSanuQULLDLfugqa1Otvyroq9ozECQ 2vJ9mSsP1+xUC95gZcITDxvdst6aDbi9Mb7hPQiXheKipEKT6PrY9RJh6d8TrfMSDvMR QRPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:from:to:references:message-id :date:user-agent:mime-version:in-reply-to:content-language; bh=3SozXta0vuUkSzvW9TaJYPj88RTsTzaVWM94ZiG4D9c=; b=oTZfem8vcM7pGh2GNOsNh2fXvyZ7HyX3L4YDsF5dAiOzW28O6FbGhN5WYtaUQ+xuhD jT3QAVRIcDA1myU9pCYaR7IF4l0eWHwuzV9QI6ZPVV0lTmqmqr30CWcwxBfyQQSFBpM5 f7uJhEAVZ4lKGv3yLa3UA++7pX2hTy+9M9hHOyZmyOP4F5HJCWq+H43sZDhuUjF0T/DD 7w9jX1f7ZeD60b5dcpOt38sWcqPzUdNdEeU0M52eSIE90lF+RUqQv42sYCKBHRP9NZVo o4Tzi3cQ8bqf3KIhLklFjOk6g6vDyIbRdbcnGfTmC+4D3yNJNtuE6QAqVmh2G9MA2Cey c7pg== X-Gm-Message-State: AOAM532dWfVHINSdil9k3e1w8oMfZWU4GTjtHT1u+3yRYPOMKPC8OXsM xJtqL4ppzWsf7+jW7tBqkf8aTGraASs= X-Google-Smtp-Source: ABdhPJwqGqdxlgx9yJRkwVALhXphV7BnnOOAQO+YWodFX489Y79chZ6U1SzHAk2VkPLmik+irKe6Pg== X-Received: by 2002:a05:600c:3b1e:: with SMTP id m30mr7293745wms.24.1624198917018; Sun, 20 Jun 2021 07:21:57 -0700 (PDT) Received: from localhost.localdomain (86-42-15-3-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.42.15.3]) by smtp.googlemail.com with UTF8SMTPSA id v1sm5270646wru.61.2021.06.20.07.21.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 20 Jun 2021 07:21:56 -0700 (PDT) Subject: Re: bug#48960: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit From: =?UTF-8?Q?P=c3=a1draig_Brady?= To: Paul Eggert , wolfgang.rohm@arcor.de, 48960@debbugs.gnu.org References: <8cc78813-1765-73b7-666e-9832741232a7@cs.ucla.edu> <0d8f1e49-9df3-376d-b21f-103cfe4cbe16@draigBrady.com> Message-ID: Date: Sun, 20 Jun 2021 15:21:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Thunderbird/84.0 MIME-Version: 1.0 In-Reply-To: <0d8f1e49-9df3-376d-b21f-103cfe4cbe16@draigBrady.com> Content-Type: multipart/mixed; boundary="------------0C55424DA83CE539F353F697" Content-Language: en-US X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 48960 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.5 (/) This is a multi-part message in MIME format. --------------0C55424DA83CE539F353F697 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12/06/2021 16:19, Pádraig Brady wrote: > We could take the FreeBSD approach which is: > > %Hd major device number in decimal (st_dev) > %Ld minor device number in decimal (st_dev) > %Hr major device type in decimal (st_rdev) > %Lr minor device type in decimal (st_rdev) > > Note I'd be inclined to not have a space between major,minor in default stat output, > as there should be no ambiguity with locale formatted numbers, which could be > the case with ls. For example, my ls alias uses thousands grouping with: > alias ls="BLOCK_SIZE=\'1 ls --color=auto". > I.e. the default format would from stat would be > Device: %Hd,%Ld ..... Device type: %Hr,%Lr > > For consistency if we provided the above we should also probably provide: > > %r (composed) device type in decimal (st_rdev) > %R (composed) device type in hex (st_rdev) The attached adds the new formats. I'll follow up with another to adjust the default output accordingly. cheers, Pádraig --------------0C55424DA83CE539F353F697 Content-Type: text/x-patch; charset=UTF-8; name="stat-device-formats.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="stat-device-formats.diff" >From 013ba07f19a209685331cac3f8202591b5b90dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Sun, 20 Jun 2021 15:16:49 +0100 Subject: [PATCH] stat: support more device number representations In preparation for changing the default device number representation (to decomposed decimal), provide more formatting options for device numbers. These new (FreeBSD compat) formatting options are added: %Hd major device number in decimal (st_dev) %Ld minor device number in decimal (st_dev) %Hr major device type in decimal (st_rdev) %Lr minor device type in decimal (st_rdev) %r (composed) device type in decimal (st_rdev) %R (composed) device type in hex (st_rdev) * doc/coreutils.texi (stat invocation): Document new formats. * src/stat.c (print_it): Handle the new %H and %L modifiers. (print_stat): Handle any modifiers and the new 'r' format. (usage): Document the new formats. Addresses https://bugs.gnu.org/48960 --- doc/coreutils.texi | 14 ++++++++---- src/stat.c | 57 ++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 60 insertions(+), 11 deletions(-) diff --git a/doc/coreutils.texi b/doc/coreutils.texi index 3e3aedb0f..2b69e1a2a 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -12506,8 +12506,10 @@ The valid @var{format} directives for files with @option{--format} and @item %b - Number of blocks allocated (see @samp{%B}) @item %B - The size in bytes of each block reported by @samp{%b} @item %C - The SELinux security context of a file, if available -@item %d - Device number in decimal -@item %D - Device number in hex +@item %d - Device number in decimal (st_dev) +@item %D - Device number in hex (st_dev) +@item %Hd - Major device number in decimal +@item %Ld - Minor device number in decimal @item %f - Raw mode in hex @item %F - File type @item %g - Group ID of owner @@ -12519,6 +12521,10 @@ The valid @var{format} directives for files with @option{--format} and @item %N - Quoted file name with dereference if symbolic link (see below) @item %o - Optimal I/O transfer size hint @item %s - Total size, in bytes +@item %r - Device type in decimal (st_rdev) +@item %R - Device type in hex (st_rdev) +@item %Hr - Major device type in decimal (see below) +@item %Lr - Minor device type in decimal (see below) @item %t - Major device type in hex (see below) @item %T - Minor device type in hex (see below) @item %u - User ID of owner @@ -12543,8 +12549,8 @@ The @samp{%N} format can be set with the environment variable the default value is @samp{shell-escape-always}. Valid quoting styles are: @quotingStyles -The @samp{%t} and @samp{%T} formats operate on the st_rdev member of -the stat(2) structure, and are only defined for character and block +The @samp{r}, @samp{R}, @samp{%t}, and @samp{%T} formats operate on the st_rdev +member of the stat(2) structure, and are only defined for character and block special files. On some systems or file types, st_rdev may be used to represent other quantities. diff --git a/src/stat.c b/src/stat.c index 56e4867b9..8c9c69e7c 100644 --- a/src/stat.c +++ b/src/stat.c @@ -1144,11 +1144,12 @@ print_it (char const *format, int fd, char const *filename, case '%': { size_t len = format_code_offset (b); - char const *fmt_char = b + len; + char fmt_char = *(b + len); + char mod_char = 0; memcpy (dest, b, len); b += len; - switch (*fmt_char) + switch (fmt_char) { case '\0': --b; @@ -1156,15 +1157,32 @@ print_it (char const *format, int fd, char const *filename, case '%': if (1 < len) { - dest[len] = *fmt_char; + dest[len] = fmt_char; dest[len + 1] = '\0'; die (EXIT_FAILURE, 0, _("%s: invalid directive"), quote (dest)); } putchar ('%'); break; + case 'H': + case 'L': + mod_char = fmt_char; + fmt_char = *(b + 1); + if (print_func == print_stat + && (fmt_char == 'd' || fmt_char == 'r')) + { + b++; + } + else + { + fmt_char = mod_char; + mod_char = 0; + } + FALLTHROUGH; default: - fail |= print_func (dest, len, to_uchar (*fmt_char), + fail |= print_func (dest, len, + (to_uchar (mod_char) << CHAR_BIT) + + to_uchar (fmt_char), fd, filename, data); break; } @@ -1470,6 +1488,9 @@ print_stat (char *pformat, size_t prefix_len, unsigned int m, struct group *gw_ent; bool fail = false; + char mod_char = m >> CHAR_BIT; + m &= UCHAR_MAX; + switch (m) { case 'n': @@ -1492,7 +1513,12 @@ print_stat (char *pformat, size_t prefix_len, unsigned int m, } break; case 'd': - out_uint (pformat, prefix_len, statbuf->st_dev); + if (mod_char == 'H') + out_uint (pformat, prefix_len, major (statbuf->st_dev)); + else if (mod_char == 'L') + out_uint (pformat, prefix_len, minor (statbuf->st_dev)); + else + out_uint (pformat, prefix_len, statbuf->st_dev); break; case 'D': out_uint_x (pformat, prefix_len, statbuf->st_dev); @@ -1537,6 +1563,17 @@ print_stat (char *pformat, size_t prefix_len, unsigned int m, case 's': out_int (pformat, prefix_len, statbuf->st_size); break; + case 'r': + if (mod_char == 'H') + out_uint (pformat, prefix_len, major (statbuf->st_rdev)); + else if (mod_char == 'L') + out_uint (pformat, prefix_len, minor (statbuf->st_rdev)); + else + out_uint (pformat, prefix_len, statbuf->st_rdev); + break; + case 'R': + out_uint_x (pformat, prefix_len, statbuf->st_rdev); + break; case 't': out_uint_x (pformat, prefix_len, major (statbuf->st_rdev)); break; @@ -1739,8 +1776,10 @@ The valid format sequences for files (without --file-system):\n\ %C SELinux security context string\n\ "), stdout); fputs (_("\ - %d device number in decimal\n\ - %D device number in hex\n\ + %d device number in decimal (st_dev)\n\ + %D device number in hex (st_dev)\n\ + %Hd major device number in decimal\n\ + %Ld minor device number in decimal\n\ %f raw mode in hex\n\ %F file type\n\ %g group ID of owner\n\ @@ -1754,6 +1793,10 @@ The valid format sequences for files (without --file-system):\n\ %N quoted file name with dereference if symbolic link\n\ %o optimal I/O transfer size hint\n\ %s total size, in bytes\n\ + %r device type in decimal (st_rdev)\n\ + %R device type in hex (st_rdev)\n\ + %Hr major device type in decimal, for character/block device special files\n\ + %Lr minor device type in decimal, for character/block device special files\n\ %t major device type in hex, for character/block device special files\n\ %T minor device type in hex, for character/block device special files\n\ "), stdout); -- 2.26.2 --------------0C55424DA83CE539F353F697-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jun 20 17:38:10 2021 Received: (at 48960) by debbugs.gnu.org; 20 Jun 2021 21:38:11 +0000 Received: from localhost ([127.0.0.1]:34957 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lv58s-0001ja-La for submit@debbugs.gnu.org; Sun, 20 Jun 2021 17:38:10 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:57242) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lv58q-0001jL-Vf for 48960@debbugs.gnu.org; Sun, 20 Jun 2021 17:38:09 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9683D1600ED; Sun, 20 Jun 2021 14:38:02 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id Ub92naUGxCIN; Sun, 20 Jun 2021 14:38:01 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id DFBDB1600F3; Sun, 20 Jun 2021 14:38:01 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id vgr0D5xrYM3r; Sun, 20 Jun 2021 14:38:01 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id BA3001600ED; Sun, 20 Jun 2021 14:38:01 -0700 (PDT) To: =?UTF-8?Q?P=c3=a1draig_Brady?= , wolfgang.rohm@arcor.de, 48960@debbugs.gnu.org References: <8cc78813-1765-73b7-666e-9832741232a7@cs.ucla.edu> <0d8f1e49-9df3-376d-b21f-103cfe4cbe16@draigBrady.com> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#48960: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit Message-ID: Date: Sun, 20 Jun 2021 14:38:01 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 48960 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 (---) Thanks for writing that patch. One minor note: On 6/20/21 7:21 AM, P=C3=A1draig Brady wrote: > + (to_uchar (mod_char) << CHAR_BIT) > + + to_uchar (fmt_char), Neither mod_char nor fmt_char can be negative (this is guaranteed by the=20 C standard since all the relevant constants are in the basic character=20 set) so the to_uchar calls are unnecessary. Also, this code assumes that 2 * CHAR_BIT <=3D MIN (INT_WIDTH,=20 UINT_WIDTH), something that POSIX requires but the C standard does not;=20 it'd be a bit safer (if pedantic) to add 'verify (2 * CHAR_BIT <=3D MIN=20 (INT_WIDTH, UINT_WIDTH));'. I'd also change print_stat's arg from unsigned int to int; if you did=20 that, you could change the above 'MIN (INT_WIDTH, UINT_WIDTH)' to plain=20 'INT_WIDTH'. (These days we're negative on unsigned types anyway, for=20 all the usual reasons....) Better yet, pass two char args to print_stat instead of a single int=20 portmanteau. From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 21 07:07:11 2021 Received: (at 48960-done) by debbugs.gnu.org; 21 Jun 2021 11:07:11 +0000 Received: from localhost ([127.0.0.1]:35578 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lvHln-0005zl-9V for submit@debbugs.gnu.org; Mon, 21 Jun 2021 07:07:11 -0400 Received: from mail-wr1-f43.google.com ([209.85.221.43]:35560) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lvHll-0005zY-Fv for 48960-done@debbugs.gnu.org; Mon, 21 Jun 2021 07:07:09 -0400 Received: by mail-wr1-f43.google.com with SMTP id m18so19166130wrv.2 for <48960-done@debbugs.gnu.org>; Mon, 21 Jun 2021 04:07:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=aiy4ssxjbJa6+Yrv446f4CUpcVlOWgztCe0WHW873ns=; b=V5co12JOlmFxo6+cnYidASMNkAh1u1GhXgKd8yr3MAHr3NgecEpGzLXuC2YTCO7zhY ry2MHdtTzWwruGrAaNKfNoWrycNqATxLZa5lWPJ1MpoBRexj5loY1CsKrXl6100RZKMf oIf3jguTabvzRYKnopaM2OHKQK9vuGwEqWE/xJZh7NxWJEovQDiQUp02MEbhyYtozG3i N14s1cAmdlO/7My30zQG81RTdYIy5C+zVWWWrgZ1vNmbi4lM78gHsHx1JpreO515KncP Xj6lPZ3tgOEU8SiFityhQKrQGvXM/VysxjPWZSjHUjKdzEk949DPEaYqsaDUWGm8LmMn tX6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=aiy4ssxjbJa6+Yrv446f4CUpcVlOWgztCe0WHW873ns=; b=rUkA1+C2qPHIyBcygktWTM4HIvmPMk0mVoKlR4qyd/LKBePqxLceBpVSTZkHR9zUX0 BzGgjUy2zLhQWQK4n9+9zqwrVKlYOaV7LucvuvSgiXT5v0inD2vKwIORCpa+O4ErqCCb UQ+Shu7MZRNlxSFZ7/ROKejyfpIhcTDZrZ3aYj89TMLczFA+OiaBZ5J7HHjXHxMU/mFd tizcwpWxgtqu5qCjhU5Euy+sDhjH2xxBpDiBr5Ki/QrIQNDzl3XDVT94ckOMIfIF6Xde NX9p7ijb0IrC2O7Q/AopLYZe8uLtSyZwkLptI+ZNKJmfuo9ZZ5CcFUG6iDbqso1NP9/u no0g== X-Gm-Message-State: AOAM530X/FABcTzW8eaPRnvAvA1iuxJHyg7EkXj+dAgB1ka8GPvTBSwi GjkR3r5TAC9x+9bmWHsQW1Wch5QrYQ8= X-Google-Smtp-Source: ABdhPJzftkuGyKseGseE3mNjdm8Cp1gEbATte1wAzZtvwsKhmBUbcFaIkZd0D5qilUklkTPfibsriA== X-Received: by 2002:a05:6000:184a:: with SMTP id c10mr27071051wri.232.1624273623444; Mon, 21 Jun 2021 04:07:03 -0700 (PDT) Received: from localhost.localdomain (86-42-15-3-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.42.15.3]) by smtp.googlemail.com with UTF8SMTPSA id x14sm17188995wrq.78.2021.06.21.04.07.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Jun 2021 04:07:02 -0700 (PDT) Subject: Re: bug#48960: stat v8.30 - device number in decimal shown as 16bit number instead of to converted 8bit To: Paul Eggert , wolfgang.rohm@arcor.de, 48960-done@debbugs.gnu.org References: <8cc78813-1765-73b7-666e-9832741232a7@cs.ucla.edu> <0d8f1e49-9df3-376d-b21f-103cfe4cbe16@draigBrady.com> From: =?UTF-8?Q?P=c3=a1draig_Brady?= Message-ID: Date: Mon, 21 Jun 2021 12:07:01 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Thunderbird/84.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 48960-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.5 (/) On 20/06/2021 22:38, Paul Eggert wrote: > Thanks for writing that patch. One minor note: > > On 6/20/21 7:21 AM, Pádraig Brady wrote: > >> + (to_uchar (mod_char) << CHAR_BIT) >> + + to_uchar (fmt_char), > > Neither mod_char nor fmt_char can be negative (this is guaranteed by the > C standard since all the relevant constants are in the basic character > set) so the to_uchar calls are unnecessary. > > Also, this code assumes that 2 * CHAR_BIT <= MIN (INT_WIDTH, > UINT_WIDTH), something that POSIX requires but the C standard does not; > it'd be a bit safer (if pedantic) to add 'verify (2 * CHAR_BIT <= MIN > (INT_WIDTH, UINT_WIDTH));'. > > I'd also change print_stat's arg from unsigned int to int; if you did > that, you could change the above 'MIN (INT_WIDTH, UINT_WIDTH)' to plain > 'INT_WIDTH'. (These days we're negative on unsigned types anyway, for > all the usual reasons....) > > Better yet, pass two char args to print_stat instead of a single int > portmanteau. Yes two separate char arguments is cleaner. I thought there was some reason for the existing unsigned int usage, but looking I see it was added for commit db42ae78 (to support :X formats), but then became unneeded with commit c7375c23 (to instead support %.9X formats). I've pushed both commits now, so marking this as done, thanks for the review! Pádraig From unknown Mon Jun 23 07:45:49 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 19 Jul 2021 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator