X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/316670eb35587141e969394ae8537d66b9211e80..15129b1c8dbb3650c63b70adb1cad9af601c6c17:/osfmk/device/subrs.c diff --git a/osfmk/device/subrs.c b/osfmk/device/subrs.c index 4956a3b40..99f8d5032 100644 --- a/osfmk/device/subrs.c +++ b/osfmk/device/subrs.c @@ -262,7 +262,6 @@ strncasecmp(const char *s1, const char *s2, size_t n) * Deprecation Warning: * strcpy() is being deprecated. Please use strlcpy() instead. */ -#if !CONFIG_EMBEDDED char * strcpy( char *to, @@ -275,7 +274,6 @@ strcpy( return ret; } -#endif /* * Abstract: @@ -286,7 +284,7 @@ strcpy( * to the "to" string. */ -// ARM implementation in ../arm/strncpy.s +// ARM implementation in ../arm/strncpy.c char * strncpy( char *s1, @@ -382,7 +380,7 @@ atoi_term( */ // ARM implementation in ../arm/strnlen.s -size_t +size_t strnlen(const char *s, size_t max) { const char *es = s + max, *p = s; while(*p && p != es) @@ -432,7 +430,6 @@ itoa( * Deprecation Warning: * strcat() is being deprecated. Please use strlcat() instead. */ -#if !CONFIG_EMBEDDED char * strcat( char *dest, @@ -446,7 +443,6 @@ strcat( ; return (old); } -#endif /* * Appends src to string dst of size siz (unlike strncat, siz is the @@ -489,7 +485,7 @@ strlcat(char *dst, const char *src, size_t siz) * Returns strlen(src); if retval >= siz, truncation occurred. */ -// ARM implementation in ../arm/strlcpy.s +// ARM implementation in ../arm/strlcpy.c size_t strlcpy(char *dst, const char *src, size_t siz) { @@ -571,3 +567,25 @@ strprefix(register const char *s1, register const char *s2) } return (1); } + +char * +strnstr(char *s, const char *find, size_t slen) +{ + char c, sc; + size_t len; + + if ((c = *find++) != '\0') { + len = strlen(find); + do { + do { + if ((sc = *s++) == '\0' || slen-- < 1) + return (NULL); + } while (sc != c); + if (len > slen) + return (NULL); + } while (strncmp(s, find, len) != 0); + s--; + } + return (s); +} +