1*3cd4f1d1SCharles Forsyth #include "lib9.h" 237da2899SCharles.Forsyth 337da2899SCharles.Forsyth char* utfrune(char * s,long c)437da2899SCharles.Forsythutfrune(char *s, long c) 537da2899SCharles.Forsyth { 637da2899SCharles.Forsyth long c1; 737da2899SCharles.Forsyth Rune r; 837da2899SCharles.Forsyth int n; 937da2899SCharles.Forsyth 1037da2899SCharles.Forsyth if(c < Runesync) /* not part of utf sequence */ 1137da2899SCharles.Forsyth return strchr(s, c); 1237da2899SCharles.Forsyth 1337da2899SCharles.Forsyth for(;;) { 1437da2899SCharles.Forsyth c1 = *(uchar*)s; 1537da2899SCharles.Forsyth if(c1 < Runeself) { /* one byte rune */ 1637da2899SCharles.Forsyth if(c1 == 0) 1737da2899SCharles.Forsyth return 0; 1837da2899SCharles.Forsyth if(c1 == c) 1937da2899SCharles.Forsyth return s; 2037da2899SCharles.Forsyth s++; 2137da2899SCharles.Forsyth continue; 2237da2899SCharles.Forsyth } 2337da2899SCharles.Forsyth n = chartorune(&r, s); 2437da2899SCharles.Forsyth if(r == c) 2537da2899SCharles.Forsyth return s; 2637da2899SCharles.Forsyth s += n; 2737da2899SCharles.Forsyth } 2837da2899SCharles.Forsyth } 29