00001
00002
00003 #include "ruby/missing.h"
00004
00005 size_t strlen(const char*);
00006
00007 char *
00008 strstr(const char *haystack, const char *needle)
00009 {
00010 const char *hend;
00011 const char *a, *b;
00012
00013 if (*needle == 0) return (char *)haystack;
00014 hend = haystack + strlen(haystack) - strlen(needle) + 1;
00015 while (haystack < hend) {
00016 if (*haystack == *needle) {
00017 a = haystack;
00018 b = needle;
00019 for (;;) {
00020 if (*b == 0) return (char *)haystack;
00021 if (*a++ != *b++) {
00022 break;
00023 }
00024 }
00025 }
00026 haystack++;
00027 }
00028 return 0;
00029 }
00030