]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
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 764b95cce2541b36bd77bcf3588c0ab5f8c67dd4..4362ba0af9fd16954c1c19f940857c4142f89af0 100644 (file)
@@ -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)
 {
index 8280614eeaf961fa87b419c06e9cac1635259bfb..75c29452369df93423a68406c836344911e893fd 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);