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) | |
| download | sway-f8bc928b2d3f5166e8d51422c07bc16ca35b0b83.tar.xz | |
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", | 
