Ruby: missing/strchr.c Source File

Ruby 4.0.6p0 (2026-07-14 revision 03b6d3f8898a28604fe6cb00eae3226b821168f4)

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}