diff options
author | Robert Kubosz <kubosz.robert@gmail.com> | 2018-07-12 23:50:34 +0200 |
---|---|---|
committer | Robert Kubosz <kubosz.robert@gmail.com> | 2018-07-12 23:50:34 +0200 |
commit | 89db5b57165a0805c9e79aafdb7cf047e877152f (patch) | |
tree | 5ceb943821f80a2c4e807a3a164576037e7ffd6a /sway/commands/input | |
parent | 094edcbea2f587942afdb539efb5a9e46b53113a (diff) |
expanded error detection for scroll button option
Now the scroll_button will not accept:
- letters on string beginning;
- negative numbers.
What is tolerated:
- letters after number;
- rational numbers: the fraction after dot will be omitted.
Diffstat (limited to 'sway/commands/input')
-rw-r--r-- | sway/commands/input/scroll_button.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sway/commands/input/scroll_button.c b/sway/commands/input/scroll_button.c index d19f3516..6345b71b 100644 --- a/sway/commands/input/scroll_button.c +++ b/sway/commands/input/scroll_button.c @@ -18,11 +18,17 @@ struct cmd_results *input_cmd_scroll_button(int argc, char **argv) { struct input_config *new_config = new_input_config(current_input_config->identifier); - int scroll_button = atoi(argv[0]); + char *endptr; + long 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 (scroll_button < 0) { free_input_config(new_config); return cmd_results_new(CMD_INVALID, "scroll_button", - "Scroll button identifier cannot be negative"); + "Scroll button identifier cannot be negative."); } new_config->scroll_button = scroll_button; |