mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 03:17:17 +08:00
ngx_strlcasestrn()
This commit is contained in:
parent
054c505050
commit
a514d68bfb
@ -692,6 +692,39 @@ ngx_strcasestrn(u_char *s1, char *s2, size_t n)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ngx_strlcasestrn() is intended to search for static substring
|
||||
* with known length in string until the argument last. The argument n
|
||||
* must be length of the second substring - 1.
|
||||
*/
|
||||
|
||||
u_char *
|
||||
ngx_strlcasestrn(u_char *s1, u_char *last, u_char *s2, size_t n)
|
||||
{
|
||||
ngx_uint_t c1, c2;
|
||||
|
||||
c2 = (ngx_uint_t) *s2++;
|
||||
c2 = (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;
|
||||
last -= n;
|
||||
|
||||
do {
|
||||
do {
|
||||
if (s1 == last) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
c1 = (ngx_uint_t) *s1++;
|
||||
|
||||
c1 = (c1 >= 'A' && c1 <= 'Z') ? (c1 | 0x20) : c1;
|
||||
|
||||
} while (c1 != c2);
|
||||
|
||||
} while (ngx_strncasecmp(s1, s2, n) != 0);
|
||||
|
||||
return --s1;
|
||||
}
|
||||
|
||||
|
||||
ngx_int_t
|
||||
ngx_rstrncmp(u_char *s1, u_char *s2, size_t n)
|
||||
{
|
||||
|
@ -149,6 +149,7 @@ u_char *ngx_strnstr(u_char *s1, char *s2, size_t n);
|
||||
|
||||
u_char *ngx_strstrn(u_char *s1, char *s2, size_t n);
|
||||
u_char *ngx_strcasestrn(u_char *s1, char *s2, size_t n);
|
||||
u_char *ngx_strlcasestrn(u_char *s1, u_char *last, u_char *s2, size_t n);
|
||||
|
||||
ngx_int_t ngx_rstrncmp(u_char *s1, u_char *s2, size_t n);
|
||||
ngx_int_t ngx_rstrncasecmp(u_char *s1, u_char *s2, size_t n);
|
||||
|
Loading…
Reference in New Issue
Block a user