about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2022-02-26 15:40:11 -0500
committerJune McEnroe <june@causal.agency>2022-02-26 15:40:11 -0500
commit628e064056a02cbc3fb3b758df51559d62c37a10 (patch)
treea10fc7055d9f51f873da5f054494c6e9dfd3412f
parentGive examples of "general events" (diff)
downloadcatgirl-628e064056a02cbc3fb3b758df51559d62c37a10.tar.gz
catgirl-628e064056a02cbc3fb3b758df51559d62c37a10.zip
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;
 	}