On Mon, May 22, 2023 at 02:04:41PM -0500, Eric Blake wrote: > We have several limitations and bugs worth fixing; they are > inter-related enough that it is not worth splitting this patch into > smaller pieces: > > +++ b/util/cutils.c > @@ -194,15 +194,18 @@ static int64_t suffix_mul(char suffix, int64_t unit) > * - 12345 - decimal, scale determined by @default_suffix and @unit > * - 12345{bBkKmMgGtTpPeE} - decimal, scale determined by suffix and @unit > * - 12345.678{kKmMgGtTpPeE} - decimal, scale determined by suffix, and > - * fractional portion is truncated to byte > + * fractional portion is truncated to byte, either side of . may be empty > * - 0x7fEE - hexadecimal, unit determined by @default_suffix > * > * The following are intentionally not supported > - * - hex with scaling suffix, such as 0x20M > - * - octal, such as 08 > - * - fractional hex, such as 0x1.8 > - * - negative values, including -0 > - * - floating point exponents, such as 1e3 > + * - hex with scaling suffix, such as 0x20M (0x1b is 27, not 1) > + * - octal, such as 08 (parsed as decimal instead) > + * - binary, such as 0b1000 (parsed as 0b with trailing garbage "1000") > + * - fractional hex, such as 0x1.8 (parsed as 0 with trailing garbage "x1.8") > + * - negative values, including -0 (fail with -ERANGE) > + * - floating point exponents, such as 1e3 (parsed as 1e with trailing > + * garbage "3") or 0x1p3 (parsed as 1 with trailing garbage "p3")
This latter clause is wrong - we reject 0x1p3 earlier under the hex with scaling suffix rule. I've touched up the comment as part of preparing the pull request. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org