aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils.c
diff options
context:
space:
mode:
authorJohannes Löthberg <johannes@kyriasis.com>2014-11-10 23:50:09 +0100
committerJohannes Löthberg <johannes@kyriasis.com>2014-11-10 23:50:09 +0100
commita856598c95e5820e855f2483a49db5aa5e97176f (patch)
tree25721736400c99f9d672776766dea56034a31f93 /src/utils.c
parentc9c31d8d15c2e7034a9a4dc1135a95aa60066b6d (diff)
downloadyawa-a856598c95e5820e855f2483a49db5aa5e97176f.tar.xz
Make non-negatable arguments unsigned, make parse_uint
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index 20cc6d4..0441ba2 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -33,6 +33,30 @@ parse_int(char *string, char *arg)
return (int)val;
}
+unsigned int
+parse_uint(char *string, char *arg)
+{
+ errno = 0;
+ char *endptr;
+ unsigned long val = strtoul(string, &endptr, 10);
+ if (errno != 0)
+ {
+ char *errormsg;
+ asprintf(&errormsg, "parse_uint: failed to parse %s", arg);
+
+ perror(errormsg);
+ free(errormsg);
+ exit(-2);
+ }
+
+ if (endptr == string)
+ {
+ fprintf(stderr, "Valid %s not found\n", arg);
+ exit(-2);
+ }
+ return (unsigned int)val;
+}
+
bool
parse_color(char *hex, Color *c, int a)
{