| /* | 
 |  * This file is part of the UCB release of Plan 9. It is subject to the license | 
 |  * terms in the LICENSE file found in the top-level directory of this | 
 |  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No | 
 |  * part of the UCB release of Plan 9, including this file, may be copied, | 
 |  * modified, propagated, or distributed except according to the terms contained | 
 |  * in the LICENSE file. | 
 |  */ | 
 | #include <string.h> | 
 |  | 
 | /* currently only used in arp.c; so we don't do the full monty. */ | 
 | int getfields(char *str, char **args, int max, int mflag, char *set) | 
 | { | 
 | 	int nr, intok, narg; | 
 |  | 
 | 	if (max <= 0) | 
 | 		return 0; | 
 |  | 
 | 	narg = 0; | 
 | 	args[narg] = str; | 
 | 	if (!mflag) | 
 | 		narg++; | 
 | 	intok = 0; | 
 | 	for (;; str++) { | 
 | 		nr = *str; | 
 | 		if (nr == 0) | 
 | 			break; | 
 | 		if (index(set, nr)) { | 
 | 			if (narg >= max) | 
 | 				break; | 
 | 			*str = 0; | 
 | 			intok = 0; | 
 | 			args[narg] = str + 1; | 
 | 			if (!mflag) | 
 | 				narg++; | 
 | 		} else { | 
 | 			if (!intok && mflag) | 
 | 				narg++; | 
 | 			intok = 1; | 
 | 		} | 
 | 	} | 
 | 	return narg; | 
 | } |