3 * Mapping from user command name to function
6 * Copyright (C) 2016 Bernard Pratz <z+mutt+pub@m0g.net>
9 * This program is free software: you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License as published by the Free Software
11 * Foundation, either version 2 of the License, or (at your option) any later
14 * This program is distributed in the hope that it will be useful, but WITHOUT
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
19 * You should have received a copy of the GNU General Public License along with
20 * this program. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef MUTT_MUTT_COMMANDS_H
24 #define MUTT_MUTT_COMMANDS_H
29 * enum CommandResult - Error codes for command_t parse functions
33 MUTT_CMD_ERROR = -1, ///< Error: Can't help the user
34 MUTT_CMD_WARNING = -2, ///< Warning: Help given to the user
35 MUTT_CMD_SUCCESS = 0, ///< Success: Command worked
36 MUTT_CMD_FINISH = 1 ///< Finish: Stop processing this file
40 * typedef command_t - Prototype for a function to parse a command
41 * @param buf Temporary Buffer space
42 * @param s Buffer containing string to be parsed
43 * @param data Flags associated with the command
44 * @param err Buffer for error messages
45 * @retval #CommandResult Result e.g. #MUTT_CMD_SUCCESS
47 typedef enum CommandResult (*command_t)(struct Buffer *buf, struct Buffer *s, unsigned long data, struct Buffer *err);
50 * struct Command - A user-callable command
54 const char *name; /**< Name of the command */
55 command_t func; /**< Function to parse the command */
56 unsigned long data; /**< Data or flags to pass to the command */
59 const struct Command *mutt_command_get(const char *s);
60 void mutt_commands_apply(void *data, void (*application)(void *, const struct Command *));
62 #endif /* MUTT_MUTT_COMMANDS_H */