From cc2a11e0d098c27f11dc4bc930a8b9815f85bf7a Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Thu, 27 Nov 2003 20:54:12 +0000 Subject: 2003-11-27 Jeff Johnston * libc/include/stdlib.h (_atoi_r): New prototype. * libc/stdlib/atoi.c (_atoi_r): New reentrant function. --- newlib/libc/stdlib/atoi.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'newlib/libc/stdlib/atoi.c') diff --git a/newlib/libc/stdlib/atoi.c b/newlib/libc/stdlib/atoi.c index c7792a454..6156eda4d 100644 --- a/newlib/libc/stdlib/atoi.c +++ b/newlib/libc/stdlib/atoi.c @@ -6,11 +6,17 @@ INDEX atoi INDEX atol +INDEX + _atoi_r +INDEX + _atol_r ANSI_SYNOPSIS #include int atoi(const char *<[s]>); long atol(const char *<[s]>); + int _atoi_r(struct _reent *<[ptr]>, const char *<[s]>); + long _atol_r(struct _reent *<[ptr]>, const char *<[s]>); TRAD_SYNOPSIS #include @@ -20,6 +26,14 @@ TRAD_SYNOPSIS long atol(<[s]>) char *<[s]>; + int _atoi_r(<[ptr]>, <[s]>) + struct _reent *<[ptr]>; + char *<[s]>; + + long _atol_r(<[ptr]>, <[s]>) + struct _reent *<[ptr]>; + char *<[s]>; + DESCRIPTION <> converts the initial portion of a string to an <>. @@ -28,12 +42,15 @@ DESCRIPTION <> is implemented as <<(int)strtol(s, NULL, 10).>> <> is implemented as <> + <<_atoi_r>> and <<_atol_r>> are reentrant versions of <> and + <> respectively, passing the reentrancy struct pointer. + RETURNS The functions return the converted value, if any. If no conversion was made, <<0>> is returned. PORTABILITY -<> is ANSI. +<>, <> are ANSI. No supporting OS subroutines are required. */ @@ -45,10 +62,20 @@ No supporting OS subroutines are required. #include #include <_ansi.h> +#ifndef _REENT_ONLY int _DEFUN (atoi, (s), _CONST char *s) { return (int) strtol (s, NULL, 10); } +#endif /* !_REENT_ONLY */ + +int +_DEFUN (_atoi_r, (s), + struct _reent *ptr _AND + _CONST char *s) +{ + return (int) _strtol_r (ptr, s, NULL, 10); +} -- cgit v1.2.3