cmd: Add cmd_OptionAsUint
authorSimon Wilkinson <sxw@your-file-system.com>
Mon, 25 Apr 2011 13:35:56 +0000 (09:35 -0400)
committerDerrick Brashear <shadow@dementia.org>
Wed, 25 May 2011 19:47:20 +0000 (12:47 -0700)
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 <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/cmd/cmd.c
src/cmd/cmd.p.h

index 764b95c..4362ba0 100644 (file)
@@ -1260,6 +1260,23 @@ cmd_OptionAsInt(struct cmd_syndesc *syn, int pos, int *value)
 }
 
 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)
 {
     if (pos > syn->nParms)
index 8280614..75c2945 100644 (file)
@@ -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);