OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/base.git] / util / src / TclTk / tcl8.6.12 / compat / strstr.c
diff --git a/util/src/TclTk/tcl8.6.12/compat/strstr.c b/util/src/TclTk/tcl8.6.12/compat/strstr.c
new file mode 100644 (file)
index 0000000..35386d0
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * strstr.c --
+ *
+ *     Source code for the "strstr" library routine.
+ *
+ * Copyright (c) 1988-1993 The Regents of the University of California.
+ * Copyright (c) 1994 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ */
+
+#include "tcl.h"
+#ifndef NULL
+#define NULL 0
+#endif
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * strstr --
+ *
+ *     Locate the first instance of a substring in a string.
+ *
+ * Results:
+ *     If string contains substring, the return value is the location of the
+ *     first matching instance of substring in string. If string doesn't
+ *     contain substring, the return value is 0. Matching is done on an exact
+ *     character-for-character basis with no wildcards or special characters.
+ *
+ * Side effects:
+ *     None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+char *
+strstr(
+    const char *string,                /* String to search. */
+    const char *substring)             /* Substring to try to find in string. */
+{
+    const char *a, *b;
+
+    /*
+     * First scan quickly through the two strings looking for a
+     * single-character match. When it's found, then compare the rest of the
+     * substring.
+     */
+
+    b = substring;
+    if (*b == 0) {
+       return (char *)string;
+    }
+    for ( ; *string != 0; string += 1) {
+       if (*string != *b) {
+           continue;
+       }
+       a = string;
+       while (1) {
+           if (*b == 0) {
+               return (char *)string;
+           }
+           if (*a++ != *b++) {
+               break;
+           }
+       }
+       b = substring;
+    }
+    return NULL;
+}