commit 12a9ae013e439146484c14ed4419438491da4db5
parent d25e308f9cd10c1a92ae21d47530a010be3d68e1
Author: Rex Hackbro <rex.hackbro@mailbox.org>
Date: Mon, 3 Aug 2020 13:25:08 +0200
fix force_display_urgency_hint parsing
Diffstat:
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/sway/commands/force_display_urgency_hint.c b/sway/commands/force_display_urgency_hint.c
@@ -1,5 +1,6 @@
#include "sway/commands.h"
#include "sway/config.h"
+#include <errno.h>
struct cmd_results *cmd_force_display_urgency_hint(int argc, char **argv) {
struct cmd_results *error = NULL;
@@ -8,13 +9,16 @@ struct cmd_results *cmd_force_display_urgency_hint(int argc, char **argv) {
return error;
}
- char *err;
- int timeout = (int)strtol(argv[0], &err, 10);
- if (*err) {
- if (strcmp(err, "ms") != 0) {
- return cmd_results_new(CMD_INVALID,
- "Expected 'force_display_urgency_hint <timeout> ms'");
- }
+ errno = 0;
+ char *end;
+ int timeout = (int)strtol(argv[0], &end, 10);
+ if (errno || end == argv[0] || (*end && strcmp(end, "ms") != 0)) {
+ return cmd_results_new(CMD_INVALID, "timeout integer invalid");
+ }
+
+ if (argc > 1 && strcmp(argv[1], "ms") != 0) {
+ return cmd_results_new(CMD_INVALID,
+ "Expected 'force_display_urgency_hint <timeout> [ms]'");
}
config->urgent_timeout = timeout > 0 ? timeout : 0;