blob: 8fb0778a3c8a1046f5adf06a56ceaa72e3b65f28 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/* See LICENSE file for copyright and license details. */
#include "libsimple.h"
char *
libsimple_strrncasestr(const char *h_, const char *n, size_t len)
{
char *h = *(char **)(void *)&h_;
size_t hn = strlen(h);
size_t nn = strlen(n);
hn = MIN(hn, len);
nn = MIN(nn, len);
if (!nn)
return &h[hn];
if (hn < nn)
return NULL;
for (h += hn -= nn; hn--; h--)
if (!strncasecmp(h, n, nn))
return h;
if (!strncasecmp(h, n, nn))
return h;
return NULL;
}
|