summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJune McEnroe2022-02-26 15:40:11 -0500
committerJune McEnroe2022-02-26 15:40:11 -0500
commit628e064056a02cbc3fb3b758df51559d62c37a10 (patch)
treea10fc7055d9f51f873da5f054494c6e9dfd3412f
parentf51e7b4d2cc601bef8f22d5061ff8fafb012d671 (diff)
Factor out commandAvailable
-rw-r--r--command.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/command.c b/command.c
index a127af3..511bc62 100644
--- a/command.c
+++ b/command.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020 C. McEnroe <june@causal.agency>
+/* Copyright (C) 2020 June McEnroe <june@causal.agency>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -639,6 +639,12 @@ size_t commandWillSplit(uint id, const char *input) {
return 0;
}
+static bool commandAvailable(const struct Handler *handler) {
+ if (handler->flags & Restrict && self.restricted) return false;
+ if (handler->flags & Kiosk && self.kiosk) return false;
+ return true;
+}
+
void command(uint id, char *input) {
if (id == Debug && input[0] != '/' && !self.restricted) {
commandQuote(id, input);
@@ -667,10 +673,7 @@ void command(uint id, char *input) {
uiFormat(id, Warm, NULL, "No such command %s", cmd);
return;
}
- if (
- (self.restricted && handler->flags & Restrict) ||
- (self.kiosk && handler->flags & Kiosk)
- ) {
+ if (!commandAvailable(handler)) {
uiFormat(id, Warm, NULL, "Command %s is unavailable", cmd);
return;
}