mirror of https://github.com/hfiref0x/UACME.git
88 lines
1.2 KiB
C
88 lines
1.2 KiB
C
#include "rtltypes.h"
|
|
|
|
char *_strstri_a(const char *s, const char *sub_s)
|
|
{
|
|
char c0, c1, c2, *tmps, *tmpsub;
|
|
|
|
if (s == sub_s)
|
|
return (char *)s;
|
|
|
|
if (s == 0)
|
|
return 0;
|
|
|
|
if (sub_s == 0)
|
|
return 0;
|
|
|
|
c0 = locase_a(*sub_s);
|
|
while (c0 != 0) {
|
|
|
|
while (*s != 0) {
|
|
c2 = locase_a(*s);
|
|
if (c2 == c0)
|
|
break;
|
|
s++;
|
|
}
|
|
|
|
if (*s == 0)
|
|
return 0;
|
|
|
|
tmps = (char *)s;
|
|
tmpsub = (char *)sub_s;
|
|
do {
|
|
c1 = locase_a(*tmps);
|
|
c2 = locase_a(*tmpsub);
|
|
tmps++;
|
|
tmpsub++;
|
|
} while ((c1 == c2) && (c2 != 0));
|
|
|
|
if (c2 == 0)
|
|
return (char *)s;
|
|
|
|
s++;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
wchar_t *_strstri_w(const wchar_t *s, const wchar_t *sub_s)
|
|
{
|
|
wchar_t c0, c1, c2, *tmps, *tmpsub;
|
|
|
|
if (s == sub_s)
|
|
return (wchar_t *)s;
|
|
|
|
if (s == 0)
|
|
return 0;
|
|
|
|
if (sub_s == 0)
|
|
return 0;
|
|
|
|
c0 = locase_w(*sub_s);
|
|
while (c0 != 0) {
|
|
|
|
while (*s != 0) {
|
|
c2 = locase_w(*s);
|
|
if (c2 == c0)
|
|
break;
|
|
s++;
|
|
}
|
|
|
|
if (*s == 0)
|
|
return 0;
|
|
|
|
tmps = (wchar_t *)s;
|
|
tmpsub = (wchar_t *)sub_s;
|
|
do {
|
|
c1 = locase_w(*tmps);
|
|
c2 = locase_w(*tmpsub);
|
|
tmps++;
|
|
tmpsub++;
|
|
} while ((c1 == c2) && (c2 != 0));
|
|
|
|
if (c2 == 0)
|
|
return (wchar_t *)s;
|
|
|
|
s++;
|
|
}
|
|
return 0;
|
|
}
|