From: Pádraig Brady
Date: Sat, 5 Apr 2025 19:26:23 +0000 (+0100) Subject: doc: mention the edge case of hex durations with 'd' suffix X-Git-Tag: v9.7~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65b694257f04a8b5b566e35c58a0ba5b51f8a06c;p=thirdparty%2Fcoreutils.git doc: mention the edge case of hex durations with 'd' suffix * doc/coreutils.texi (sleep invocation): Mention that suffixes are best avoided with hex arguments. (timeout invocation): Likewise. * tests/misc/sleep.sh: Ensure 'd' is not interpreted as "day". --- diff --git a/doc/coreutils.texi b/doc/coreutils.texi index d6633f04cf..2d1f162aa4 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -18913,6 +18913,11 @@ C locale (@pxref{Floating point}) followed by an optional unit: @samp{h} for hours @samp{d} for days @end display +@macro hexDuration +Note it's best to avoid combining suffixes with hexadecimal arguments, +as any @samp{d} will @emph{not} be interpreted as a suffix. +@end macro +@hexDuration A duration of 0 disables the associated timeout. The actual timeout duration is dependent on system conditions, which should be especially considered when specifying sub-second timeouts. @@ -19089,6 +19094,8 @@ non-negative integer argument without a suffix, GNU @command{sleep} also accepts two or more arguments, unit suffixes, and floating-point numbers in either the current or the C locale. @xref{Floating point}. +@hexDuration + For instance, the following could be used to @command{sleep} for 1 second, 234 milli-, 567 micro- and 890 nanoseconds: diff --git a/tests/misc/sleep.sh b/tests/misc/sleep.sh index d1e3bc76c5..6806a6fe29 100755 --- a/tests/misc/sleep.sh +++ b/tests/misc/sleep.sh @@ -32,6 +32,7 @@ returns_ 1 timeout 10 sleep || fail=1 # subsecond actual sleep timeout 10 sleep 0.001 || fail=1 timeout 10 sleep 0x.002p1 || fail=1 +timeout 10 sleep 0x0.01d || fail=1 # d is part of hex, not a day suffix # Using small timeouts for larger sleeps is racy, # but false positives should be avoided on most systems