DLLIMPORT void cfg_opt_nprint_var(cfg_opt_t *opt, unsigned int index, FILE *fp) { const char *str; assert(opt && fp); switch(opt->type) { case CFGT_INT: fprintf(fp, "%ld", cfg_opt_getnint(opt, index)); break; case CFGT_FLOAT: fprintf(fp, "%lf", cfg_opt_getnfloat(opt, index)); break; case CFGT_STR: str = cfg_opt_getnstr(opt, index); fprintf(fp, "\"%s\"", str ? str : ""); break; case CFGT_BOOL: fprintf(fp, "%s", cfg_opt_getnbool(opt, index) ? "true" : "false"); break; case CFGT_NONE: case CFGT_SEC: case CFGT_FUNC: case CFGT_PTR: break; } }
static void fwup_cfg_opt_nprint_var(cfg_opt_t *opt, unsigned int index, struct simple_string *s) { switch (opt->type) { case CFGT_INT: ssprintf(s, "%ld", cfg_opt_getnint(opt, index)); break; case CFGT_FLOAT: ssprintf(s, "%f", cfg_opt_getnfloat(opt, index)); break; case CFGT_STR: { const char *str = cfg_opt_getnstr(opt, index); ssprintf(s, "\""); while (str && *str) { if (*str == '"') ssprintf(s, "\\\""); else if (*str == '\\') ssprintf(s, "\\\\"); else ssprintf(s, "%c", *str); str++; } ssprintf(s, "\""); break; } case CFGT_BOOL: ssprintf(s, "%s", cfg_opt_getnbool(opt, index) ? "true" : "false"); break; case CFGT_NONE: case CFGT_SEC: case CFGT_FUNC: case CFGT_PTR: break; } }
DLLIMPORT void cfg_opt_nprint_var(cfg_opt_t *opt, unsigned int index, FILE *fp) { const char *str; assert(opt && fp); switch(opt->type) { case CFGT_INT: fprintf(fp, "%ld", cfg_opt_getnint(opt, index)); break; case CFGT_FLOAT: fprintf(fp, "%lf", cfg_opt_getnfloat(opt, index)); break; case CFGT_STR: str = cfg_opt_getnstr(opt, index); fprintf(fp, "\""); while (str && *str) { if(*str == '"') fprintf(fp, "\\\""); else if(*str == '\\') fprintf(fp, "\\\\"); else fprintf(fp, "%c", *str); str++; } fprintf(fp, "\""); break; case CFGT_BOOL: fprintf(fp, "%s", cfg_opt_getnbool(opt, index) ? "true" : "false"); break; case CFGT_NONE: case CFGT_SEC: case CFGT_FUNC: case CFGT_PTR: break; } }
DLLIMPORT cfg_bool_t cfg_getnbool(cfg_t *cfg, const char *name, unsigned int index) { return cfg_opt_getnbool(cfg_getopt(cfg, name), index); }