libkern/strcasestr.c: Drop xlocale support and connect to build.
Reviewed by: markj, hselasky Differential revision: https://reviews.freebsd.org/D27866
This commit is contained in:
parent
92cf602e38
commit
bc86103335
@ -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
|
||||
|
@ -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));
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user