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