From 6e2ecfbeebc255c490b9f7da129405ac3f78dacc Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Mon, 25 Apr 2011 09:35:56 -0400 Subject: [PATCH] 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 --- src/cmd/cmd.c | 17 +++++++++++++++++ src/cmd/cmd.p.h | 1 + 2 files changed, 18 insertions(+) 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); -- 2.39.5