1 #include "lib9.h" 2 int 3 getfields(char *str, char **args, int max, int mflag, char *set) 4 { 5 Rune r; 6 int nr, intok, narg; 7 8 if(max <= 0) 9 return 0; 10 11 narg = 0; 12 args[narg] = str; 13 if(!mflag) 14 narg++; 15 intok = 0; 16 for(;; str += nr) { 17 nr = chartorune(&r, str); 18 if(r == 0) 19 break; 20 if(utfrune(set, r)) { 21 if(narg >= max) 22 break; 23 *str = 0; 24 intok = 0; 25 args[narg] = str + nr; 26 if(!mflag) 27 narg++; 28 } else { 29 if(!intok && mflag) 30 narg++; 31 intok = 1; 32 } 33 } 34 return narg; 35 } 36