]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/Kernel/IOStringFuncs.c
xnu-4903.231.4.tar.gz
[apple/xnu.git] / iokit / Kernel / IOStringFuncs.c
index 548e980a1e78c47127729bec9a90e0b1184f5e3f..6890305d67e15fa4680b36fea3fa78ced4268a6c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998-2008 Apple Inc. All rights reserved.
+ * Copyright (c) 1998-2016 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
@@ -86,7 +86,6 @@ long strtol(const char *nptr, char **endptr, int base);
 unsigned long strtoul(const char *nptr, char **endptr, int base);
 quad_t strtoq(const char *nptr, char **endptr, int base);
 u_quad_t strtouq(const char *nptr, char **endptr, int base);
-char *strchr(const char *str, int ch);
 char *strncat(char *s1, const char *s2, unsigned long n);
 
 
@@ -126,11 +125,11 @@ isdigit(char c)
 long
 strtol(const char *nptr, char **endptr, int base)
 {
-       register const char *s = nptr;
-       register unsigned long acc;
-       register int c;
-       register unsigned long cutoff;
-       register int neg = 0, any, cutlim;
+       const char *s = nptr;
+       unsigned long acc;
+       char c;
+       unsigned long cutoff;
+       int neg = 0, any, cutlim;
 
        /*
         * Skip white space and pick up leading +/- sign if any.
@@ -218,11 +217,11 @@ strtol(const char *nptr, char **endptr, int base)
 unsigned long
 strtoul(const char *nptr, char **endptr, int base)
 {
-       register const char *s = nptr;
-       register unsigned long acc;
-       register int c;
-       register unsigned long cutoff;
-       register int neg = 0, any, cutlim;
+       const char *s = nptr;
+       unsigned long acc;
+       char c;
+       unsigned long cutoff;
+       int neg = 0, any, cutlim;
 
        /*
         * See strtol for comments as to the logic used.
@@ -296,11 +295,11 @@ strtoul(const char *nptr, char **endptr, int base)
 quad_t
 strtoq(const char *nptr, char **endptr, int base)
 {
-       register const char *s;
-       register u_quad_t acc;
-       register int c;
-       register u_quad_t qbase, cutoff;
-       register int neg, any, cutlim;
+       const char *s;
+       u_quad_t acc;
+       char c;
+       u_quad_t qbase, cutoff;
+       int neg, any, cutlim;
 
        /*
         * Skip white space and pick up leading +/- sign if any.
@@ -397,13 +396,13 @@ strtoq(const char *nptr, char **endptr, int base)
 u_quad_t
 strtouq(const char *nptr,
        char **endptr,
-       register int base)
+       int base)
 {
-       register const char *s = nptr;
-       register u_quad_t acc;
-       register int c;
-       register u_quad_t qbase, cutoff;
-       register int neg, any, cutlim;
+       const char *s = nptr;
+       u_quad_t acc;
+       char c;
+       u_quad_t qbase, cutoff;
+       int neg, any, cutlim;
 
        /*
         * See strtoq for comments as to the logic used.
@@ -469,19 +468,6 @@ strtouq(const char *nptr,
 }
 
 
-/*
- *
- */
-
-char *strchr(const char *str, int ch)
-{
-    do {
-       if (*str == ch)
-           return(__CAST_AWAY_QUALIFIER(str, const, char *));
-    } while (*str++);
-    return ((char *) 0);
-}
-
 /*
  *
  */
@@ -489,17 +475,18 @@ char *strchr(const char *str, int ch)
 char *
 strncat(char *s1, const char *s2, unsigned long n)
 {
-       char *os1;
-       int i = n;
-
-       os1 = s1;
-       while (*s1++)
-               ;
-       --s1;
-       while ((*s1++ = *s2++))
-               if (--i < 0) {
-                       *--s1 = '\0';
-                       break;
-               }
-       return(os1);
+       if (n != 0) {
+               char *d = s1;
+               const char *s = s2;
+
+               while (*d != 0)
+                       d++;
+               do {
+                       if ((*d = *s++) == '\0')
+                               break;
+                       d++;
+               } while (--n != 0);
+               *d = '\0';
+       }
+       return (s1);
 }