Ruby: missing/strchr.c Source File

Ruby 3.2.5p208 (2024-07-26 revision 31d0f1a2e7dbfb60731d1f05b868e1d578cda493)

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}