svn commit: r285552 - head/usr.bin/xargs

Ian Lepore ian at freebsd.org
Wed Jul 15 03:25:59 UTC 2015


On Tue, 2015-07-14 at 17:02 -0700, Xin Li wrote:
> On 07/14/15 15:17, Ian Lepore wrote:
> > On Tue, 2015-07-14 at 13:44 -0700, Xin Li wrote:
> >> On 07/14/15 13:29, Garrett Cooper wrote:
> >>> On Jul 14, 2015, at 12:16, Baptiste Daroussin
> >>> <bapt at FreeBSD.org> wrote:
> >>> 
> >>>> Author: bapt Date: Tue Jul 14 19:16:14 2015 New Revision:
> >>>> 285552 URL: https://svnweb.freebsd.org/changeset/base/285552
> >>>> 
> >>>> Log: Convert atoi(3) to stronum(3) which allows to arguments
> >>>> and report proper errors to the users
> >>> 
> >>> Is strtonum preferred over strtoll, etc?
> >> 
> >> strtonum(3) is a wrapper of strtoll() and provides more
> >> functionality like range checking, so I think the answer would be
> >> yes.
> >> 
> >> Cheers,
> >> 
> > 
> > Except if we convert all our tools that take numbers on the command
> > line to use strtonum() then peoples' existing scripts and other
> > automation that passes 0xWhatever numbers suddenly stop working.
> > strtonum() seems to be about 2/3 of a good idea.
> 
> I think the caller has to be calling with 0 or 16 as base to request
> that behavior?  If we are converting from atoi, the base number is a
> fixed value of 10.
> 
> My only concern with strtonum() is that it's English only.
> 
> Cheers,

revolution > cd src
/bsdstg/head/src
revolution > gs . 'strto.*l.*\(.*0\)' | wc -l
    2176
revolution > gs . 'strto.*l.*\(.*10\)' | wc -l
    1097

Looks like about half our strtol-ish calls specify 10 instead of 0.
Many of those are in the compilers and other places where it really has
to be 10.  Probably a good number of them are places that really should
just be 0.  I know over the years I've been pleasantly surprised and
occasionally disappointed about being able to use 0x numbers on command
lines and config files where it felt more natural.

-- Ian




More information about the svn-src-head mailing list