Parse and execute user-defined hooks. More...
#include "config.h"#include <limits.h>#include <stdbool.h>#include <string.h>#include <unistd.h>#include "mutt/lib.h"#include "address/lib.h"#include "config/lib.h"#include "email/lib.h"#include "core/lib.h"#include "alias/lib.h"#include "hook.h"#include "attach/lib.h"#include "compmbox/lib.h"#include "expando/lib.h"#include "index/lib.h"#include "parse/lib.h"#include "pattern/lib.h"#include "commands.h"#include "globals.h"#include "muttlib.h"#include "mx.h"
Include dependency graph for hook.c:Go to the source code of this file.
Data Structures | |
| struct | Hook |
| A list of user hooks. More... | |
Functions | |
| TAILQ_HEAD (HookList, Hook) | |
| static void | hook_free (struct Hook **ptr) |
| Free a Hook. | |
| static struct Hook * | hook_new (void) |
| Create a Hook. | |
| enum CommandResult | parse_hook_charset (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse charset hook commands - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_global (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse global hook commands - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_pattern (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse pattern-based hook commands - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_mailbox (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse mailbox pattern hook commands - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_regex (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse regex-based hook command - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_folder (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse folder hook command - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_crypt (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse crypt hook commands - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_mbox (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse mbox hook command - Implements Command::parse() -. | |
| enum CommandResult | parse_hook_compress (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse compress hook commands - Implements Command::parse() -. | |
| void | mutt_delete_hooks (HookFlags type) |
| Delete matching hooks. | |
| static void | idxfmt_hashelem_free (int type, void *obj, intptr_t data) |
| Free our hash table data - Implements hash_hdata_free_t -. | |
| static void | delete_idxfmt_hooks (void) |
| Delete all the index-format-hooks. | |
| enum CommandResult | parse_hook_index (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse the index format hook command - Implements Command::parse() -. | |
| static HookFlags | mutt_get_hook_type (const char *name) |
| Find a hook by name. | |
| enum CommandResult | parse_unhook (const struct Command *cmd, struct Buffer *line, struct Buffer *err) |
| Parse the unhook command - Implements Command::parse() -. | |
| void | mutt_folder_hook (const char *path, const char *desc) |
| Perform a folder hook. | |
| char * | mutt_find_hook (HookFlags type, const char *pat) |
| Find a matching hook. | |
| void | mutt_message_hook (struct Mailbox *m, struct Email *e, HookFlags type) |
| Perform a message hook. | |
| static int | addr_hook (struct Buffer *path, HookFlags type, struct Mailbox *m, struct Email *e) |
| Perform an address hook (get a path) | |
| void | mutt_default_save (struct Buffer *path, struct Email *e) |
| Find the default save path for an email. | |
| void | mutt_select_fcc (struct Buffer *path, struct Email *e) |
| Select the FCC path for an email. | |
| static void | list_hook (struct ListHead *matches, const char *match, HookFlags type) |
| Find hook strings matching. | |
| void | mutt_crypt_hook (struct ListHead *list, struct Address *addr) |
| Find crypto hooks for an Address. | |
| void | mutt_account_hook (const char *url) |
| Perform an account hook. | |
| void | mutt_timeout_hook (void) |
| Execute any timeout hooks. | |
| void | mutt_startup_shutdown_hook (HookFlags type) |
| Execute any startup/shutdown hooks. | |
| const struct Expando * | mutt_idxfmt_hook (const char *name, struct Mailbox *m, struct Email *e) |
| Get index-format-hook format string. | |
| void | hooks_init (void) |
| Setup feature commands. | |
Variables | |
| const struct ExpandoDefinition | IndexFormatDef [] |
| Expando definitions. | |
| static struct HookList | Hooks = TAILQ_HEAD_INITIALIZER(Hooks) |
| All simple hooks, e.g. MUTT_FOLDER_HOOK. | |
| static struct HashTable * | IdxFmtHooks = NULL |
| All Index Format hooks. | |
| static HookFlags | CurrentHookType = MUTT_HOOK_NO_FLAGS |
| The type of the hook currently being executed, e.g. MUTT_SAVE_HOOK. | |
| static const struct Command | HookCommands [] |
| Hook Commands. | |
Parse and execute user-defined hooks.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Definition in file hook.c.
| TAILQ_HEAD | ( | HookList | , |
| Hook | ) |
|
static |
Free a Hook.
| ptr | Hook to free |
Definition at line 90 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| void mutt_delete_hooks | ( | HookFlags | type | ) |
|
static |
|
static |
Find a hook by name.
| name | Name to find |
| num | Hook ID, e.g. MUTT_FOLDER_HOOK |
| MUTT_HOOK_NO_FLAGS | Error, no matching hook |
Definition at line 1197 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void mutt_folder_hook | ( | const char * | path, |
| const char * | desc ) |
Perform a folder hook.
| path | Path to potentially match |
| desc | Description to potentially match |
Definition at line 1291 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:| char * mutt_find_hook | ( | HookFlags | type, |
| const char * | pat ) |
Perform a message hook.
Definition at line 1360 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Perform an address hook (get a path)
| 0 | Success |
| -1 | Failure |
Definition at line 1406 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:Find the default save path for an email.
Definition at line 1438 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:Select the FCC path for an email.
Definition at line 1476 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Find hook strings matching.
| [out] | matches | List of hook strings |
| [in] | match | String to match |
| [in] | type | Hook type, see HookFlags |
Definition at line 1518 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void mutt_crypt_hook | ( | struct ListHead * | list, |
| struct Address * | addr ) |
Find crypto hooks for an Address.
| [out] | list | List of keys |
| [in] | addr | Address to match |
The crypt-hook associates keys with addresses.
Definition at line 1538 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void mutt_account_hook | ( | const char * | url | ) |
Perform an account hook.
| url | Account URL to match |
Definition at line 1547 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void mutt_timeout_hook | ( | void | ) |
Execute any timeout hooks.
The user can configure hooks to be run on timeout. This function finds all the matching hooks and executes them.
Definition at line 1592 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void mutt_startup_shutdown_hook | ( | HookFlags | type | ) |
Execute any startup/shutdown hooks.
| type | Hook type: MUTT_STARTUP_HOOK or MUTT_SHUTDOWN_HOOK |
The user can configure hooks to be run on startup/shutdown. This function finds all the matching hooks and executes them.
Definition at line 1624 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:Get index-format-hook format string.
| ptr | Expando |
| NULL | No matching hook |
Definition at line 1651 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void hooks_init | ( | void | ) |
Setup feature commands.
Definition at line 1769 of file hook.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
extern |
Expando definitions.
Config:
Definition at line 320 of file mutt_config.c.
|
static |
|
static |
|
static |
The type of the hook currently being executed, e.g. MUTT_SAVE_HOOK.
|
static |
Hook Commands.
Definition at line 1684 of file hook.c.