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