File:  [DVB] / dietlibc / lib / strstr.c
Revision 1.6: download - view: text, annotated - select for diffs
Tue Feb 19 00:28:13 2008 UTC (16 years, 3 months ago) by leitner
Branches: MAIN
CVS tags: HEAD
  several fixes from Enrico Scholz (printf, string routines on big endian)
  add some more syscalls
  some minor cleanups
  shrink some string functions (Kris Katterjohn)

#include <sys/types.h>
#include <string.h>

char *strstr(const char *haystack, const char *needle) {
  size_t nl=strlen(needle);
  size_t hl=strlen(haystack);
  size_t i;
  if (!nl) goto found;
  if (nl>hl) return 0;
  for (i=hl-nl+1; __likely(i); --i) {
    if (*haystack==*needle && !memcmp(haystack,needle,nl))
found:
      return (char*)haystack;
    ++haystack;
  }
  return 0;
}

LinuxTV legacy CVS <linuxtv.org/cvs>