summaryrefslogtreecommitdiffstats
path: root/private/crt32/string/strstr.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/crt32/string/strstr.c')
-rw-r--r--private/crt32/string/strstr.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/private/crt32/string/strstr.c b/private/crt32/string/strstr.c
new file mode 100644
index 000000000..d523dbbef
--- /dev/null
+++ b/private/crt32/string/strstr.c
@@ -0,0 +1,68 @@
+/***
+*strstr.c - search for one string inside another
+*
+* Copyright (c) 1985-1991, Microsoft Corporation. All rights reserved.
+*
+*Purpose:
+* defines strstr() - search for one string inside another
+*
+*Revision History:
+* 02-27-90 GJF Fixed calling type, #include <cruntime.h>, fixed
+* copyright.
+* 08-14-90 SBM Removed now redundant #include <stddef.h>
+* 10-02-90 GJF New-style function declarator.
+* 03-14-94 GJF If string2 is empty, return string1.
+*
+*******************************************************************************/
+
+#include <cruntime.h>
+#include <string.h>
+
+/***
+*char *strstr(string1, string2) - search for string2 in string1
+*
+*Purpose:
+* finds the first occurrence of string2 in string1
+*
+*Entry:
+* char *string1 - string to search in
+* char *string2 - string to search for
+*
+*Exit:
+* returns a pointer to the first occurrence of string2 in
+* string1, or NULL if string2 does not occur in string1
+*
+*Uses:
+*
+*Exceptions:
+*
+*******************************************************************************/
+
+char * _CALLTYPE1 strstr (
+ const char * str1,
+ const char * str2
+ )
+{
+ char *cp = (char *) str1;
+ char *s1, *s2;
+
+ if ( !*str2 )
+ return(str1);
+
+ while (*cp)
+ {
+ s1 = cp;
+ s2 = (char *) str2;
+
+ while ( *s1 && *s2 && !(*s1-*s2) )
+ s1++, s2++;
+
+ if (!*s2)
+ return(cp);
+
+ cp++;
+ }
+
+ return(NULL);
+
+}