OSDN Git Service

Use datarootdir for locales.
[pf3gnuchains/pf3gnuchains4x.git] / libiberty / strtol.c
index fa84a2e..bde5647 100644 (file)
 
 /*
 
-@deftypefn Supplemental {long int} strtol (const char *@var{string}, char **@var{endptr}, int @var{base})
+@deftypefn Supplemental {long int} strtol (const char *@var{string}, @
+  char **@var{endptr}, int @var{base})
+@deftypefnx Supplemental {unsigned long int} strtoul (const char *@var{string}, @
+  char **@var{endptr}, int @var{base})
 
 The @code{strtol} function converts the string in @var{string} to a
 long integer value according to the given @var{base}, which must be
@@ -39,7 +42,8 @@ is 0, @code{strtol} will look for the prefixes @code{0} and @code{0x}
 to indicate bases 8 and 16, respectively, else default to base 10.
 When the base is 16 (either explicitly or implicitly), a prefix of
 @code{0x} is allowed.  The handling of @var{endptr} is as that of
-@code{strtod} above.
+@code{strtod} above.  The @code{strtoul} function is the same, except
+that the converted value is unsigned.
 
 @end deftypefn
 
@@ -83,10 +87,7 @@ extern int errno;
  * alphabets and digits are each contiguous.
  */
 long
-strtol(nptr, endptr, base)
-       const char *nptr;
-       char **endptr;
-       register int base;
+strtol(const char *nptr, char **endptr, register int base)
 {
        register const char *s = nptr;
        register unsigned long acc;
@@ -145,7 +146,7 @@ strtol(nptr, endptr, base)
                        break;
                if (c >= base)
                        break;
-               if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
+               if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
                        any = -1;
                else {
                        any = 1;