commit 494bd039510a349f198a1cd310b8e36ed8ddce09
Author:     Roberto E. Vargas Caballero <[email protected]>
AuthorDate: Thu Feb 23 15:16:38 2017 +0100
Commit:     Roberto E. Vargas Caballero <[email protected]>
CommitDate: Thu Feb 23 16:23:00 2017 +0100

    [libc] Add strstr()

diff --git a/libc/src/Makefile b/libc/src/Makefile
index e8612df..2984f58 100644
--- a/libc/src/Makefile
+++ b/libc/src/Makefile
@@ -3,7 +3,7 @@
 
 LIBCOBJ = assert.o strcpy.o strcmp.o strlen.o strchr.o \
           strrchr.o strcat.o strncmp.o strncpy.o strncat.o strcoll.o \
-          strxfrm.o strtok.o \
+          strxfrm.o strtok.o strstr.o \
           memset.o memcpy.o memmove.o memcmp.o memchr.o \
           isalnum.o isalpha.o isascii.o isblank.o iscntrl.o isdigit.o \
           isgraph.o islower.o isprint.o ispunct.o isspace.o isupper.o \
diff --git a/libc/src/strstr.c b/libc/src/strstr.c
new file mode 100644
index 0000000..ed21702
--- /dev/null
+++ b/libc/src/strstr.c
@@ -0,0 +1,27 @@
+/* See LICENSE file for copyright and license details. */
+
+#include <string.h>
+
+char *
+strstr(const char *s1, const char *s2)
+{
+       const char *p, *q;
+       int c;
+
+       c = *s2++;
+       if (c == '\0')
+               return (char *) s1;
+
+       while (*s1) {
+               if (*s1 != c) {
+                       ++s1;
+               } else {
+                       p = s1++;
+                       for (q = s2; *q && *s1 == *q; ++s1, ++q)
+                               /* nothing */;
+                       if (*q == '\0')
+                               return (char *) p;
+               }
+       }
+       return NULL;
+}

Reply via email to