diff options
Diffstat (limited to 'compat/strtoull.c')
-rw-r--r-- | compat/strtoull.c | 61 |
1 files changed, 28 insertions, 33 deletions
diff --git a/compat/strtoull.c b/compat/strtoull.c index 027c593..b31567f 100644 --- a/compat/strtoull.c +++ b/compat/strtoull.c @@ -6,19 +6,19 @@ * Copyright (c) 1988 The Regents of the University of California. * Copyright (c) 1994 Sun Microsystems, Inc. * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: strtoull.c,v 1.8 2005/05/10 18:33:54 kennykb Exp $ + * RCS: @(#) $Id: strtoull.c,v 1.9 2007/04/16 13:36:34 dkf Exp $ */ #include "tclInt.h" #include <ctype.h> /* - * The table below is used to convert from ASCII digits to a - * numerical equivalent. It maps from '0' through 'z' to integers - * (100 for non-digit characters). + * The table below is used to convert from ASCII digits to a numerical + * equivalent. It maps from '0' through 'z' to integers (100 for non-digit + * characters). */ static char cvtIn[] = { @@ -41,11 +41,10 @@ static char cvtIn[] = { * Convert an ASCII string into an integer. * * Results: - * The return value is the integer equivalent of string. If endPtr - * is non-NULL, then *endPtr is filled in with the character - * after the last one that was part of the integer. If string - * doesn't contain a valid integer value, then zero is returned - * and *endPtr is set to string. + * The return value is the integer equivalent of string. If endPtr is + * non-NULL, then *endPtr is filled in with the character after the last + * one that was part of the integer. If string doesn't contain a valid + * integer value, then zero is returned and *endPtr is set to string. * * Side effects: * None. @@ -58,20 +57,18 @@ unsigned long long #else Tcl_WideUInt #endif -strtoull(string, endPtr, base) - CONST char *string; /* String of ASCII digits, possibly - * preceded by white space. For bases - * greater than 10, either lower- or - * upper-case digits may be used. - */ - char **endPtr; /* Where to store address of terminating +strtoull( + CONST char *string, /* String of ASCII digits, possibly preceded + * by white space. For bases greater than 10, + * either lower- or upper-case digits may be + * used. */ + char **endPtr, /* Where to store address of terminating * character, or NULL. */ - int base; /* Base for conversion. Must be less - * than 37. If 0, then the base is chosen - * from the leading characters of string: - * "0x" means hex, "0" means octal, anything - * else means decimal. - */ + int base) /* Base for conversion. Must be less than 37. + * If 0, then the base is chosen from the + * leading characters of string: "0x" means + * hex, "0" means octal, anything else means + * decimal. */ { register CONST char *p; register Tcl_WideUInt result = 0; @@ -102,8 +99,8 @@ strtoull(string, endPtr, base) } /* - * If no base was provided, pick one from the leading characters - * of the string. + * If no base was provided, pick one from the leading characters of the + * string. */ if (base == 0) { @@ -113,10 +110,9 @@ strtoull(string, endPtr, base) p += 1; base = 16; } else { - /* - * Must set anyDigits here, otherwise "0" produces a - * "no digits" error. + * Must set anyDigits here, otherwise "0" produces a "no + * digits" error. */ anyDigits = 1; @@ -126,7 +122,6 @@ strtoull(string, endPtr, base) base = 10; } } else if (base == 16) { - /* * Skip a leading "0x" from hex numbers. */ @@ -137,8 +132,8 @@ strtoull(string, endPtr, base) } /* - * Sorry this code is so messy, but speed seems important. Do - * different things for base 8, 10, 16, and other. + * Sorry this code is so messy, but speed seems important. Do different + * things for base 8, 10, 16, and other. */ if (base == 8) { @@ -241,7 +236,7 @@ strtoull(string, endPtr, base) * On overflow generate the right output */ - overflow: + overflow: errno = ERANGE; if (endPtr != 0) { for ( ; ; p += 1) { |