From 1cde4975c396e8d3e3d801940d58ff081279a777 Mon Sep 17 00:00:00 2001 From: quadratic Date: Mon, 2 Feb 2026 22:33:10 +0100 Subject: [PATCH] fix: undefined behaviour in tagmon and tagcrossmon --- src/config/parse_config.h | 1 + src/dispatch/bind_define.h | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/config/parse_config.h b/src/config/parse_config.h index f7ce848..d3337ae 100644 --- a/src/config/parse_config.h +++ b/src/config/parse_config.h @@ -990,6 +990,7 @@ FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value, } } else if (strcmp(func_name, "tagmon") == 0) { func = tagmon; + (*arg).ui = 0; (*arg).i = parse_direction(arg_value); (*arg).i2 = atoi(arg_value2); if ((*arg).i == UNDIR) { diff --git a/src/dispatch/bind_define.h b/src/dispatch/bind_define.h index c0e51dc..062d895 100644 --- a/src/dispatch/bind_define.h +++ b/src/dispatch/bind_define.h @@ -1068,7 +1068,7 @@ int32_t tagmon(const Arg *arg) { if (!m || !m->wlr_output->enabled) return 0; - uint32_t newtags = arg->ui ? arg->ui : arg->i2 ? c->tags : 0; + uint32_t newtags = arg->ui != 0 ? arg->ui : arg->i2 != 0 ? c->tags : 1; uint32_t target; if (c->mon == m) { @@ -1730,4 +1730,4 @@ int32_t scroller_stack(const Arg *arg) { arrange(selmon, false, false); return 0; -} \ No newline at end of file +}