aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sway/ipc-json.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c
index d3731092..1ebc3bd2 100644
--- a/sway/ipc-json.c
+++ b/sway/ipc-json.c
@@ -384,8 +384,19 @@ static json_object *ipc_json_describe_scratchpad_output(void) {
384 384
385static void ipc_json_describe_workspace(struct sway_workspace *workspace, 385static void ipc_json_describe_workspace(struct sway_workspace *workspace,
386 json_object *object) { 386 json_object *object) {
387 int num = isdigit(workspace->name[0]) ? atoi(workspace->name) : -1; 387 int num;
388 388 if (isdigit(workspace->name[0])) {
389 errno = 0;
390 char *endptr = NULL;
391 long long parsed_num = strtoll(workspace->name, &endptr, 10);
392 if (errno != 0 || parsed_num > INT32_MAX || parsed_num < 0 || endptr == workspace->name) {
393 num = -1;
394 } else {
395 num = (int) parsed_num;
396 }
397 } else {
398 num = -1;
399 }
389 json_object_object_add(object, "num", json_object_new_int(num)); 400 json_object_object_add(object, "num", json_object_new_int(num));
390 json_object_object_add(object, "fullscreen_mode", json_object_new_int(1)); 401 json_object_object_add(object, "fullscreen_mode", json_object_new_int(1));
391 json_object_object_add(object, "output", workspace->output ? 402 json_object_object_add(object, "output", workspace->output ?