Subject: bug#7877: sleep takes undocumented hex args

From: Jim Meyering <[email-masked]>
Date: Fri, 21 Jan 2011 15:57:44 +0100

Eric Blake wrote:

> On 01/21/2011 06:03 AM, Jim Meyering wrote:
>> [email-masked] wrote:
>>> You see I was trying to make very special arguments to sleep so that I
>>> can make sure to kill the one I want
>>>     pkill -u jidanni -fx sleep\ 000022
>>> It is not clear if that will still work.
>>
>> With today's change using "sleep 000022" will
>> still act just like "sleep 22".
>>
>> I could not change that (and would not want to!)
>> without breaking with years of tradition.
>>
>>> Maybe the man/info page should
>>> say a regexp that matches all valid args.
>>
>> It already describes the format pretty well,
>> mentioning "floating point" and the four suffixes.
>
> Floating point literals include hex-floats, such as 0x1p1.  Does today's
> added pre-filtering to reject 0x1 accidentally also reject hex-float
> literals?  (It's a bit of a shame that when hex-floats were added that
> strtod() was altered to accept hex-float literals but as a side effect
> it also started accepting hexadecimal values without the p[+-]?[0-9]+
> exponent suffix).

I see no significant utility in accepting hex floats.  Do you?
If you're concerned about errors in conversion or the efficiency
of the conversion process, then you probably don't want to use
the sleep command in the first place.