Simplifica set_int e set_string.
[cascardo/declara.git] / lib / util.c
index eb2ee8e..bf3352f 100644 (file)
 #include <fcntl.h>
 #include <unistd.h>
 
-int set_llong(char *str, long long *val)
+int set_llong(char *arg, long long *val)
 {
        char *end = NULL;
        errno = 0;
-       *val = strtoll(str, &end, 0);
+       *val = strtoll(arg, &end, 0);
        if (end && *end)
                return -EINVAL;
        if (errno == ERANGE)
@@ -36,13 +36,11 @@ int set_llong(char *str, long long *val)
        return 0;
 }
 
-int set_int(char **args, int argc, int *val)
+int set_int(char *arg, int *val)
 {
        char *end = NULL;
-       if (argc != 2)
-               return -EINVAL;
        errno = 0;
-       *val = strtol(args[1], &end, 0);
+       *val = strtol(arg, &end, 0);
        if (end && *end)
                return -EINVAL;
        if (errno == ERANGE)
@@ -50,11 +48,9 @@ int set_int(char **args, int argc, int *val)
        return 0;
 }
 
-int set_string(char **args, int argc, char **str)
+int set_string(char *arg, char **str)
 {
-       if (argc != 2)
-               return -EINVAL;
-       *str = strdup(args[1]);
+       *str = strdup(arg);
        if (!*str)
                return -errno;
        return 0;