diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2003-11-27 20:54:12 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2003-11-27 20:54:12 +0000 |
commit | cc2a11e0d098c27f11dc4bc930a8b9815f85bf7a (patch) | |
tree | 14c0ec87c01f2545b75318102ab297c88c4b4242 | |
parent | 83bf7d2f89d008a8d6c958f2020f78e26c525a4d (diff) | |
download | newlib-cc2a11e0d098c27f11dc4bc930a8b9815f85bf7a.zip newlib-cc2a11e0d098c27f11dc4bc930a8b9815f85bf7a.tar.gz newlib-cc2a11e0d098c27f11dc4bc930a8b9815f85bf7a.tar.bz2 |
2003-11-27 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/stdlib.h (_atoi_r): New prototype.
* libc/stdlib/atoi.c (_atoi_r): New reentrant function.
-rw-r--r-- | newlib/ChangeLog | 5 | ||||
-rw-r--r-- | newlib/libc/include/stdlib.h | 1 | ||||
-rw-r--r-- | newlib/libc/stdlib/atoi.c | 29 |
3 files changed, 34 insertions, 1 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 34257ee..1997b08 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,5 +1,10 @@ 2003-11-27 Jeff Johnston <jjohnstn@redhat.com> + * libc/include/stdlib.h (_atoi_r): New prototype. + * libc/stdlib/atoi.c (_atoi_r): New reentrant function. + +2003-11-27 Jeff Johnston <jjohnstn@redhat.com> + * libc/include/stdlib.h (_atoll_r, _atol_r): New prototypes. * libc/stdlib/atol.c (_atol_r): New reentrant function. * libc/stdlib/atoll.c (_atoll_r): Ditto. diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h index 2b8a176..9354b1e 100644 --- a/newlib/libc/include/stdlib.h +++ b/newlib/libc/include/stdlib.h @@ -62,6 +62,7 @@ double _EXFUN(atof,(const char *__nptr)); float _EXFUN(atoff,(const char *__nptr)); #endif int _EXFUN(atoi,(const char *__nptr)); +int _EXFUN(_atoi_r,(struct _reent *, const char *__nptr)); long _EXFUN(atol,(const char *__nptr)); long _EXFUN(_atol_r,(struct _reent *, const char *__nptr)); _PTR _EXFUN(bsearch,(const _PTR __key, diff --git a/newlib/libc/stdlib/atoi.c b/newlib/libc/stdlib/atoi.c index c7792a4..6156eda 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 <stdlib.h> 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 <stdlib.h> @@ -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 <<atoi>> converts the initial portion of a string to an <<int>>. @@ -28,12 +42,15 @@ DESCRIPTION <<atoi(s)>> is implemented as <<(int)strtol(s, NULL, 10).>> <<atol(s)>> is implemented as <<strtol(s, NULL, 10).>> + <<_atoi_r>> and <<_atol_r>> are reentrant versions of <<atoi>> and + <<atol>> respectively, passing the reentrancy struct pointer. + RETURNS The functions return the converted value, if any. If no conversion was made, <<0>> is returned. PORTABILITY -<<atoi>> is ANSI. +<<atoi>>, <<atol>> are ANSI. No supporting OS subroutines are required. */ @@ -45,10 +62,20 @@ No supporting OS subroutines are required. #include <stdlib.h> #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); +} |