1 /*
2 FUNCTION
3    <<atoi>>, <<atol>>---string to integer
4 
5 INDEX
6 	atoi
7 INDEX
8 	atol
9 INDEX
10 	_atoi_r
11 INDEX
12 	_atol_r
13 
14 ANSI_SYNOPSIS
15 	#include <stdlib.h>
16         int atoi(const char *<[s]>);
17 	long atol(const char *<[s]>);
18         int _atoi_r(struct _reent *<[ptr]>, const char *<[s]>);
19         long _atol_r(struct _reent *<[ptr]>, const char *<[s]>);
20 
21 TRAD_SYNOPSIS
22 	#include <stdlib.h>
23        int atoi(<[s]>)
24        char *<[s]>;
25 
26        long atol(<[s]>)
27        char *<[s]>;
28 
29        int _atoi_r(<[ptr]>, <[s]>)
30        struct _reent *<[ptr]>;
31        char *<[s]>;
32 
33        long _atol_r(<[ptr]>, <[s]>)
34        struct _reent *<[ptr]>;
35        char *<[s]>;
36 
37 
38 DESCRIPTION
39    <<atoi>> converts the initial portion of a string to an <<int>>.
40    <<atol>> converts the initial portion of a string to a <<long>>.
41 
42    <<atoi(s)>> is implemented as <<(int)strtol(s, NULL, 10).>>
43    <<atol(s)>> is implemented as <<strtol(s, NULL, 10).>>
44 
45    <<_atoi_r>> and <<_atol_r>> are reentrant versions of <<atoi>> and
46    <<atol>> respectively, passing the reentrancy struct pointer.
47 
48 RETURNS
49    The functions return the converted value, if any. If no conversion was
50    made, <<0>> is returned.
51 
52 PORTABILITY
53 <<atoi>>, <<atol>> are ANSI.
54 
55 No supporting OS subroutines are required.
56 */
57 
58 /*
59  * Andy Wilson, 2-Oct-89.
60  */
61 
62 #include <stdlib.h>
63 #include <_ansi.h>
64 
65 #ifndef _REENT_ONLY
66 int
67 _DEFUN (atoi, (s),
68 	_CONST char *s)
69 {
70   return (int) strtol (s, NULL, 10);
71 }
72 #endif /* !_REENT_ONLY */
73 
74 int
75 _DEFUN (_atoi_r, (s),
76 	struct _reent *ptr _AND
77 	_CONST char *s)
78 {
79   return (int) _strtol_r (ptr, s, NULL, 10);
80 }
81 
82