Module Name: src Committed By: snj Date: Wed Apr 22 07:18:58 UTC 2015
Modified Files: src/distrib/sets/lists/base [netbsd-7]: ad.aarch64 ad.arm ad.mips ad.powerpc md.amd64 md.sparc64 shl.mi src/distrib/sets/lists/comp [netbsd-7]: mi src/distrib/sets/lists/debug [netbsd-7]: ad.aarch64 ad.arm ad.mips ad.powerpc md.amd64 md.sparc64 shl.mi src/include [netbsd-7]: inttypes.h src/lib/libc [netbsd-7]: shlib_version src/lib/libc/stdlib [netbsd-7]: Makefile.inc strtol.3 strtoul.3 src/sys/lib/libkern [netbsd-7]: Makefile.libkern libkern.h src/tools/compat [netbsd-7]: Makefile compat_defs.h configure configure.ac nbtool_config.h.in Added Files: src/common/lib/libc/stdlib [netbsd-7]: _strtoi.h strtoi.c strtou.c Log Message: Pull up following revision(s) (requested by roy in ticket #648): common/lib/libc/stdlib/_strtoi.h: revisions 1.1, 1.2 common/lib/libc/stdlib/strtoi.c: revision 1.1 common/lib/libc/stdlib/strtou.c: revision 1.1 distrib/sets/lists/base/ad.aarch64: patch distrib/sets/lists/base/ad.arm: patch distrib/sets/lists/base/ad.mips: patch distrib/sets/lists/base/ad.powerpc: patch distrib/sets/lists/base/md.amd64: patch distrib/sets/lists/base/md.sparc64: patch distrib/sets/lists/base/shl.mi: patch distrib/sets/lists/comp/mi: revision 1.1939 distrib/sets/lists/debug/ad.aarch64: patch distrib/sets/lists/debug/ad.arm: patch distrib/sets/lists/debug/ad.mips: patch distrib/sets/lists/debug/ad.powerpc: patch distrib/sets/lists/debug/md.amd64: patch distrib/sets/lists/debug/md.sparc64: patch distrib/sets/lists/debug/shl.mi: patch include/inttypes.h: revision 1.11 lib/libc/shlib_version: patch lib/libc/stdlib/Makefile.inc: revision 1.84 lib/libc/stdlib/strtol.3: revisions 1.27-1.31 lib/libc/stdlib/strtoul.3: revisions 1.26-1.29 sys/lib/libkern/Makefile.libkern: revision 1.37 sys/lib/libkern/libkern.h: revision 1.117 tools/compat/Makefile: revision 1.73 tools/compat/compat_defs.h: revision 1.101 tools/compat/configure.ac: revision 1.83 tools/compat/configure: revision 1.82 tools/compat/nbtool_config.h.in: revision 1.36 add strto{i,u} from Kamil Rytarowski as discussed in tech-userlevel. -- strtoi and strtou additions -- strtoi and strtou for the kernel -- strtoi and strtou additions -- strtoi and strtou man pages -- strto{i,u} -- regen -- Remove trailing whitespace. -- match variable names with man page (Kamil Rytarowski) -- cleanups from (Kamil Rytarowski) -- add strtoi strtou (Kamil Rytarowski) -- PR/49640: Kamil Rytarowski: Improve error printing -- Use existing month for Dd. To generate a diff of this commit: cvs rdiff -u -r0 -r1.2.2.2 src/common/lib/libc/stdlib/_strtoi.h cvs rdiff -u -r0 -r1.1.2.2 src/common/lib/libc/stdlib/strtoi.c \ src/common/lib/libc/stdlib/strtou.c cvs rdiff -u -r1.2.2.3 -r1.2.2.4 src/distrib/sets/lists/base/ad.aarch64 cvs rdiff -u -r1.54.2.5 -r1.54.2.6 src/distrib/sets/lists/base/ad.arm cvs rdiff -u -r1.48.2.5 -r1.48.2.6 src/distrib/sets/lists/base/ad.mips cvs rdiff -u -r1.17.2.4 -r1.17.2.5 src/distrib/sets/lists/base/ad.powerpc cvs rdiff -u -r1.244.2.5 -r1.244.2.6 src/distrib/sets/lists/base/md.amd64 cvs rdiff -u -r1.232.2.5 -r1.232.2.6 src/distrib/sets/lists/base/md.sparc64 cvs rdiff -u -r1.712.2.5 -r1.712.2.6 src/distrib/sets/lists/base/shl.mi cvs rdiff -u -r1.1906.2.4 -r1.1906.2.5 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.2.2.4 -r1.2.2.5 src/distrib/sets/lists/debug/ad.aarch64 cvs rdiff -u -r1.42.2.5 -r1.42.2.6 src/distrib/sets/lists/debug/ad.arm cvs rdiff -u -r1.38.2.5 -r1.38.2.6 src/distrib/sets/lists/debug/ad.mips cvs rdiff -u -r1.18.2.5 -r1.18.2.6 src/distrib/sets/lists/debug/ad.powerpc cvs rdiff -u -r1.63.2.5 -r1.63.2.6 src/distrib/sets/lists/debug/md.amd64 cvs rdiff -u -r1.61.2.5 -r1.61.2.6 src/distrib/sets/lists/debug/md.sparc64 cvs rdiff -u -r1.71.2.9 -r1.71.2.10 src/distrib/sets/lists/debug/shl.mi cvs rdiff -u -r1.10 -r1.10.6.1 src/include/inttypes.h cvs rdiff -u -r1.254 -r1.254.2.1 src/lib/libc/shlib_version cvs rdiff -u -r1.82 -r1.82.2.1 src/lib/libc/stdlib/Makefile.inc cvs rdiff -u -r1.26 -r1.26.24.1 src/lib/libc/stdlib/strtol.3 cvs rdiff -u -r1.25 -r1.25.24.1 src/lib/libc/stdlib/strtoul.3 cvs rdiff -u -r1.35 -r1.35.2.1 src/sys/lib/libkern/Makefile.libkern cvs rdiff -u -r1.115 -r1.115.2.1 src/sys/lib/libkern/libkern.h cvs rdiff -u -r1.72 -r1.72.4.1 src/tools/compat/Makefile cvs rdiff -u -r1.97.2.1 -r1.97.2.2 src/tools/compat/compat_defs.h cvs rdiff -u -r1.81 -r1.81.2.1 src/tools/compat/configure cvs rdiff -u -r1.82 -r1.82.2.1 src/tools/compat/configure.ac cvs rdiff -u -r1.35 -r1.35.2.1 src/tools/compat/nbtool_config.h.in Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/base/ad.aarch64 diff -u src/distrib/sets/lists/base/ad.aarch64:1.2.2.3 src/distrib/sets/lists/base/ad.aarch64:1.2.2.4 --- src/distrib/sets/lists/base/ad.aarch64:1.2.2.3 Fri Jan 16 08:24:50 2015 +++ src/distrib/sets/lists/base/ad.aarch64 Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.aarch64,v 1.2.2.3 2015/01/16 08:24:50 martin Exp $ +# $NetBSD: ad.aarch64,v 1.2.2.4 2015/04/22 07:18:57 snj Exp $ ./lib/eabi base-compat-shlib compat ./lib/eabi/npf base-npf-shlib compat ./lib/eabi/npf/ext_log.so base-npf-shlib compat,pic @@ -108,7 +108,7 @@ ./usr/lib/eabi/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/eabi/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/eabi/libc.so.12 base-compat-shlib compat,pic -./usr/lib/eabi/libc.so.12.193 base-compat-shlib compat,pic +./usr/lib/eabi/libc.so.12.193.1 base-compat-shlib compat,pic ./usr/lib/eabi/libcom_err.so.7 base-compat-shlib compat,pic,kerberos ./usr/lib/eabi/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos ./usr/lib/eabi/libcrypt.so.1 base-compat-shlib compat,pic @@ -422,7 +422,7 @@ #./usr/lib/eabihf/libc++.so.1 base-compat-shlib compat,pic,libcxx #./usr/lib/eabihf/libc++.so.1.0 base-compat-shlib compat,pic,libcxx #./usr/lib/eabihf/libc.so.12 base-compat-shlib compat,pic -#./usr/lib/eabihf/libc.so.12.193 base-compat-shlib compat,pic +#./usr/lib/eabihf/libc.so.12.193.1 base-compat-shlib compat,pic #./usr/lib/eabihf/libcom_err.so.7 base-compat-shlib compat,pic,kerberos #./usr/lib/eabihf/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos #./usr/lib/eabihf/libcrypt.so.1 base-compat-shlib compat,pic @@ -736,7 +736,7 @@ ./usr/lib/oabi/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/oabi/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/oabi/libc.so.12 base-compat-shlib compat,pic -./usr/lib/oabi/libc.so.12.193 base-compat-shlib compat,pic +./usr/lib/oabi/libc.so.12.193.1 base-compat-shlib compat,pic ./usr/lib/oabi/libcom_err.so.7 base-compat-shlib compat,pic,kerberos ./usr/lib/oabi/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos ./usr/lib/oabi/libcrypt.so.1 base-compat-shlib compat,pic Index: src/distrib/sets/lists/base/ad.arm diff -u src/distrib/sets/lists/base/ad.arm:1.54.2.5 src/distrib/sets/lists/base/ad.arm:1.54.2.6 --- src/distrib/sets/lists/base/ad.arm:1.54.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/base/ad.arm Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.arm,v 1.54.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: ad.arm,v 1.54.2.6 2015/04/22 07:18:57 snj Exp $ ./lib/oabi base-compat-shlib compat ./lib/oabi/npf base-npf-shlib compat ./lib/oabi/npf/ext_log.so base-npf-shlib compat,pic @@ -94,7 +94,7 @@ ./usr/lib/oabi/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/oabi/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/oabi/libc.so.12 base-compat-shlib compat,pic -./usr/lib/oabi/libc.so.12.193 base-compat-shlib compat,pic +./usr/lib/oabi/libc.so.12.193.1 base-compat-shlib compat,pic ./usr/lib/oabi/libc_vfp.so.0 base-compat-shlib compat,pic ./usr/lib/oabi/libc_vfp.so.0.0 base-compat-shlib compat,pic ./usr/lib/oabi/libcom_err.so.7 base-compat-shlib compat,pic,kerberos Index: src/distrib/sets/lists/base/ad.mips diff -u src/distrib/sets/lists/base/ad.mips:1.48.2.5 src/distrib/sets/lists/base/ad.mips:1.48.2.6 --- src/distrib/sets/lists/base/ad.mips:1.48.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/base/ad.mips Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.mips,v 1.48.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: ad.mips,v 1.48.2.6 2015/04/22 07:18:57 snj Exp $ ./lib/64 base-compat-shlib compat,arch64 ./lib/64/npf base-npf-shlib compat,arch64 ./lib/64/npf/ext_log.so base-npf-shlib compat,pic,arch64 @@ -96,7 +96,7 @@ ./usr/lib/64/libc++.so.1 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/64/libc++.so.1.0 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/64/libc.so.12 base-compat-shlib compat,pic,arch64 -./usr/lib/64/libc.so.12.193 base-compat-shlib compat,pic,arch64 +./usr/lib/64/libc.so.12.193.1 base-compat-shlib compat,pic,arch64 ./usr/lib/64/libcom_err.so.7 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/64/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/64/libcrypt.so.1 base-compat-shlib compat,pic,arch64 @@ -444,7 +444,7 @@ ./usr/lib/o32/libc++.so.1 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/o32/libc++.so.1.0 base-compat-shlib compat,pic,libcxx,arch64 ./usr/lib/o32/libc.so.12 base-compat-shlib compat,pic,arch64 -./usr/lib/o32/libc.so.12.193 base-compat-shlib compat,pic,arch64 +./usr/lib/o32/libc.so.12.193.1 base-compat-shlib compat,pic,arch64 ./usr/lib/o32/libcom_err.so.7 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/o32/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos,arch64 ./usr/lib/o32/libcrypt.so.1 base-compat-shlib compat,pic,arch64 Index: src/distrib/sets/lists/base/ad.powerpc diff -u src/distrib/sets/lists/base/ad.powerpc:1.17.2.4 src/distrib/sets/lists/base/ad.powerpc:1.17.2.5 --- src/distrib/sets/lists/base/ad.powerpc:1.17.2.4 Sun Jan 25 00:19:24 2015 +++ src/distrib/sets/lists/base/ad.powerpc Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.powerpc,v 1.17.2.4 2015/01/25 00:19:24 martin Exp $ +# $NetBSD: ad.powerpc,v 1.17.2.5 2015/04/22 07:18:57 snj Exp $ ./lib/powerpc base-npf-shlib compat,arch64 ./lib/powerpc/npf base-npf-shlib compat,arch64 ./lib/powerpc/npf/ext_log.so base-npf-shlib compat,arch64,pic @@ -85,7 +85,7 @@ ./usr/lib/powerpc/libc++.so.1 base-compat-shlib compat,arch64,pic,libcxx ./usr/lib/powerpc/libc++.so.1.0 base-compat-shlib compat,arch64,pic,libcxx ./usr/lib/powerpc/libc.so.12 base-compat-shlib compat,arch64,pic -./usr/lib/powerpc/libc.so.12.193 base-compat-shlib compat,arch64,pic +./usr/lib/powerpc/libc.so.12.193.1 base-compat-shlib compat,arch64,pic ./usr/lib/powerpc/libcom_err.so.7 base-compat-shlib compat,arch64,pic,kerberos ./usr/lib/powerpc/libcom_err.so.7.0 base-compat-shlib compat,arch64,pic,kerberos ./usr/lib/powerpc/libcrypt.so.1 base-compat-shlib compat,arch64,pic Index: src/distrib/sets/lists/base/md.amd64 diff -u src/distrib/sets/lists/base/md.amd64:1.244.2.5 src/distrib/sets/lists/base/md.amd64:1.244.2.6 --- src/distrib/sets/lists/base/md.amd64:1.244.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/base/md.amd64 Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: md.amd64,v 1.244.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: md.amd64,v 1.244.2.6 2015/04/22 07:18:57 snj Exp $ ./dev/lms0 base-obsolete obsolete ./dev/mms0 base-obsolete obsolete ./lib/i386 base-compat-shlib compat @@ -88,7 +88,7 @@ ./usr/lib/i386/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/i386/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/i386/libc.so.12 base-compat-shlib compat,pic -./usr/lib/i386/libc.so.12.193 base-compat-shlib compat,pic +./usr/lib/i386/libc.so.12.193.1 base-compat-shlib compat,pic ./usr/lib/i386/libcom_err.so.7 base-compat-shlib compat,pic,kerberos ./usr/lib/i386/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos ./usr/lib/i386/libcrypt.so.1 base-compat-shlib compat,pic Index: src/distrib/sets/lists/base/md.sparc64 diff -u src/distrib/sets/lists/base/md.sparc64:1.232.2.5 src/distrib/sets/lists/base/md.sparc64:1.232.2.6 --- src/distrib/sets/lists/base/md.sparc64:1.232.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/base/md.sparc64 Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: md.sparc64,v 1.232.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: md.sparc64,v 1.232.2.6 2015/04/22 07:18:57 snj Exp $ ./lib/sparc base-npf-shlib compat ./lib/sparc/npf base-npf-shlib compat ./lib/sparc/npf/ext_log.so base-npf-shlib compat,pic @@ -86,7 +86,7 @@ ./usr/lib/sparc/libc++.so.1 base-compat-shlib compat,pic,libcxx ./usr/lib/sparc/libc++.so.1.0 base-compat-shlib compat,pic,libcxx ./usr/lib/sparc/libc.so.12 base-compat-shlib compat,pic -./usr/lib/sparc/libc.so.12.193 base-compat-shlib compat,pic +./usr/lib/sparc/libc.so.12.193.1 base-compat-shlib compat,pic ./usr/lib/sparc/libcom_err.so.7 base-compat-shlib compat,pic,kerberos ./usr/lib/sparc/libcom_err.so.7.0 base-compat-shlib compat,pic,kerberos ./usr/lib/sparc/libcrypt.so.1 base-compat-shlib compat,pic Index: src/distrib/sets/lists/base/shl.mi diff -u src/distrib/sets/lists/base/shl.mi:1.712.2.5 src/distrib/sets/lists/base/shl.mi:1.712.2.6 --- src/distrib/sets/lists/base/shl.mi:1.712.2.5 Sun Jan 25 00:19:24 2015 +++ src/distrib/sets/lists/base/shl.mi Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: shl.mi,v 1.712.2.5 2015/01/25 00:19:24 martin Exp $ +# $NetBSD: shl.mi,v 1.712.2.6 2015/04/22 07:18:57 snj Exp $ # # Note: Don't delete entries from here - mark them as "obsolete" instead, # unless otherwise stated below. @@ -15,7 +15,7 @@ # ./lib/libc.so base-sys-shlib dynamicroot ./lib/libc.so.12 base-sys-shlib dynamicroot -./lib/libc.so.12.193 base-sys-shlib dynamicroot +./lib/libc.so.12.193.1 base-sys-shlib dynamicroot ./lib/libcrypt.so base-sys-shlib dynamicroot ./lib/libcrypt.so.1 base-sys-shlib dynamicroot ./lib/libcrypt.so.1.0 base-sys-shlib dynamicroot @@ -203,7 +203,7 @@ ./usr/lib/libc++.so.1.0 base-sys-shlib libcxx ./usr/lib/libc.so base-sys-shlib ./usr/lib/libc.so.12 base-sys-shlib -./usr/lib/libc.so.12.193 base-sys-shlib +./usr/lib/libc.so.12.193.1 base-sys-shlib ./usr/lib/libcdk.so base-obsolete obsolete ./usr/lib/libcom_err.so base-krb5-shlib kerberos ./usr/lib/libcom_err.so.7 base-krb5-shlib kerberos Index: src/distrib/sets/lists/comp/mi diff -u src/distrib/sets/lists/comp/mi:1.1906.2.4 src/distrib/sets/lists/comp/mi:1.1906.2.5 --- src/distrib/sets/lists/comp/mi:1.1906.2.4 Sun Jan 25 00:19:24 2015 +++ src/distrib/sets/lists/comp/mi Wed Apr 22 07:18:57 2015 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1906.2.4 2015/01/25 00:19:24 martin Exp $ +# $NetBSD: mi,v 1.1906.2.5 2015/04/22 07:18:57 snj Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -9171,6 +9171,7 @@ ./usr/share/man/cat3/strsvisx.0 comp-c-catman .cat ./usr/share/man/cat3/strtod.0 comp-c-catman .cat ./usr/share/man/cat3/strtof.0 comp-c-catman .cat +./usr/share/man/cat3/strtoi.0 comp-c-catman .cat ./usr/share/man/cat3/strtoimax.0 comp-c-catman .cat ./usr/share/man/cat3/strtok.0 comp-c-catman .cat ./usr/share/man/cat3/strtok_r.0 comp-c-catman .cat @@ -9178,6 +9179,7 @@ ./usr/share/man/cat3/strtold.0 comp-c-catman .cat ./usr/share/man/cat3/strtoll.0 comp-c-catman .cat ./usr/share/man/cat3/strtoq.0 comp-c-catman .cat +./usr/share/man/cat3/strtou.0 comp-c-catman .cat ./usr/share/man/cat3/strtoul.0 comp-c-catman .cat ./usr/share/man/cat3/strtoull.0 comp-c-catman .cat ./usr/share/man/cat3/strtoumax.0 comp-c-catman .cat @@ -15962,6 +15964,7 @@ ./usr/share/man/html3/strsvisx.html comp-c-htmlman html ./usr/share/man/html3/strtod.html comp-c-htmlman html ./usr/share/man/html3/strtof.html comp-c-htmlman html +./usr/share/man/html3/strtoi.html comp-c-htmlman html ./usr/share/man/html3/strtoimax.html comp-c-htmlman html ./usr/share/man/html3/strtok.html comp-c-htmlman html ./usr/share/man/html3/strtok_r.html comp-c-htmlman html @@ -15969,6 +15972,7 @@ ./usr/share/man/html3/strtold.html comp-c-htmlman html ./usr/share/man/html3/strtoll.html comp-c-htmlman html ./usr/share/man/html3/strtoq.html comp-c-htmlman html +./usr/share/man/html3/strtou.html comp-c-htmlman html ./usr/share/man/html3/strtoul.html comp-c-htmlman html ./usr/share/man/html3/strtoull.html comp-c-htmlman html ./usr/share/man/html3/strtoumax.html comp-c-htmlman html @@ -22789,6 +22793,7 @@ ./usr/share/man/man3/strsvisx.3 comp-c-man .man ./usr/share/man/man3/strtod.3 comp-c-man .man ./usr/share/man/man3/strtof.3 comp-c-man .man +./usr/share/man/man3/strtoi.3 comp-c-man .man ./usr/share/man/man3/strtoimax.3 comp-c-man .man ./usr/share/man/man3/strtok.3 comp-c-man .man ./usr/share/man/man3/strtok_r.3 comp-c-man .man @@ -22796,6 +22801,7 @@ ./usr/share/man/man3/strtold.3 comp-c-man .man ./usr/share/man/man3/strtoll.3 comp-c-man .man ./usr/share/man/man3/strtoq.3 comp-c-man .man +./usr/share/man/man3/strtou.3 comp-c-man .man ./usr/share/man/man3/strtoul.3 comp-c-man .man ./usr/share/man/man3/strtoull.3 comp-c-man .man ./usr/share/man/man3/strtoumax.3 comp-c-man .man Index: src/distrib/sets/lists/debug/ad.aarch64 diff -u src/distrib/sets/lists/debug/ad.aarch64:1.2.2.4 src/distrib/sets/lists/debug/ad.aarch64:1.2.2.5 --- src/distrib/sets/lists/debug/ad.aarch64:1.2.2.4 Sat Jan 17 11:16:39 2015 +++ src/distrib/sets/lists/debug/ad.aarch64 Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.aarch64,v 1.2.2.4 2015/01/17 11:16:39 martin Exp $ +# $NetBSD: ad.aarch64,v 1.2.2.5 2015/04/22 07:18:58 snj Exp $ -./usr/libdata/debug/usr/tests/lib/libc/gen/t_fpsetmask.debug -./usr/libdata/debug/usr/tests/lib/libc/gen/t_fpsetround.debug ./usr/lib/eabi/libcrypto_g.a comp-c-debuglib compat,crypto,debuglib @@ -66,7 +66,7 @@ ./usr/libdata/debug/usr/lib/eabi/libbluetooth.so.4.2.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/eabi/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/eabi/libbz2.so.1.1.debug comp-sys-debug debug,compat -./usr/libdata/debug/usr/lib/eabi/libc.so.12.193.debug comp-sys-debug debug,compat +./usr/libdata/debug/usr/lib/eabi/libc.so.12.193.1.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/eabi/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug ./usr/libdata/debug/usr/lib/eabi/libcrypt.so.1.0.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/eabi/libcrypto.so.8.4.debug comp-crypto-debug crypto,debug,compat @@ -218,7 +218,7 @@ #./usr/libdata/debug/usr/lib/eabihf/libbluetooth.so.4.2.debug comp-sys-debug debug,compat #./usr/libdata/debug/usr/lib/eabihf/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat #./usr/libdata/debug/usr/lib/eabihf/libbz2.so.1.1.debug comp-sys-debug debug,compat -#./usr/libdata/debug/usr/lib/eabihf/libc.so.12.193.debug comp-sys-debug debug,compat +#./usr/libdata/debug/usr/lib/eabihf/libc.so.12.193.1.debug comp-sys-debug debug,compat #./usr/libdata/debug/usr/lib/eabihf/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug #./usr/libdata/debug/usr/lib/eabihf/libcrypt.so.1.0.debug comp-sys-debug debug,compat #./usr/libdata/debug/usr/lib/eabihf/libcrypto.so.8.4.debug comp-crypto-debug crypto,debug,compat @@ -370,7 +370,7 @@ ./usr/libdata/debug/usr/lib/oabi/libbluetooth.so.4.2.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libbz2.so.1.1.debug comp-sys-debug debug,compat -./usr/libdata/debug/usr/lib/oabi/libc.so.12.193.debug comp-sys-debug debug,compat +./usr/libdata/debug/usr/lib/oabi/libc.so.12.193.1.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug ./usr/libdata/debug/usr/lib/oabi/libcrypt.so.1.0.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libcrypto.so.8.4.debug comp-crypto-debug crypto,debug,compat Index: src/distrib/sets/lists/debug/ad.arm diff -u src/distrib/sets/lists/debug/ad.arm:1.42.2.5 src/distrib/sets/lists/debug/ad.arm:1.42.2.6 --- src/distrib/sets/lists/debug/ad.arm:1.42.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/debug/ad.arm Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.arm,v 1.42.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: ad.arm,v 1.42.2.6 2015/04/22 07:18:58 snj Exp $ ./usr/lib/libarm_g.a comp-c-debuglib debuglib ./usr/lib/libc_vfp_g.a comp-c-debuglib debuglib,softfloat ./usr/lib/libpmc_g.a comp-c-debuglib debuglib @@ -66,7 +66,7 @@ ./usr/libdata/debug/usr/lib/oabi/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libbz2.so.1.1.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libc++.so.1.0.debug comp-sys-debug debug,compat,pic,libcxx -./usr/libdata/debug/usr/lib/oabi/libc.so.12.193.debug comp-sys-debug debug,compat +./usr/libdata/debug/usr/lib/oabi/libc.so.12.193.1.debug comp-sys-debug debug,compat ./usr/libdata/debug/usr/lib/oabi/libc_vfp.so.0.0.debug comp-sys-debug debug,compat,pic ./usr/libdata/debug/usr/lib/oabi/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete ./usr/libdata/debug/usr/lib/oabi/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug Index: src/distrib/sets/lists/debug/ad.mips diff -u src/distrib/sets/lists/debug/ad.mips:1.38.2.5 src/distrib/sets/lists/debug/ad.mips:1.38.2.6 --- src/distrib/sets/lists/debug/ad.mips:1.38.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/debug/ad.mips Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.mips,v 1.38.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: ad.mips,v 1.38.2.6 2015/04/22 07:18:58 snj Exp $ ./usr/lib/64/libcrypto_g.a comp-c-debuglib compat,crypto,debuglib,arch64 ./usr/lib/64/libcrypto_idea_g.a comp-obsolete obsolete ./usr/lib/64/libcrypto_mdc2_g.a comp-obsolete obsolete @@ -72,7 +72,7 @@ ./usr/libdata/debug/usr/lib/64/libbluetooth.so.4.2.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/64/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/64/libbz2.so.1.1.debug comp-sys-debug debug,compat,arch64 -./usr/libdata/debug/usr/lib/64/libc.so.12.193.debug comp-sys-debug debug,compat,arch64 +./usr/libdata/debug/usr/lib/64/libc.so.12.193.1.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/64/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete,arch64 ./usr/libdata/debug/usr/lib/64/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug,arch64 ./usr/libdata/debug/usr/lib/64/libcrypt.so.1.0.debug comp-sys-debug debug,compat,arch64 @@ -250,7 +250,7 @@ ./usr/libdata/debug/usr/lib/o32/libbluetooth.so.4.2.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/o32/libbsdmalloc.so.0.0.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/o32/libbz2.so.1.1.debug comp-sys-debug debug,compat,arch64 -./usr/libdata/debug/usr/lib/o32/libc.so.12.193.debug comp-sys-debug debug,compat,arch64 +./usr/libdata/debug/usr/lib/o32/libc.so.12.193.1.debug comp-sys-debug debug,compat,arch64 ./usr/libdata/debug/usr/lib/o32/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete,arch64 ./usr/libdata/debug/usr/lib/o32/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug,arch64 ./usr/libdata/debug/usr/lib/o32/libcrypt.so.1.0.debug comp-sys-debug debug,compat,arch64 Index: src/distrib/sets/lists/debug/ad.powerpc diff -u src/distrib/sets/lists/debug/ad.powerpc:1.18.2.5 src/distrib/sets/lists/debug/ad.powerpc:1.18.2.6 --- src/distrib/sets/lists/debug/ad.powerpc:1.18.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/debug/ad.powerpc Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: ad.powerpc,v 1.18.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: ad.powerpc,v 1.18.2.6 2015/04/22 07:18:58 snj Exp $ ./usr/lib/powerpc/libamu_g.a comp-c-debuglib compat,arch64,debuglib ./usr/lib/powerpc/libarchive_g.a comp-c-debuglib compat,arch64,debuglib ./usr/lib/powerpc/libasan_g.a comp-c-debuglib compat,arch64,debuglib,gcc=48 @@ -156,7 +156,7 @@ ./usr/libdata/debug/usr/lib/powerpc/libbluetooth.so.4.2.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libbz2.so.1.1.debug comp-compat-shlib compat,arch64,debug,pic -./usr/libdata/debug/usr/lib/powerpc/libc.so.12.193.debug comp-compat-shlib compat,arch64,debug,pic +./usr/libdata/debug/usr/lib/powerpc/libc.so.12.193.1.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libcom_err.so.7.0.debug comp-compat-shlib compat,arch64,debug,pic,kerberos ./usr/libdata/debug/usr/lib/powerpc/libcrypt.so.1.0.debug comp-compat-shlib compat,arch64,debug,pic ./usr/libdata/debug/usr/lib/powerpc/libcrypto.so.8.4.debug comp-compat-shlib compat,arch64,debug,pic,crypto Index: src/distrib/sets/lists/debug/md.amd64 diff -u src/distrib/sets/lists/debug/md.amd64:1.63.2.5 src/distrib/sets/lists/debug/md.amd64:1.63.2.6 --- src/distrib/sets/lists/debug/md.amd64:1.63.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/debug/md.amd64 Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: md.amd64,v 1.63.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: md.amd64,v 1.63.2.6 2015/04/22 07:18:58 snj Exp $ ./usr/lib/i386/i18n/libBIG5_g.a comp-c-debuglib compat,debuglib ./usr/lib/i386/i18n/libDECHanyu_g.a comp-c-debuglib compat,debuglib ./usr/lib/i386/i18n/libEUCTW_g.a comp-c-debuglib compat,debuglib @@ -202,7 +202,7 @@ ./usr/libdata/debug/usr/lib/i386/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/i386/libbz2.so.1.1.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/i386/libc++.so.1.0.debug comp-compat-shlib compat,pic,debug,libcxx -./usr/libdata/debug/usr/lib/i386/libc.so.12.193.debug comp-compat-shlib compat,pic,debug +./usr/libdata/debug/usr/lib/i386/libc.so.12.193.1.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/i386/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete ./usr/libdata/debug/usr/lib/i386/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug ./usr/libdata/debug/usr/lib/i386/libcrypt.so.1.0.debug comp-compat-shlib compat,pic,debug Index: src/distrib/sets/lists/debug/md.sparc64 diff -u src/distrib/sets/lists/debug/md.sparc64:1.61.2.5 src/distrib/sets/lists/debug/md.sparc64:1.61.2.6 --- src/distrib/sets/lists/debug/md.sparc64:1.61.2.5 Sun Feb 8 22:15:02 2015 +++ src/distrib/sets/lists/debug/md.sparc64 Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: md.sparc64,v 1.61.2.5 2015/02/08 22:15:02 snj Exp $ +# $NetBSD: md.sparc64,v 1.61.2.6 2015/04/22 07:18:58 snj Exp $ ./usr/lib/sparc/i18n/libBIG5_g.a comp-obsolete obsolete ./usr/lib/sparc/i18n/libDECHanyu_g.a comp-obsolete obsolete ./usr/lib/sparc/i18n/libEUCTW_g.a comp-obsolete obsolete @@ -199,7 +199,7 @@ ./usr/libdata/debug/usr/lib/sparc/libbluetooth.so.4.2.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/sparc/libbsdmalloc.so.0.0.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/sparc/libbz2.so.1.1.debug comp-compat-shlib compat,pic,debug -./usr/libdata/debug/usr/lib/sparc/libc.so.12.193.debug comp-compat-shlib compat,pic,debug +./usr/libdata/debug/usr/lib/sparc/libc.so.12.193.1.debug comp-compat-shlib compat,pic,debug ./usr/libdata/debug/usr/lib/sparc/libcom_err.so.6.0.debug comp-compat-shlib compat,pic,kerberos,debug,obsolete ./usr/libdata/debug/usr/lib/sparc/libcom_err.so.7.0.debug comp-compat-shlib compat,pic,kerberos,debug ./usr/libdata/debug/usr/lib/sparc/libcrypt.so.1.0.debug comp-compat-shlib compat,pic,debug Index: src/distrib/sets/lists/debug/shl.mi diff -u src/distrib/sets/lists/debug/shl.mi:1.71.2.9 src/distrib/sets/lists/debug/shl.mi:1.71.2.10 --- src/distrib/sets/lists/debug/shl.mi:1.71.2.9 Sun Jan 25 00:19:25 2015 +++ src/distrib/sets/lists/debug/shl.mi Wed Apr 22 07:18:58 2015 @@ -1,5 +1,5 @@ -# $NetBSD: shl.mi,v 1.71.2.9 2015/01/25 00:19:25 martin Exp $ -./usr/libdata/debug/lib/libc.so.12.193.debug comp-sys-debug debug +# $NetBSD: shl.mi,v 1.71.2.10 2015/04/22 07:18:58 snj Exp $ +./usr/libdata/debug/lib/libc.so.12.193.1.debug comp-sys-debug debug ./usr/libdata/debug/lib/libcrypt.so.1.0.debug comp-sys-debug debug ./usr/libdata/debug/lib/libcrypto.so.8.4.debug comp-sys-debug debug ./usr/libdata/debug/lib/libdevmapper.so.1.0.debug comp-sys-debug debug @@ -62,7 +62,7 @@ ./usr/libdata/debug/usr/lib/libbsdmalloc.so.0.0.debug comp-sys-debug debug ./usr/libdata/debug/usr/lib/libbz2.so.1.1.debug comp-sys-debug debug ./usr/libdata/debug/usr/lib/libc++.so.1.0.debug comp-sys-debug debug,libcxx -./usr/libdata/debug/usr/lib/libc.so.12.193.debug comp-sys-debug debug +./usr/libdata/debug/usr/lib/libc.so.12.193.1.debug comp-sys-debug debug ./usr/libdata/debug/usr/lib/libcom_err.so.7.0.debug comp-krb5-debug kerberos,debug ./usr/libdata/debug/usr/lib/libcrypt.so.1.0.debug comp-sys-debug debug ./usr/libdata/debug/usr/lib/libcrypto.so.8.4.debug comp-crypto-debug crypto,debug Index: src/include/inttypes.h diff -u src/include/inttypes.h:1.10 src/include/inttypes.h:1.10.6.1 --- src/include/inttypes.h:1.10 Sat Apr 27 21:24:27 2013 +++ src/include/inttypes.h Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: inttypes.h,v 1.10 2013/04/27 21:24:27 joerg Exp $ */ +/* $NetBSD: inttypes.h,v 1.10.6.1 2015/04/22 07:18:58 snj Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -75,6 +75,21 @@ intmax_t wcstoimax_l(const wchar_t * __r uintmax_t wcstoumax_l(const wchar_t * __restrict, wchar_t ** __restrict, int, locale_t); #endif + + +#if defined(_NETBSD_SOURCE) +intmax_t strtoi(const char * __restrict, char ** __restrict, int, + intmax_t, intmax_t, int *); +uintmax_t strtou(const char * __restrict, char ** __restrict, int, + uintmax_t, uintmax_t, int *); + +/* i18n variations */ +intmax_t strtoi_l(const char * __restrict, char ** __restrict, int, + intmax_t, intmax_t, int *, locale_t); +uintmax_t strtou_l(const char * __restrict, char ** __restrict, int, + uintmax_t, uintmax_t, int *, locale_t); +#endif /* defined(_NETBSD_SOURCE) */ + __END_DECLS #endif /* !_INTTYPES_H_ */ Index: src/lib/libc/shlib_version diff -u src/lib/libc/shlib_version:1.254 src/lib/libc/shlib_version:1.254.2.1 --- src/lib/libc/shlib_version:1.254 Fri Jul 25 08:31:06 2014 +++ src/lib/libc/shlib_version Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: shlib_version,v 1.254 2014/07/25 08:31:06 dholland Exp $ +# $NetBSD: shlib_version,v 1.254.2.1 2015/04/22 07:18:58 snj Exp $ # Remember to update distrib/sets/lists/base/shl.* when changing # # things we wish to do on next major version bump: @@ -43,3 +43,4 @@ # - remove arc4random(3) API major=12 minor=193 +teeny=1 Index: src/lib/libc/stdlib/Makefile.inc diff -u src/lib/libc/stdlib/Makefile.inc:1.82 src/lib/libc/stdlib/Makefile.inc:1.82.2.1 --- src/lib/libc/stdlib/Makefile.inc:1.82 Sun Jul 20 13:34:17 2014 +++ src/lib/libc/stdlib/Makefile.inc Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.82 2014/07/20 13:34:17 christos Exp $ +# $NetBSD: Makefile.inc,v 1.82.2.1 2015/04/22 07:18:58 snj Exp $ # from: @(#)Makefile.inc 8.3 (Berkeley) 2/4/95 # stdlib sources @@ -13,6 +13,7 @@ SRCS+= _env.c _rand48.c \ nrand48.c putenv.c qabs.c qdiv.c qsort.c posix_openpt.c pty.c \ quick_exit.c radixsort.c rand.c rand_r.c random.c remque.c \ seed48.c setenv.c srand48.c strsuftoll.c \ + strtoi.c strtou.c \ strtoimax.c strtol.c strtoll.c strtoq.c strtoul.c strtoull.c \ strtoumax.c strtouq.c system.c tdelete.c tfind.c tsearch.c twalk.c \ unsetenv.c strfmon.c @@ -84,7 +85,9 @@ MLINKS+=strtod.3 strtof.3 strtod.3 strto MLINKS+=strtol.3 strtoimax.3 MLINKS+=strtol.3 strtoll.3 MLINKS+=strtol.3 strtoq.3 +MLINKS+=strtol.3 strtoi.3 MLINKS+=strtoul.3 strtoull.3 MLINKS+=strtoul.3 strtoumax.3 MLINKS+=strtoul.3 strtouq.3 +MLINKS+=strtoul.3 strtou.3 MLINKS+=tsearch.3 tfind.3 tsearch.3 twalk.3 tsearch.3 tdelete.3 Index: src/lib/libc/stdlib/strtol.3 diff -u src/lib/libc/stdlib/strtol.3:1.26 src/lib/libc/stdlib/strtol.3:1.26.24.1 --- src/lib/libc/stdlib/strtol.3:1.26 Thu Jul 23 13:38:57 2009 +++ src/lib/libc/stdlib/strtol.3 Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -.\" $NetBSD: strtol.3,v 1.26 2009/07/23 13:38:57 wiz Exp $ +.\" $NetBSD: strtol.3,v 1.26.24.1 2015/04/22 07:18:58 snj Exp $ .\" .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. @@ -33,10 +33,11 @@ .\" .\" from: @(#)strtol.3 8.1 (Berkeley) 6/4/93 .\" -.Dd July 23, 2009 +.Dd March 10, 2015 .Dt STRTOL 3 .Os .Sh NAME +.Nm strtoi , .Nm strtol , .Nm strtoll , .Nm strtoimax , @@ -54,6 +55,8 @@ .Pp .In inttypes.h .Ft intmax_t +.Fn strtoi "const char * restrict nptr" "char ** restrict endptr" "int base" "intmax_t lo" "intmax_t hi" "int *rstatus" +.Ft intmax_t .Fn strtoimax "const char * restrict nptr" "char ** restrict endptr" "int base" .Pp .In sys/types.h @@ -87,6 +90,30 @@ to an .Ft intmax_t value. The +.Fn strtoi +function +uses internally +.Fn strtoimax +and ensures that the result is always in the range [ +.Fa lo .. +.Fa hi +]. +In adddition it always places +.Dv 0 +on success or a conversion status in the +.Fa rstatus +argument, avoiding the +.Dv errno +gymnastics the other functions require. +The +.Fn strtoi +function doesn't affect errno on exit. +The +.Fa rstatus +argument can be +.Dv NULL +if conversion status is to be ignored. +The .Fn strtoq function converts the string in @@ -156,6 +183,15 @@ is on return, the entire string was valid.) .Sh RETURN VALUES The +.Fn strtoi +function +always returns the closest value in the range specified by +the +.Fa lo +and +.Fa hi +arguments. +The .Fn strtol function returns the result of the conversion, @@ -200,6 +236,21 @@ is left unchanged. This behavior (which is unlike most library functions) is guaranteed by the pertinent standards. .Sh EXAMPLES +The +.Fn strtoi +function is the simplest to use: +.Bd -literal -offset indent +int e; +intmax_t lval = strtoi(buf, NULL, 0, 1, 99, &e); +if (e) + warnc(e, "conversion of `%s' to a number failed, using %jd", + buf, lval); +.Ed +.Pp +This will always return a number in +.Dv [1..99] +range no matter what the input is, and warn if the conversion failed. +.Pp Because the return value of .Fn strtol cannot be used unambiguously to detect an error, @@ -269,12 +320,31 @@ is not between 2 and 36 and does not con .It Bq Er ERANGE The given string was out of range; the value converted has been clamped. .El +.Pp +In addition to the above errors +.Fn strtoi +returns: +.Bl -tag -width Er +.It Bq Er ECANCELED +The string did not contain any characters that were converted. +.It Bq Er ENOTSUP +The string contained non-numeric characters that did not get converted. +In this case, +.Fa endptr +points to the first unconverted character. +.It Bq Er ERANGE +The range given was invalid, i.e. +.Fa lo +\*[Gt] +.Fa hi . +.El .Sh SEE ALSO .Xr atof 3 , .Xr atoi 3 , .Xr atol 3 , .Xr atoll 3 , .Xr strtod 3 , +.Xr strtou 3 , .Xr strtoul 3 , .Xr strtoull 3 , .Xr strtoumax 3 @@ -290,5 +360,9 @@ and .Fn strtoimax functions conform to .St -isoC-99 . +The +.Fn strtoi +function appeared in +.Nx 8 . .Sh BUGS Ignores the current locale. Index: src/lib/libc/stdlib/strtoul.3 diff -u src/lib/libc/stdlib/strtoul.3:1.25 src/lib/libc/stdlib/strtoul.3:1.25.24.1 --- src/lib/libc/stdlib/strtoul.3:1.25 Wed Dec 2 12:50:27 2009 +++ src/lib/libc/stdlib/strtoul.3 Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -.\" $NetBSD: strtoul.3,v 1.25 2009/12/02 12:50:27 pooka Exp $ +.\" $NetBSD: strtoul.3,v 1.25.24.1 2015/04/22 07:18:58 snj Exp $ .\" .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. @@ -33,10 +33,11 @@ .\" .\" from: @(#)strtoul.3 8.1 (Berkeley) 6/4/93 .\" -.Dd December 2, 2009 +.Dd March 10, 2015 .Dt STRTOUL 3 .Os .Sh NAME +.Nm strtou , .Nm strtoul , .Nm strtoull , .Nm strtoumax , @@ -54,6 +55,8 @@ .Pp .In inttypes.h .Ft uintmax_t +.Fn strtou "const char * restrict nptr" "char ** restrict endptr" "int base" "uintmax_t lo" "uintmax_t hi" "int *rstatus" +.Ft uintmax_t .Fn strtoumax "const char * restrict nptr" "char ** restrict endptr" "int base" .Pp .In sys/types.h @@ -86,6 +89,26 @@ converts the string in to an .Ft uintmax_t value. +.Fn strtou +function +uses internally +.Fn strtoumax +and ensures that the result is always in the range [ +.Fa lo .. +.Fa hi +]. +In adddition it always places +.Dv 0 +on success or a conversion status in the +.Fa rstatus +argument, avoiding the +.Dv errno +gymnastics the other functions require. +The +.Fa rstatus +argument can be +.Dv NULL +if conversion status is to be ignored. The .Fn strtouq function @@ -157,6 +180,15 @@ is on return, the entire string was valid.) .Sh RETURN VALUES The +.Fn strtou +function +always returns the closest value in the range specified by +the +.Fa lo +and +.Fa hi +arguments. +The .Fn strtoul function returns either the result of the conversion @@ -201,6 +233,21 @@ is left unchanged. This behavior (which is unlike most library functions) is guaranteed by the pertinent standards. .Sh EXAMPLES +The +.Fn strtou +function is the simplest to use: +.Bd -literal -offset indent +int e; +uintmax_t lval = strtou(buf, NULL, 0, 1, 99, &e); +if (e) + warnc(e, "conversion of `%s' to a number failed, using %ju", + buf, lval); +.Ed +.Pp +This will always return a number in +.Dv [1..99] +range no matter what the input is, and warn if the conversion failed. +.Pp Because the return value of .Fn strtoul cannot be used unambiguously to detect an error, @@ -243,7 +290,26 @@ is not between 2 and 36 and does not con .It Bq Er ERANGE The given string was out of range; the value converted has been clamped. .El +.Pp +In addition to the above errors +.Fn strtou +returns: +.Bl -tag -width Er +.It Bq Er ECANCELED +The string did not contain any characters that were converted. +.It Bq Er ENOTSUP +The string contained non-numeric characters that did not get converted. +In this case, +.Fa endptr +points to the first unconverted character. +.It Bq Er ERANGE +The range given was invalid, i.e. +.Fa lo +\*[Gt] +.Fa hi . +.El .Sh SEE ALSO +.Xr strtoi 3 , .Xr strtoimax 3 , .Xr strtol 3 , .Xr strtoll 3 @@ -259,5 +325,9 @@ and .Fn strtoumax functions conform to .St -isoC-99 . +The +.Fn strtou +function appeared in +.Nx 8 . .Sh BUGS Ignores the current locale. Index: src/sys/lib/libkern/Makefile.libkern diff -u src/sys/lib/libkern/Makefile.libkern:1.35 src/sys/lib/libkern/Makefile.libkern:1.35.2.1 --- src/sys/lib/libkern/Makefile.libkern:1.35 Sun Aug 10 16:44:36 2014 +++ src/sys/lib/libkern/Makefile.libkern Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.libkern,v 1.35 2014/08/10 16:44:36 tls Exp $ +# $NetBSD: Makefile.libkern,v 1.35.2.1 2015/04/22 07:18:58 snj Exp $ # # Variable definitions for libkern. @@ -73,6 +73,7 @@ SRCS+= memset.c SRCS+= popcount32.c popcount64.c SRCS+= strtoul.c strtoll.c strtoull.c strtoimax.c strtoumax.c +SRCS+= strtoi.c strtou.c SRCS+= scanc.c skpc.c SRCS+= random.c Index: src/sys/lib/libkern/libkern.h diff -u src/sys/lib/libkern/libkern.h:1.115 src/sys/lib/libkern/libkern.h:1.115.2.1 --- src/sys/lib/libkern/libkern.h:1.115 Sun Aug 10 16:44:36 2014 +++ src/sys/lib/libkern/libkern.h Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: libkern.h,v 1.115 2014/08/10 16:44:36 tls Exp $ */ +/* $NetBSD: libkern.h,v 1.115.2.1 2015/04/22 07:18:58 snj Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -403,6 +403,11 @@ long long strtoll(const char *, char **, unsigned long long strtoull(const char *, char **, int); intmax_t strtoimax(const char *, char **, int); uintmax_t strtoumax(const char *, char **, int); +intmax_t strtoi(const char * __restrict, char ** __restrict, int, intmax_t, + intmax_t, int *); +uintmax_t strtou(const char * __restrict, char ** __restrict, int, uintmax_t, + uintmax_t, int *); + int snprintb(char *, size_t, const char *, uint64_t); int snprintb_m(char *, size_t, const char *, uint64_t, size_t); int kheapsort(void *, size_t, size_t, int (*)(const void *, const void *), Index: src/tools/compat/Makefile diff -u src/tools/compat/Makefile:1.72 src/tools/compat/Makefile:1.72.4.1 --- src/tools/compat/Makefile:1.72 Thu Jan 16 17:24:56 2014 +++ src/tools/compat/Makefile Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.72 2014/01/16 17:24:56 christos Exp $ +# $NetBSD: Makefile,v 1.72.4.1 2015/04/22 07:18:58 snj Exp $ HOSTLIB= nbcompat @@ -20,6 +20,7 @@ SRCS= atoll.c basename.c cdbr.c cdbw.c stat_flags.c strlcat.c strlcpy.c strmode.c \ strndup.c strnlen.c \ strsep.c strsuftoll.c strtoll.c \ + strtoi.c strtou.c \ unvis.c vis.c err.c errx.c errc.c verr.c verrx.c verrc.c \ vwarn.c vwarnx.c vwarnc.c warn.c warnx.c warnc.c \ fts.c glob.c efun.c Index: src/tools/compat/compat_defs.h diff -u src/tools/compat/compat_defs.h:1.97.2.1 src/tools/compat/compat_defs.h:1.97.2.2 --- src/tools/compat/compat_defs.h:1.97.2.1 Wed Nov 12 18:50:55 2014 +++ src/tools/compat/compat_defs.h Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_defs.h,v 1.97.2.1 2014/11/12 18:50:55 snj Exp $ */ +/* $NetBSD: compat_defs.h,v 1.97.2.2 2015/04/22 07:18:58 snj Exp $ */ #ifndef __NETBSD_COMPAT_DEFS_H__ #define __NETBSD_COMPAT_DEFS_H__ @@ -520,6 +520,16 @@ long long strsuftollx(const char *, cons long long strtoll(const char *, char **, int); #endif +#if !HAVE_STRTOI +intmax_t strtoi(const char * __restrict, char ** __restrict, int, + intmax_t, intmax_t, int *); +#endif + +#if !HAVE_STRTOU +uintmax_t strtou(const char * __restrict, char ** __restrict, int, + uintmax_t, uintmax_t, int *); +#endif + #if !HAVE_USER_FROM_UID const char *user_from_uid(uid_t, int); #endif Index: src/tools/compat/configure diff -u src/tools/compat/configure:1.81 src/tools/compat/configure:1.81.2.1 --- src/tools/compat/configure:1.81 Fri Jun 6 01:40:40 2014 +++ src/tools/compat/configure Wed Apr 22 07:18:58 2015 @@ -5047,7 +5047,7 @@ for ac_func in atoll asprintf asnprintf pwrite raise_default_signal random setenv \ setgroupent setprogname setpassent \ snprintb_m snprintf strlcat strlcpy strmode \ - strndup strnlen strsep strsuftoll strtoll \ + strndup strnlen strsep strsuftoll strtoi strtoll strtou \ user_from_uid uid_from_user vasprintf vasnprintf vsnprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` Index: src/tools/compat/configure.ac diff -u src/tools/compat/configure.ac:1.82 src/tools/compat/configure.ac:1.82.2.1 --- src/tools/compat/configure.ac:1.82 Fri Jun 6 01:40:40 2014 +++ src/tools/compat/configure.ac Wed Apr 22 07:18:58 2015 @@ -1,4 +1,4 @@ -# $NetBSD: configure.ac,v 1.82 2014/06/06 01:40:40 christos Exp $ +# $NetBSD: configure.ac,v 1.82.2.1 2015/04/22 07:18:58 snj Exp $ # # Autoconf definition file for libnbcompat. # @@ -160,7 +160,7 @@ AC_CHECK_FUNCS(atoll asprintf asnprintf pwrite raise_default_signal random setenv \ setgroupent setprogname setpassent \ snprintb_m snprintf strlcat strlcpy strmode \ - strndup strnlen strsep strsuftoll strtoll \ + strndup strnlen strsep strsuftoll strtoi strtoll strtou \ user_from_uid uid_from_user vasprintf vasnprintf vsnprintf) AC_CHECK_DECLS([user_from_uid, uid_from_user, pwcache_userdb],,,[ Index: src/tools/compat/nbtool_config.h.in diff -u src/tools/compat/nbtool_config.h.in:1.35 src/tools/compat/nbtool_config.h.in:1.35.2.1 --- src/tools/compat/nbtool_config.h.in:1.35 Fri Jun 6 01:40:40 2014 +++ src/tools/compat/nbtool_config.h.in Wed Apr 22 07:18:58 2015 @@ -1,6 +1,6 @@ /* nbtool_config.h.in. Generated automatically from configure.ac by autoheader. */ -/* $NetBSD: nbtool_config.h.in,v 1.35 2014/06/06 01:40:40 christos Exp $ */ +/* $NetBSD: nbtool_config.h.in,v 1.35.2.1 2015/04/22 07:18:58 snj Exp $ */ #ifndef __NETBSD_NBTOOL_CONFIG_H__ #define __NETBSD_NBTOOL_CONFIG_H__ @@ -491,9 +491,15 @@ /* Define if you have the `strsuftoll' function. */ #undef HAVE_STRSUFTOLL +/* Define if you have the `strtoi' function. */ +#undef HAVE_STRTOI + /* Define if you have the `strtoll' function. */ #undef HAVE_STRTOLL +/* Define if you have the `strtou' function. */ +#undef HAVE_STRTOU + /* Define if `d_namlen' is member of `struct dirent'. */ #undef HAVE_STRUCT_DIRENT_D_NAMLEN Added files: Index: src/common/lib/libc/stdlib/_strtoi.h diff -u /dev/null src/common/lib/libc/stdlib/_strtoi.h:1.2.2.2 --- /dev/null Wed Apr 22 07:18:59 2015 +++ src/common/lib/libc/stdlib/_strtoi.h Wed Apr 22 07:18:57 2015 @@ -0,0 +1,144 @@ +/* $NetBSD: _strtoi.h,v 1.2.2.2 2015/04/22 07:18:57 snj Exp $ */ + +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Original version ID: + * NetBSD: src/lib/libc/locale/_wcstoul.h,v 1.2 2003/08/07 16:43:03 agc Exp + * + * Created by Kamil Rytarowski, based on ID: + * NetBSD: src/common/lib/libc/stdlib/_strtoul.h,v 1.7 2013/05/17 12:55:56 joerg Exp + */ + +/* + * function template for strtoi and strtou + * + * parameters: + * _FUNCNAME : function name + * __TYPE : return and range limits type + * __WRAPPED : wrapped function, strtoimax or strtoumax + */ + +#define __WRAPPED_L_(x) x ## _l +#define __WRAPPED_L__(x) __WRAPPED_L_(x) +#define __WRAPPED_L __WRAPPED_L__(__WRAPPED) + +#if defined(_KERNEL) || defined(_STANDALONE) || \ + defined(HAVE_NBTOOL_CONFIG_H) || defined(BCS_ONLY) +__TYPE +_FUNCNAME(const char * __restrict nptr, char ** __restrict endptr, int base, + __TYPE lo, __TYPE hi, int * rstatus) +#else +#include <locale.h> +#include "setlocale_local.h" +#define INT_FUNCNAME_(pre, name, post) pre ## name ## post +#define INT_FUNCNAME(pre, name, post) INT_FUNCNAME_(pre, name, post) + +static __TYPE +INT_FUNCNAME(_int_, _FUNCNAME, _l)(const char * __restrict nptr, + char ** __restrict endptr, int base, + __TYPE lo, __TYPE hi, int * rstatus, locale_t loc) +#endif +{ +#if !defined(_KERNEL) && !defined(_STANDALONE) + int serrno; +#endif + __TYPE im; + char *ep; + int rep; + + _DIAGASSERT(hi >= lo); + + _DIAGASSERT(nptr != NULL); + /* endptr may be NULL */ + + if (endptr == NULL) + endptr = &ep; + + if (rstatus == NULL) + rstatus = &rep; + +#if !defined(_KERNEL) && !defined(_STANDALONE) + serrno = errno; + errno = 0; +#endif + +#if defined(_KERNEL) || defined(_STANDALONE) || \ + defined(HAVE_NBTOOL_CONFIG_H) || defined(BCS_ONLY) + im = __WRAPPED(nptr, endptr, base); +#else + im = __WRAPPED_L(nptr, endptr, base, loc); +#endif + +#if !defined(_KERNEL) && !defined(_STANDALONE) + *rstatus = errno; + errno = serrno; +#endif + + if (*rstatus == 0) { + /* No digits were found */ + if (nptr == *endptr) + *rstatus = ECANCELED; + /* There are further characters after number */ + else if (**endptr != '\0') + *rstatus = ENOTSUP; + } + + if (im < lo) { + if (*rstatus == 0) + *rstatus = ERANGE; + return lo; + } + if (im > hi) { + if (*rstatus == 0) + *rstatus = ERANGE; + return hi; + } + + return im; +} + +#if !defined(_KERNEL) && !defined(_STANDALONE) && \ + !defined(HAVE_NBTOOL_CONFIG_H) && !defined(BCS_ONLY) +__TYPE +_FUNCNAME(const char * __restrict nptr, char ** __restrict endptr, int base, + __TYPE lo, __TYPE hi, int * rstatus) +{ + return INT_FUNCNAME(_int_, _FUNCNAME, _l)(nptr, endptr, base, lo, hi, + rstatus, _current_locale()); +} + +__TYPE +INT_FUNCNAME(, _FUNCNAME, _l)(const char * __restrict nptr, + char ** __restrict endptr, int base, + __TYPE lo, __TYPE hi, int * rstatus, locale_t loc) +{ + return INT_FUNCNAME(_int_, _FUNCNAME, _l)(nptr, endptr, base, lo, hi, + rstatus, loc); +} +#endif Index: src/common/lib/libc/stdlib/strtoi.c diff -u /dev/null src/common/lib/libc/stdlib/strtoi.c:1.1.2.2 --- /dev/null Wed Apr 22 07:18:59 2015 +++ src/common/lib/libc/stdlib/strtoi.c Wed Apr 22 07:18:57 2015 @@ -0,0 +1,62 @@ +/* $NetBSD: strtoi.c,v 1.1.2.2 2015/04/22 07:18:57 snj Exp $ */ + +/*- + * Copyright (c) 2005 The DragonFly Project. All rights reserved. + * Copyright (c) 2003 Citrus Project, + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Created by Kamil Rytarowski, based on ID: + * NetBSD: src/common/lib/libc/stdlib/strtoul.c,v 1.3 2008/08/20 19:58:34 oster Exp + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include <sys/cdefs.h> +__RCSID("$NetBSD: strtoi.c,v 1.1.2.2 2015/04/22 07:18:57 snj Exp $"); + +#if defined(_KERNEL) +#include <sys/param.h> +#include <sys/types.h> +#include <lib/libkern/libkern.h> +#elif defined(_STANDALONE) +#include <sys/param.h> +#include <sys/types.h> +#include <lib/libkern/libkern.h> +#include <lib/libsa/stand.h> +#else +#include <stddef.h> +#include <assert.h> +#include <errno.h> +#include <inttypes.h> +#endif + +#define _FUNCNAME strtoi +#define __TYPE intmax_t +#define __WRAPPED strtoimax + +#if !HAVE_STRTOI +#include "_strtoi.h" +#endif Index: src/common/lib/libc/stdlib/strtou.c diff -u /dev/null src/common/lib/libc/stdlib/strtou.c:1.1.2.2 --- /dev/null Wed Apr 22 07:18:59 2015 +++ src/common/lib/libc/stdlib/strtou.c Wed Apr 22 07:18:57 2015 @@ -0,0 +1,62 @@ +/* $NetBSD: strtou.c,v 1.1.2.2 2015/04/22 07:18:57 snj Exp $ */ + +/*- + * Copyright (c) 2005 The DragonFly Project. All rights reserved. + * Copyright (c) 2003 Citrus Project, + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Created by Kamil Rytarowski, based on ID: + * NetBSD: src/common/lib/libc/stdlib/strtoul.c,v 1.3 2008/08/20 19:58:34 oster Exp + */ + +#if HAVE_NBTOOL_CONFIG_H +#include "nbtool_config.h" +#endif + +#include <sys/cdefs.h> +__RCSID("$NetBSD: strtou.c,v 1.1.2.2 2015/04/22 07:18:57 snj Exp $"); + +#if defined(_KERNEL) +#include <sys/param.h> +#include <sys/types.h> +#include <lib/libkern/libkern.h> +#elif defined(_STANDALONE) +#include <sys/param.h> +#include <sys/types.h> +#include <lib/libkern/libkern.h> +#include <lib/libsa/stand.h> +#else +#include <stddef.h> +#include <assert.h> +#include <errno.h> +#include <inttypes.h> +#endif + +#define _FUNCNAME strtou +#define __TYPE uintmax_t +#define __WRAPPED strtoumax + +#if !HAVE_STRTOU +#include "_strtoi.h" +#endif