From: Simon Wilkinson Date: Mon, 25 Apr 2011 13:35:56 +0000 (-0400) Subject: cmd: Add cmd_OptionAsUint X-Git-Tag: upstream/1.8.0_pre1^2~3721 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=6e2ecfbeebc255c490b9f7da129405ac3f78dacc;p=packages%2Fo%2Fopenafs.git cmd: Add cmd_OptionAsUint Add an accessor function which can return a unsigned int for an option value. Change-Id: I33bc9a2618191ca60b95086624100b54efb05ab2 Reviewed-on: http://gerrit.openafs.org/4652 Reviewed-by: Derrick Brashear Tested-by: BuildBot --- diff --git a/src/cmd/cmd.c b/src/cmd/cmd.c index 764b95cce..4362ba0af 100644 --- a/src/cmd/cmd.c +++ b/src/cmd/cmd.c @@ -1259,6 +1259,23 @@ cmd_OptionAsInt(struct cmd_syndesc *syn, int pos, int *value) return 0; } +int +cmd_OptionAsUint(struct cmd_syndesc *syn, int pos, + unsigned int *value) +{ + if (pos > syn->nParms) + return CMD_EXCESSPARMS; + if (syn->parms[pos].items == NULL || + syn->parms[pos].items->data == NULL) + return CMD_MISSING; + if (syn->parms[pos].items == &dummy) + return 0; + + *value = strtoul(syn->parms[pos].items->data, NULL, 10); + + return 0; +} + int cmd_OptionAsString(struct cmd_syndesc *syn, int pos, char **value) { diff --git a/src/cmd/cmd.p.h b/src/cmd/cmd.p.h index 8280614ee..75c294523 100644 --- a/src/cmd/cmd.p.h +++ b/src/cmd/cmd.p.h @@ -90,6 +90,7 @@ extern void PrintFlagHelp(struct cmd_syndesc *as); extern int cmd_Parse(int argc, char **argv, struct cmd_syndesc **outsyntax); extern void cmd_FreeOptions(struct cmd_syndesc **ts); extern int cmd_OptionAsInt(struct cmd_syndesc *syn, int pos, int *value); +extern int cmd_OptionAsUint(struct cmd_syndesc *, int, unsigned int *); extern int cmd_OptionAsString(struct cmd_syndesc *syn, int pos, char **value); extern int cmd_OptionAsList(struct cmd_syndesc *syn, int pos, struct cmd_item **); extern int cmd_OptionAsFlag(struct cmd_syndesc *syn, int pos, int *value);