ppcrcd/trunk/yaboot/lib/strtol.c

sparky cvs at pld-linux.org
Sat Jan 7 21:43:30 CET 2006


Author: sparky
Date: Sat Jan  7 21:43:28 2006
New Revision: 6767

Modified:
   ppcrcd/trunk/yaboot/lib/strtol.c
Log:
- spaces->tabs, killed k&r style header
- I can commit again !


Modified: ppcrcd/trunk/yaboot/lib/strtol.c
==============================================================================
--- ppcrcd/trunk/yaboot/lib/strtol.c	(original)
+++ ppcrcd/trunk/yaboot/lib/strtol.c	Sat Jan  7 21:43:28 2006
@@ -26,115 +26,118 @@
 
 #include "ctype.h"
 
-int strtol (nptr, endptr, base)
-const char *nptr;
-char **endptr;
-int base;
+int strtol (
+	const char *nptr,
+	char **endptr,
+	int base
+	)
 {
-    int negative;
-    register unsigned int cutoff;
-    register unsigned int cutlim;
-    register unsigned int i;
-    register const char *s;
-    register unsigned char c;
-    const char *save, *end;
-    int overflow;
-
-    if (base < 0 || base == 1 || base > 36)
-	base = 10;
-
-    save = s = nptr;
-
-    /* Skip white space.  */
-    while (((unsigned char) *s) <= 32 && *s)
-	++s;
-    if (*s == '\0')
-	goto noconv;
-
-    /* Check for a sign.  */
-    if (*s == '-') {
-	negative = 1;
-	++s;
-    } else if (*s == '+') {
-	negative = 0;
-	++s;
-    } else
-	negative = 0;
-
-    if ((base == 16 && s[0] == '0' && (s[1] == 'X')) || (s[1] == 'x'))
-	s += 2;
-
-    /* If BASE is zero, figure it out ourselves.  */
-    if (base == 0) {
-	if (*s == '0') {
-	    if (s[1] == 'X' || s[1] == 'x') {
-		s += 2;
-		base = 16;
-	    } else
-		base = 8;
+	int negative;
+	register unsigned int cutoff;
+	register unsigned int cutlim;
+	register unsigned int i;
+	register const char *s;
+	register unsigned char c;
+	const char *save, *end;
+	int overflow;
+
+	if (base < 0 || base == 1 || base > 36)
+		base = 10;
+
+	save = s = nptr;
+
+	/* Skip white space.  */
+	while (((unsigned char) *s) <= 32 && *s)
+		++s;
+	if (*s == '\0')
+		goto noconv;
+
+	/* Check for a sign.  */
+	if (*s == '-') {
+		negative = 1;
+		++s;
+	} else if (*s == '+') {
+		negative = 0;
+		++s;
 	} else
-	    base = 10;
-    }
+		negative = 0;
+
+	if ((base == 16 && s[0] == '0' && (s[1] == 'X')) || (s[1] == 'x'))
+		s += 2;
+
+	/* If BASE is zero, figure it out ourselves.  */
+	if (base == 0) {
+		if (*s == '0') {
+			if (s[1] == 'X' || s[1] == 'x') {
+				s += 2;
+				base = 16;
+			} else
+				base = 8;
+		} else
+			base = 10;
+	}
+
+	/* Save the pointer so we can check later if anything happened.  */
+	save = s;
 
-    /* Save the pointer so we can check later if anything happened.  */
-    save = s;
+	end = 0;
 
-    end = 0;
+	cutoff = 0x7FFFFFFF / (unsigned int) base;
+	cutlim = 0x7FFFFFFF % (unsigned int) base;
 
-    cutoff = 0x7FFFFFFF / (unsigned int) base;
-    cutlim = 0x7FFFFFFF % (unsigned int) base;
-
-    overflow = 0;
-    i = 0;
-    for (c = *s; c != '\0'; c = *++s) {
-	if (s == end)
-	    break;
-	if (c >= '0' && c <= '9')
-	    c -= '0';
-	else if (c >= 'A' && c <= 'Z')
-	    c = c - 'A' + 10;
-	else if (c >= 'a' && c <= 'z')
-	    c = c - 'a' + 10;
-	else
-	    break;
-	if (c >= base)
-	    break;
-	/* Check for overflow.  */
-	if (i > cutoff || (i == cutoff && c > cutlim))
-	    overflow = 1;
-	else {
-	    i *= (unsigned int) base;
-	    i += c;
+	overflow = 0;
+	i = 0;
+	for (c = *s; c != '\0'; c = *++s) {
+		if (s == end)
+			break;
+		if (c >= '0' && c <= '9')
+			c -= '0';
+		else if (c >= 'A' && c <= 'Z')
+			c = c - 'A' + 10;
+		else if (c >= 'a' && c <= 'z')
+			c = c - 'a' + 10;
+		else
+			break;
+		if (c >= base)
+			break;
+		/* Check for overflow.  */
+		if (i > cutoff || (i == cutoff && c > cutlim))
+			overflow = 1;
+		else {
+			i *= (unsigned int) base;
+			i += c;
+		}
 	}
-    }
 
-    /* Check if anything actually happened.  */
-    if (s == save)
-	goto noconv;
-
-    /* Store in ENDPTR the address of one character
-       past the last character we converted.  */
-    if (endptr)
-	*endptr = (char *) s;
-
-    if (overflow)
-	return negative ? (int) 0x80000000 : (int) 0x7FFFFFFF;
-
-    /* Return the result of the appropriate sign.  */
-    return (negative ? -i : i);
-
-  noconv:
-    /* We must handle a special case here: the base is 0 or 16 and the
-       first two characters and '0' and 'x', but the rest are no
-       hexadecimal digits.  This is no error case.  We return 0 and
-       ENDPTR points to the `x`.  */
-    if (endptr) {
-	if (save - nptr >= 2 && tolower (save[-1]) == 'x' && save[-2] == '0')
-	    *endptr = (char *) &save[-1];
-	else
-	    /*  There was no number to convert.  */
-	    *endptr = (char *) nptr;
-    }
+	/* Check if anything actually happened.  */
+	if (s == save)
+		goto noconv;
+
+	/* Store in ENDPTR the address of one character
+	past the last character we converted.  */
+	if (endptr)
+		*endptr = (char *) s;
+
+	if (overflow)
+		return negative ? (int) 0x80000000 : (int) 0x7FFFFFFF;
+
+	/* Return the result of the appropriate sign.  */
+	return (negative ? -i : i);
+
+noconv:
+	/* We must handle a special case here: the base is 0 or 16 and the
+	  first two characters and '0' and 'x', but the rest are no
+	  hexadecimal digits.  This is no error case.  We return 0 and
+	  ENDPTR points to the `x`.  */
+	if (endptr) {
+		if (save - nptr >= 2 && tolower (save[-1]) == 'x' && save[-2] == '0')
+			*endptr = (char *) &save[-1];
+		else
+			/*  There was no number to convert.  */
+			*endptr = (char *) nptr;
+	}
 
-    return 0L;
+	return 0L;
 }
+
+// vim: ts=4:sw=4


More information about the pld-cvs-commit mailing list