summaryrefslogtreecommitdiff
path: root/missing/strchr.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-03-06 08:17:54 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-03-06 08:17:54 +0000
commita36e0c78c90917c4d5cc78f67b3808913795f264 (patch)
tree81deaaa0cacb33bd81163aac0a358755c85df2cd /missing/strchr.c
parent4a7d313e4a263f5c2f2f42dd573fa612f0d0c0a7 (diff)
* parse.y (primary): rescue and ensure clauses should be allowed
to appear in singleton method body. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'missing/strchr.c')
-rw-r--r--missing/strchr.c57
1 files changed, 21 insertions, 36 deletions
diff --git a/missing/strchr.c b/missing/strchr.c
index 50714c9942..82f3cc96b0 100644
--- a/missing/strchr.c
+++ b/missing/strchr.c
@@ -1,45 +1,30 @@
-/*
- * strchr --- search a string for a character
- *
- * We supply this routine for those systems that aren't standard yet.
- */
-
-#include <stdio.h>
+/* public domain rewrite of strchr(3) and strrchr(3) */
char *
-strchr(str, c)
-register const char *str, c;
+strchr(s, c)
+ char *s;
+ int 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;
+ if (c == 0) return s + strlen(s);
+ while (*s) {
+ if (*s == c)
+ return s;
+ s++;
+ }
+ return 0;
}
-/*
- * 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;
+strrchr(s, c)
+ char *s;
+ int c;
{
- register const char *save = NULL;
-
- for (; *str; str++)
- if (*str == c)
- save = str;
+ char *save = 0;
- return (char *) save;
+ while (*s) {
+ if (*s == c)
+ save = s;
+ s++;
+ }
+ return save;
}