diff options
author | Robert Kubosz <kubosz.robert@gmail.com> | 2018-07-13 11:39:39 +0200 |
---|---|---|
committer | Robert Kubosz <kubosz.robert@gmail.com> | 2018-07-13 11:39:39 +0200 |
commit | f8bc928b2d3f5166e8d51422c07bc16ca35b0b83 (patch) | |
tree | f65f198f5945a92c4cc91f7218197e4aff2fd8de /sway/commands/input | |
parent | 89db5b57165a0805c9e79aafdb7cf047e877152f (diff) |
add error handling for scroll button out of range
user will be informed if the scroll button indentifier values causes
underflow or overflow.
Diffstat (limited to 'sway/commands/input')
-rw-r--r-- | sway/commands/input/scroll_button.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sway/commands/input/scroll_button.c b/sway/commands/input/scroll_button.c index 6345b71b..350fcca2 100644 --- a/sway/commands/input/scroll_button.c +++ b/sway/commands/input/scroll_button.c @@ -1,5 +1,6 @@ #include <string.h> #include <strings.h> +#include <errno.h> #include "sway/config.h" #include "sway/commands.h" #include "sway/input/input-manager.h" @@ -18,13 +19,19 @@ struct cmd_results *input_cmd_scroll_button(int argc, char **argv) { struct input_config *new_config = new_input_config(current_input_config->identifier); + errno = 0; char *endptr; - long scroll_button = strtol(*argv, &endptr, 10); + int scroll_button = strtol(*argv, &endptr, 10); if (endptr == *argv && scroll_button == 0) { free_input_config(new_config); return cmd_results_new(CMD_INVALID, "scroll_button", "Scroll button identifier must be an integer."); } + if (errno == ERANGE) { + free_input_config(new_config); + return cmd_results_new(CMD_INVALID, "scroll_button", + "Scroll button identifier out of range."); + } if (scroll_button < 0) { free_input_config(new_config); return cmd_results_new(CMD_INVALID, "scroll_button", |