12345678910111213141516171819202122232425262728293031 |
- #include <u.h>
- #include <libc.h>
- char*
- utfrrune(char *s, long c)
- {
- long c1;
- Rune r;
- char *s1;
- if(c < Runesync) /* not part of utf sequence */
- return strrchr(s, c);
- s1 = 0;
- for(;;) {
- c1 = *(uchar*)s;
- if(c1 < Runeself) { /* one byte rune */
- if(c1 == 0)
- return s1;
- if(c1 == c)
- s1 = s;
- s++;
- continue;
- }
- c1 = chartorune(&r, s);
- if(r == c)
- s1 = s;
- s += c1;
- }
- return 0;
- }
|