#ifndef _CONFIG_H_5d3fd993_ #define _CONFIG_H_5d3fd993_ /* This file is in the public domain. */ #include "structs.h" /* * Main entry to this file. Does a config-file reload, parsing the new * config and, if it succeeds, switching to the new configuration. */ extern int reload_config(void); /* * Print a warning about the config file. A newline will be appended, * so the format should not normally contain one. * * This function returns normally. */ void config_warn(CONFIG *, const char *, ...) __attribute__((__format__(__printf__,2,3))); /* * Print an error about the config file. A newline will be appended, * so the format should not normally contain one. * * This function throws out. */ void config_err(CONFIG *, const char *, ...) __attribute__((__format__(__printf__,2,3),__noreturn__)); /* * This is just like config_err(), above, except the first argument is * called through immediately after the message is generated and * before the throw is done. This wouldn't be needed if gcc provided * an unwind-protect for nonlocal goto throws, but it doesn't (and * quite likely shouldn't, actually). We use this when we want to, * eg, free a mallocked string that's needed for the printf but * shouldn't be leaked when we throw. */ void config_err_post(void (*)(void), CONFIG *, const char *, ...) __attribute__((__format__(__printf__,3,4),__noreturn__)); #endif