summaryrefslogtreecommitdiff
path: root/lib/libc/stdlib
diff options
context:
space:
mode:
authorlukem <lukem@NetBSD.org>2004-03-05 05:58:29 +0000
committerlukem <lukem@NetBSD.org>2004-03-05 05:58:29 +0000
commita19008b17fcaa45ba4b7234daa35fd4bf44e070c (patch)
tree7c8ec5514a487a098c44a2bc62fa89e49ee3bd23 /lib/libc/stdlib
parent0552ea787563b354203520fcd65918d0355fb99a (diff)
Explicitly use base 10 when parsing numbers, to enforce the "decimal number"
semantics that the comments referred to and as per dd(1) (which was the origin of this functionality).
Diffstat (limited to 'lib/libc/stdlib')
-rw-r--r--lib/libc/stdlib/strsuftoll.38
-rw-r--r--lib/libc/stdlib/strsuftoll.c14
2 files changed, 12 insertions, 10 deletions
diff --git a/lib/libc/stdlib/strsuftoll.3 b/lib/libc/stdlib/strsuftoll.3
index ecdf380bc68..66a2b4cfc92 100644
--- a/lib/libc/stdlib/strsuftoll.3
+++ b/lib/libc/stdlib/strsuftoll.3
@@ -1,4 +1,4 @@
-.\" $NetBSD: strsuftoll.3,v 1.4 2004/02/13 17:56:17 wiz Exp $
+.\" $NetBSD: strsuftoll.3,v 1.5 2004/03/05 05:58:29 lukem Exp $
.\"
.\" Copyright (c) 2002 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -34,7 +34,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd November 29, 2002
+.Dd March 5, 2004
.Dt STRSUFTOLL 3
.Os
.Sh NAME
@@ -61,10 +61,10 @@ checking that the result is not smaller than
.Fa min
or larger than
.Fa max .
-Two or more numbers may be separated by an
+Two or more decimal numbers may be separated by an
.Dq x
to indicate a product.
-Each number may have one of the following optional suffixes:
+Each decimal number may have one of the following optional suffixes:
.Bl -tag -width 3n -offset indent -compact
.It b
Block; multiply by 512
diff --git a/lib/libc/stdlib/strsuftoll.c b/lib/libc/stdlib/strsuftoll.c
index d52ff53dc08..a4d157fc897 100644
--- a/lib/libc/stdlib/strsuftoll.c
+++ b/lib/libc/stdlib/strsuftoll.c
@@ -1,6 +1,6 @@
-/* $NetBSD: strsuftoll.c,v 1.5 2004/01/17 23:02:51 dbj Exp $ */
+/* $NetBSD: strsuftoll.c,v 1.6 2004/03/05 05:58:29 lukem Exp $ */
/*-
- * Copyright (c) 2001-2002 The NetBSD Foundation, Inc.
+ * Copyright (c) 2001-2002,2004 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
@@ -74,7 +74,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: strsuftoll.c,v 1.5 2004/01/17 23:02:51 dbj Exp $");
+__RCSID("$NetBSD: strsuftoll.c,v 1.6 2004/03/05 05:58:29 lukem Exp $");
#endif /* LIBC_SCCS and not lint */
#ifdef _LIBC
@@ -108,8 +108,10 @@ __weak_alias(strsuftollx, _strsuftollx)
* 2) A positive decimal number followed by a b (mult by 512).
* 3) A positive decimal number followed by a k (mult by 1024).
* 4) A positive decimal number followed by a m (mult by 1048576).
- * 5) A positive decimal number followed by a w (mult by sizeof int)
- * 6) Two or more positive decimal numbers (with/without k,b or w).
+ * 5) A positive decimal number followed by a g (mult by 1073741824).
+ * 6) A positive decimal number followed by a t (mult by 1099511627776).
+ * 7) A positive decimal number followed by a w (mult by sizeof int)
+ * 8) Two or more positive decimal numbers (with/without k,b or w).
* separated by x (also * for backwards compatibility), specifying
* the product of the indicated values.
* Returns the result upon successful conversion, or exits with an
@@ -152,7 +154,7 @@ strsuftollx(const char *desc, const char *val,
while (isspace((unsigned char)*val)) /* Skip leading space */
val++;
- num = strtoll(val, &expr, 0);
+ num = strtoll(val, &expr, 10);
if (errno == ERANGE)
goto erange; /* Overflow */