Add ndblib and iplib
[akaros.git] / user / iplib / getfields.c
1 /* 
2  * This file is part of the UCB release of Plan 9. It is subject to the license
3  * terms in the LICENSE file found in the top-level directory of this
4  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
5  * part of the UCB release of Plan 9, including this file, may be copied,
6  * modified, propagated, or distributed except according to the terms contained
7  * in the LICENSE file.
8  */
9 #include <string.h>
10
11
12 /* currently only used in arp.c; so we don't do the full monty. */
13 int
14 getfields(char *str, char **args, int max, int mflag, char *set)
15 {
16         int nr, intok, narg;
17
18         if(max <= 0)
19                 return 0;
20
21         narg = 0;
22         args[narg] = str;
23         if(!mflag)
24                 narg++;
25         intok = 0;
26         for(;; str++) {
27                 nr = *str;
28                 if(nr == 0)
29                         break;
30                 if(index(set, nr)){
31                         if(narg >= max)
32                                 break;
33                         *str = 0;
34                         intok = 0;
35                         args[narg] = str + 1;
36                         if(!mflag)
37                                 narg++;
38                 } else {
39                         if(!intok && mflag)
40                                 narg++;
41                         intok = 1;
42                 }
43         }
44         return narg;
45 }