blob: d34b028b578d3ec19ccb83d2bbbd68f9a5e30bcb [file] [log] [blame]
//INFERNO
#include <string.h>
/*
* Return pointer to first occurrence of s2 in s1,
* 0 if none
*/
char *strstr(char *s1, char *s2)
{
char *p;
int f, n;
f = s2[0];
if (f == 0)
return s1;
n = strlen(s2);
for (p = strchr(s1, f); p; p = strchr(p + 1, f))
if (strncmp(p, s2, n) == 0)
return p;
return 0;
}
/* Case insensitive strcmp */
int cistrcmp(char *s1, char *s2)
{
int c1, c2;
while (*s1) {
c1 = *(uint8_t *) s1++;
c2 = *(uint8_t *) s2++;
if (c1 == c2)
continue;
if (c1 >= 'A' && c1 <= 'Z')
c1 -= 'A' - 'a';
if (c2 >= 'A' && c2 <= 'Z')
c2 -= 'A' - 'a';
if (c1 != c2)
return c1 - c2;
}
return -*s2;
}