Blame


1 fd04aace 2003-11-23 devnull #include <u.h>
2 fd04aace 2003-11-23 devnull #include <libc.h>
3 fd04aace 2003-11-23 devnull
4 fd04aace 2003-11-23 devnull char*
5 fd04aace 2003-11-23 devnull cistrstr(char *s, char *sub)
6 fd04aace 2003-11-23 devnull {
7 fd04aace 2003-11-23 devnull int c, csub, n;
8 fd04aace 2003-11-23 devnull
9 fd04aace 2003-11-23 devnull csub = *sub;
10 fd04aace 2003-11-23 devnull if(csub == '\0')
11 fd04aace 2003-11-23 devnull return s;
12 fd04aace 2003-11-23 devnull if(csub >= 'A' && csub <= 'Z')
13 fd04aace 2003-11-23 devnull csub -= 'A' - 'a';
14 fd04aace 2003-11-23 devnull sub++;
15 fd04aace 2003-11-23 devnull n = strlen(sub);
16 fd04aace 2003-11-23 devnull for(; c = *s; s++){
17 fd04aace 2003-11-23 devnull if(c >= 'A' && c <= 'Z')
18 fd04aace 2003-11-23 devnull c -= 'A' - 'a';
19 fd04aace 2003-11-23 devnull if(c == csub && cistrncmp(s+1, sub, n) == 0)
20 fd04aace 2003-11-23 devnull return s;
21 fd04aace 2003-11-23 devnull }
22 fd04aace 2003-11-23 devnull return nil;
23 fd04aace 2003-11-23 devnull }