Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jul 2015 21:25:51 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        d@delphij.net
Cc:        Garrett Cooper <yaneurabeya@gmail.com>, Baptiste Daroussin <bapt@FreeBSD.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r285552 - head/usr.bin/xargs
Message-ID:  <1436930751.1334.325.camel@freebsd.org>
In-Reply-To: <55A5A30F.4070005@delphij.net>
References:  <201507141916.t6EJGEG1083928@repo.freebsd.org> <48222CD1-7087-4C9A-A586-71F6A37A601C@gmail.com> <55A574BA.4090700@delphij.net> <1436912270.1334.309.camel@freebsd.org> <55A5A30F.4070005@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1436930751.1334.325.camel>