Ruby 3.5.0dev (2025-01-10 revision 5fab31b15e32622c4b71d1d347a41937e9f9c212)
strchr.c
1/* public domain rewrite of strchr(3) and strrchr(3) */
2
3#include "ruby/missing.h"
4
5size_t strlen(const char*);
6
7char *
8strchr(const char *s, int c)
9{
10 if (c == 0) return (char *)s + strlen(s);
11 while (*s) {
12 if (*s == c)
13 return (char *)s;
14 s++;
15 }
16 return 0;
17}
18
19char *
20strrchr(const char *s, int c)
21{
22 const char *save;
23
24 if (c == 0) return (char *)s + strlen(s);
25 save = 0;
26 while (*s) {
27 if (*s == c)
28 save = s;
29 s++;
30 }
31 return (char *)save;
32}