diff --git a/cmdutils.c b/cmdutils.c index 36ef1a9383..d5095cec80 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 49b753dcf3..13a61c09df 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;