Mercurial > dovecot > core-2.2
view src/lib/var-expand-private.h @ 22664:fea53c2725c0
director: Fix director_max_parallel_moves/kicks type
Should be uint, not time.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 09 Nov 2017 12:24:16 +0200 |
parents | 3bae5694a7a5 |
children |
line wrap: on
line source
#ifndef VAR_EXPAND_PRIVATE_H #define VAR_EXPAND_PRIVATE_H 1 struct var_expand_context { /* current variables */ const struct var_expand_table *table; /* caller provided function table */ const struct var_expand_func_table *func_table; /* caller provided context */ void *context; /* last offset, negative counts from end*/ int offset; /* last width, negative counts from end */ int width; /* last zero padding */ bool zero_padding:1; }; /* this can be used to register a *global* function that is prepended to function table. These can be used to register some special handling for keys. you can call var_expand_with_funcs if you need to expand something inside here. return -1 on error, 0 on unknown variable, 1 on success */ typedef int var_expand_extension_func_t(struct var_expand_context *ctx, const char *key, const char *field, const char **result_r, const char **error_r); struct var_expand_extension_func_table { const char *key; var_expand_extension_func_t *func; }; int var_expand_long(struct var_expand_context *ctx, const void *key_start, size_t key_len, const char **var_r, const char **error_r); void var_expand_extensions_init(void); void var_expand_extensions_deinit(void); /* Functions registered here are placed before in-built functions, so you can include your own implementation of something. Be careful. Use NULL terminated list. */ void var_expand_register_func_array(const struct var_expand_extension_func_table *funcs); void var_expand_unregister_func_array(const struct var_expand_extension_func_table *funcs); int var_expand_if(struct var_expand_context *ctx, const char *key, const char *field, const char **result_r, const char **error_r); #endif