Esempio n. 1
0
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;
    }
}
Esempio n. 2
0
static int
validate_require_nonnegative(cfg_t *cfg, cfg_opt_t *opt)
{
    if (opt->type == CFGT_INT) {
        long int value = cfg_opt_getnint(opt, cfg_opt_size(opt) - 1);
        if (value < 0) {
            cfg_error(cfg, "Value for option %s can't be negative in %s section \"%s\"",
                opt->name, cfg->name, cfg_title(cfg));
            return -1;
        }
    } else if (opt->type == CFGT_FLOAT) {
        double value = cfg_opt_getnfloat(opt, cfg_opt_size(opt) - 1);
        if (value < 0.0) {
            cfg_error(cfg, "Value for option %s can't be negative in %s section \"%s\"",
                opt->name, cfg->name, cfg_title(cfg));
            return -1;
        }
    }

    return 0;
}
Esempio n. 3
0
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;
    }
}
Esempio n. 4
0
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;
    }
}
Esempio n. 5
0
DLLIMPORT double cfg_getnfloat(cfg_t *cfg, const char *name,
                               unsigned int index)
{
    return cfg_opt_getnfloat(cfg_getopt(cfg, name), index);
}