diff options
author | Vladimir Kondratyev <wulf@FreeBSD.org> | 2020-10-06 14:50:52 +0000 |
---|---|---|
committer | Vladimir Kondratyev <wulf@FreeBSD.org> | 2021-01-07 23:18:42 +0000 |
commit | bc861033357ef2d2eeaf5d85d70bb4b638961b2d (patch) | |
tree | deb67c2e8730bdff7ff7e09d22bd466c792509ec | |
parent | 92cf602e3809f2bcb0490b3895025b0185e2daa9 (diff) | |
download | src-bc861033357ef2d2eeaf5d85d70bb4b638961b2d.tar.gz src-bc861033357ef2d2eeaf5d85d70bb4b638961b2d.zip |
libkern/strcasestr.c: Drop xlocale support and connect to build.
Reviewed by: markj, hselasky
Differential revision: https://reviews.freebsd.org/D27866
-rw-r--r-- | sys/conf/files | 1 | ||||
-rw-r--r-- | sys/libkern/strcasestr.c | 22 | ||||
-rw-r--r-- | sys/sys/libkern.h | 1 |
3 files changed, 10 insertions, 14 deletions
diff --git a/sys/conf/files b/sys/conf/files index 0258fca24836..7cfb32560af6 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -4058,6 +4058,7 @@ libkern/qsort_r.c standard libkern/random.c standard libkern/scanc.c standard libkern/strcasecmp.c standard +libkern/strcasestr.c standard libkern/strcat.c standard libkern/strchr.c standard libkern/strchrnul.c optional gdb diff --git a/sys/libkern/strcasestr.c b/sys/libkern/strcasestr.c index b70c2195a94e..c0418cfaeb3d 100644 --- a/sys/libkern/strcasestr.c +++ b/sys/libkern/strcasestr.c @@ -40,35 +40,29 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); -#include <ctype.h> -#include <string.h> -#include "xlocale_private.h" +#include <sys/param.h> +#include <sys/ctype.h> +#include <sys/libkern.h> /* * Find the first occurrence of find in s, ignore case. */ char * -strcasestr_l(const char *s, const char *find, locale_t locale) +strcasestr(const char *s, const char *find) { char c, sc; size_t len; - FIX_LOCALE(locale); if ((c = *find++) != 0) { - c = tolower_l((unsigned char)c, locale); + c = tolower((unsigned char)c); len = strlen(find); do { do { if ((sc = *s++) == 0) return (NULL); - } while ((char)tolower_l((unsigned char)sc, locale) != c); - } while (strncasecmp_l(s, find, len, locale) != 0); + } while ((char)tolower((unsigned char)sc) != c); + } while (strncasecmp(s, find, len) != 0); s--; } - return ((char *)s); -} -char * -strcasestr(const char *s, const char *find) -{ - return strcasestr_l(s, find, __get_locale()); + return (__DECONST(char *, s)); } diff --git a/sys/sys/libkern.h b/sys/sys/libkern.h index 7385df139297..3874ef9ec4bd 100644 --- a/sys/sys/libkern.h +++ b/sys/sys/libkern.h @@ -168,6 +168,7 @@ void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, u_long random(void); int scanc(u_int, const u_char *, const u_char *, int); int strcasecmp(const char *, const char *); +char *strcasestr(const char *, const char *); char *strcat(char * __restrict, const char * __restrict); char *strchr(const char *, int); char *strchrnul(const char *, int); |