diff --git a/clients/labnag.c b/clients/labnag.c index fa3c3aea..7509d065 100644 --- a/clients/labnag.c +++ b/clients/labnag.c @@ -29,13 +29,12 @@ #include #include #include +#include "action-prompt-codes.h" #include "pool-buffer.h" #include "cursor-shape-v1-client-protocol.h" #include "wlr-layer-shell-unstable-v1-client-protocol.h" #define LABNAG_MAX_HEIGHT 500 -#define LAB_EXIT_FAILURE 255 -#define LAB_EXIT_SUCCESS 0 struct conf { PangoFontDescription *font_description; @@ -1239,6 +1238,7 @@ nag_run(struct nag *nag) wl_display_cancel_read(nag->display); } if (nag->pollfds[FD_TIMER].revents & POLLIN) { + exit_status = LAB_EXIT_TIMEOUT; break; } if (nag->pollfds[FD_SIGNAL].revents & POLLIN) { diff --git a/clients/meson.build b/clients/meson.build index 3a80a4f0..fefd5bd4 100644 --- a/clients/meson.build +++ b/clients/meson.build @@ -50,6 +50,7 @@ executable( server_protos, epoll_dep, ], + include_directories: [labwc_inc], install: true ) diff --git a/include/action-prompt-codes.h b/include/action-prompt-codes.h new file mode 100644 index 00000000..d1ca0f05 --- /dev/null +++ b/include/action-prompt-codes.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +#ifndef LABWC_ACTION_PROMPT_CODES_H +#define LABWC_ACTION_PROMPT_CODES_H + +#define LAB_EXIT_FAILURE 255 +#define LAB_EXIT_TIMEOUT 254 +#define LAB_EXIT_SUCCESS 0 + +#endif /* LABWC_ACTION_PROMPT_CODES_H */ diff --git a/src/action.c b/src/action.c index eb027087..f377e3bd 100644 --- a/src/action.c +++ b/src/action.c @@ -8,6 +8,7 @@ #include #include #include +#include "action-prompt-codes.h" #include "common/macros.h" #include "common/list.h" #include "common/mem.h" @@ -860,9 +861,11 @@ action_check_prompt_result(pid_t pid, int exit_code) wlr_log(WLR_INFO, "Found pending prompt for exit code %d", exit_code); struct wl_list *actions = NULL; - if (exit_code == 0) { + if (exit_code == LAB_EXIT_SUCCESS) { wlr_log(WLR_INFO, "Selected the 'then' branch"); actions = action_get_actionlist(prompt->action, "then"); + } else if (exit_code == LAB_EXIT_TIMEOUT) { + /* no-op */ } else { wlr_log(WLR_INFO, "Selected the 'else' branch"); actions = action_get_actionlist(prompt->action, "else");