From 61d9c1006b06c81b0657a92bfdd225e5312f99cc Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 15 Sep 2015 00:43:55 +1000 Subject: [PATCH] tools: return the right error from device_from_arg Signed-off-by: Peter Hutterer --- tools/ratbag-command.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/ratbag-command.c b/tools/ratbag-command.c index 39a0d967..93b347cf 100644 --- a/tools/ratbag-command.c +++ b/tools/ratbag-command.c @@ -140,29 +140,30 @@ usage(void) " --help .......... Print this help.\n"); } -static inline struct ratbag_device * +static inline int ratbag_cmd_device_from_arg(struct ratbag *ratbag, - int *argc, char **argv) + int *argc, char **argv, + struct ratbag_device **device_out) { struct ratbag_device *device; const char *path; if (*argc == 0) { error("Missing device path.\n"); - usage(); - return NULL; + return ERR_USAGE; } path = argv[*argc - 1]; device = ratbag_cmd_open_device(ratbag, path); if (!device) { error("Device '%s' is not supported\n", path); - return NULL; + return ERR_DEVICE; } (*argc)--; + *device_out = device; - return device; + return SUCCESS; } static inline struct ratbag_profile * @@ -216,12 +217,14 @@ fill_options(struct ratbag *ratbag, struct ratbag_device *device = options->device; struct ratbag_profile *profile = options->profile; struct ratbag_resolution *resolution = options->resolution; + int rc; if ((flags & (FLAG_NEED_DEVICE|FLAG_NEED_PROFILE|FLAG_NEED_RESOLUTION)) && device == NULL) { - device = ratbag_cmd_device_from_arg(ratbag, argc, argv); - if (!device) - return ERR_DEVICE; + rc = ratbag_cmd_device_from_arg(ratbag, argc, argv, + &device); + if (rc != SUCCESS) + return rc; options->device = device; }