summaryrefslogtreecommitdiffstats
path: root/missing/strchr.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-08-13 05:45:20 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-08-13 05:45:20 +0000
commit07bb9f21f56b0d066c44c62b0e6be35eb0e0fd51 (patch)
tree082bb7d5568f3b2e36e3fe166e9f3039394fcf44 /missing/strchr.c
parentf746453a4ae16f643b2ae8c0d6ec77a2e63b4eb1 (diff)
downloadruby-07bb9f21f56b0d066c44c62b0e6be35eb0e0fd51.tar.gz
ruby-07bb9f21f56b0d066c44c62b0e6be35eb0e0fd51.tar.xz
ruby-07bb9f21f56b0d066c44c62b0e6be35eb0e0fd51.zip
1.4.0
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@520 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'missing/strchr.c')
-rw-r--r--missing/strchr.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/missing/strchr.c b/missing/strchr.c
new file mode 100644
index 000000000..50714c994
--- /dev/null
+++ b/missing/strchr.c
@@ -0,0 +1,45 @@
+/*
+ * strchr --- search a string for a character
+ *
+ * We supply this routine for those systems that aren't standard yet.
+ */
+
+#include <stdio.h>
+
+char *
+strchr(str, c)
+register const char *str, c;
+{
+ if (c == '\0') {
+ /* thanks to Mike Brennan ... */
+ do {
+ if (*str == c)
+ return (char *) str;
+ } while (*str++);
+ } else {
+ for (; *str; str++)
+ if (*str == c)
+ return (char *) str;
+ }
+
+ return NULL;
+}
+
+/*
+ * strrchr --- find the last occurrence of a character in a string
+ *
+ * We supply this routine for those systems that aren't standard yet.
+ */
+
+char *
+strrchr(str, c)
+register const char *str, c;
+{
+ register const char *save = NULL;
+
+ for (; *str; str++)
+ if (*str == c)
+ save = str;
+
+ return (char *) save;
+}