diff --git a/cmdutils.c b/cmdutils.c index 36ef1a9383b67b2c02c4fa19d6ad4868540ad43b..d5095cec808e41d3086246f3f47a246d2b0efdbf 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -98,6 +98,8 @@ unknown_opt: *po->u.int_arg = 1; } else if (po->flags & OPT_INT) { *po->u.int_arg = atoi(arg); + } else if (po->flags & OPT_INT64) { + *po->u.int64_arg = atoll(arg); } else if (po->flags & OPT_FLOAT) { *po->u.float_arg = atof(arg); } else if (po->flags & OPT_FUNC2) { diff --git a/cmdutils.h b/cmdutils.h index 49b753dcf36ff0bcade3e5edd568804a3084ebb8..13a61c09df96eea556810114f9ac5ab3412a5453 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -36,12 +36,14 @@ typedef struct { #define OPT_FLOAT 0x0100 #define OPT_SUBTITLE 0x0200 #define OPT_FUNC2 0x0400 +#define OPT_INT64 0x0800 union { void (*func_arg)(const char *); //FIXME passing error code as int return would be nicer then exit() in the func int *int_arg; char **str_arg; float *float_arg; int (*func2_arg)(const char *, const char *); + int64_t *int64_arg; } u; const char *help; const char *argname;