From 48d3404727e78c64c58fabcc45c7dd2116ca798a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 23 Jan 2009 18:51:14 +0100 Subject: commands: don't advertise "sticker" unless configured In the return value of the "commands" command, don't list the "sticker" command if no sticker file is configured. --- src/command.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/command.c b/src/command.c index 224c2e0f4..af19b29d1 100644 --- a/src/command.c +++ b/src/command.c @@ -1550,6 +1550,17 @@ static const struct command commands[] = { static const unsigned num_commands = sizeof(commands) / sizeof(commands[0]); +static bool +command_available(const struct command *cmd) +{ +#ifdef ENABLE_SQLITE + if (strcmp(cmd->cmd, "sticker") == 0) + return sticker_enabled(); +#endif + + return true; +} + /* don't be fooled, this is the command handler for "commands" command */ static enum command_return handle_commands(struct client *client, @@ -1561,7 +1572,8 @@ handle_commands(struct client *client, for (unsigned i = 0; i < num_commands; ++i) { cmd = &commands[i]; - if (cmd->permission == (permission & cmd->permission)) + if (cmd->permission == (permission & cmd->permission) && + command_available(cmd)) client_printf(client, "command: %s\n", cmd->cmd); } -- cgit v1.2.3