1 #include "lib9.h"
2 int
getfields(char * str,char ** args,int max,int mflag,char * set)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