Mercurial > dovecot > core-2.2
view src/config/config-parser-private.h @ 14629:c93ca5e46a8a
Marked functions parameters that are allowed to be NULL. Some APIs were also changed.
The non-obvious APIs where NULL parameter was changed to "" are
master_service_init() and auth_master_user_list_init().
These checks can currently be enabled only on a patched clang:
http://llvm.org/bugs/show_bug.cgi?id=6786
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 24 Jun 2012 00:52:57 +0300 |
parents | 41cb0217b7c3 |
children | a097ef0a9d6d |
line wrap: on
line source
#ifndef CONFIG_PARSER_PRIVATE_H #define CONFIG_PARSER_PRIVATE_H #include "config-parser.h" #include "config-filter.h" enum config_line_type { CONFIG_LINE_TYPE_SKIP, CONFIG_LINE_TYPE_ERROR, CONFIG_LINE_TYPE_KEYVALUE, CONFIG_LINE_TYPE_KEYFILE, CONFIG_LINE_TYPE_KEYVARIABLE, CONFIG_LINE_TYPE_SECTION_BEGIN, CONFIG_LINE_TYPE_SECTION_END, CONFIG_LINE_TYPE_INCLUDE, CONFIG_LINE_TYPE_INCLUDE_TRY }; struct config_section_stack { struct config_section_stack *prev; struct config_filter filter; /* root=NULL-terminated list of parsers */ struct config_module_parser *parsers; unsigned int pathlen; const char *open_path; unsigned int open_linenum; }; struct input_stack { struct input_stack *prev; struct istream *input; const char *path; unsigned int linenum; }; struct config_parser_context { pool_t pool; const char *path; const char *module; ARRAY_DEFINE(all_parsers, struct config_filter_parser *); struct config_module_parser *root_parsers; struct config_section_stack *cur_section; struct input_stack *cur_input; string_t *str; unsigned int pathlen; unsigned int section_counter; const char *error; struct old_set_parser *old; struct config_filter_context *filter; unsigned int expand_values:1; unsigned int hide_errors:1; }; extern void (*hook_config_parser_begin)(struct config_parser_context *ctx); int config_apply_line(struct config_parser_context *ctx, const char *key, const char *line, const char *section_name) ATTR_NULL(4); void config_parser_apply_line(struct config_parser_context *ctx, enum config_line_type type, const char *key, const char *value); #endif