blob: 749fb041de3926ae9cca527e63f5dcd84249298f [file] [log] [blame] [edit]
/*
* 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;
}