# HG changeset patch # User alex # Date 1008604236 0 # Node ID f61dcc63be5f0f3e3987b52cee415dce087e7c5a # Parent 1dbf58c3d50c8ee848b08a407dd0d5cabe67d2fd exchanged return with goto out in subconfig parsing and fixed error messages diff -r 1dbf58c3d50c -r f61dcc63be5f cfgparser.c --- a/cfgparser.c Mon Dec 17 14:19:37 2001 +0000 +++ b/cfgparser.c Mon Dec 17 15:50:36 2001 +0000 @@ -118,7 +118,7 @@ !strcmp(param, "0")) *((int *) conf[i].p) = conf[i].min; else { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "invalid parameter for flag:\n"); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "invalid parameter for flag: %s\n", param); ret = ERR_OUT_OF_RANGE; goto out; } @@ -134,21 +134,21 @@ tmp_int = strtol(param, &endptr, 0); if (*endptr) { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be an integer:\n"); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be an integer: %s\n", param); ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MIN) if (tmp_int < conf[i].min) { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be >= %d:\n", (int) conf[i].min); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be >= %d: %s\n", (int) conf[i].min, param); ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MAX) if (tmp_int > conf[i].max) { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be <= %d:\n", (int) conf[i].max); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be <= %d: %s\n", (int) conf[i].max, param); ret = ERR_OUT_OF_RANGE; goto out; } @@ -167,22 +167,21 @@ if (*endptr) { mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be a floating point number" - " or a ratio (numerator[:/]denominator):\n"); - + " or a ratio (numerator[:/]denominator): %s\n", param); ret = ERR_MISSING_PARAM; goto out; } if (conf[i].flags & CONF_MIN) if (tmp_float < conf[i].min) { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be >= %f:\n", conf[i].min); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be >= %f: %s\n", conf[i].min, param); ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MAX) if (tmp_float > conf[i].max) { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be <= %f:\n", conf[i].max); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be <= %f: %s\n", conf[i].max, param); ret = ERR_OUT_OF_RANGE; goto out; } @@ -196,20 +195,19 @@ if (conf[i].flags & CONF_MIN) if (strlen(param) < conf[i].min) { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be >= %d chars:\n", - (int) conf[i].min); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be >= %d chars: %s\n", + (int) conf[i].min, param); ret = ERR_OUT_OF_RANGE; goto out; } if (conf[i].flags & CONF_MAX) if (strlen(param) > conf[i].max) { - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be <= %d chars:\n", - (int) conf[i].max); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "parameter must be <= %d chars: %s\n", + (int) conf[i].max, param); ret = ERR_OUT_OF_RANGE; goto out; } - *((char **) conf[i].p) = strdup(param); ret = 1; break; @@ -261,26 +259,26 @@ token = strtok(param, (char *)&(":")); while(token) { - int ret; - int err; + int sscanf_ret; - ret = sscanf(token, "%[^=]=%s", subopt, subparam); - switch(ret) + sscanf_ret = sscanf(token, "%[^=]=%s", subopt, subparam); + switch(sscanf_ret) { case 1: case 2: - if ((err = read_option((struct config *)subconf, subconf_optnr, subopt, subparam)) < 0) + if ((ret = read_option((struct config *)subconf, subconf_optnr, subopt, subparam)) < 0) { mp_msg(MSGT_CFGPARSER, MSGL_ERR, "Subconfig parsing returned error: %d in token: %s\n", - err, token); - return(err); + ret, token); + goto out; } break; default: mp_msg(MSGT_CFGPARSER, MSGL_ERR, "Invalid subconfig argument! ('%s')\n", token); - return(ERR_NOT_AN_OPTION); + ret = ERR_NOT_AN_OPTION; + goto out; } - mp_msg(MSGT_CFGPARSER, MSGL_DBG3, "token: '%s', i=%d, subopt='%s, subparam='%s'\n", token, i, subopt, subparam); + mp_dbg(MSGT_CFGPARSER, MSGL_DBG3, "token: '%s', i=%d, subopt='%s, subparam='%s'\n", token, i, subopt, subparam); token = strtok(NULL, (char *)&(":")); } @@ -299,7 +297,7 @@ out: return ret; err_missing_param: - mp_msg(MSGT_CFGPARSER, MSGL_ERR, "missing parameter:\n"); + mp_msg(MSGT_CFGPARSER, MSGL_ERR, "missing parameter: %s\n", param); ret = ERR_MISSING_PARAM; goto out; } diff -r 1dbf58c3d50c -r f61dcc63be5f cfgparser.h --- a/cfgparser.h Mon Dec 17 14:19:37 2001 +0000 +++ b/cfgparser.h Mon Dec 17 15:50:36 2001 +0000 @@ -16,7 +16,6 @@ #define CONF_TYPE_SUBCONFIG 8 - #define ERR_NOT_AN_OPTION -1 #define ERR_MISSING_PARAM -2 #define ERR_OUT_OF_RANGE -3 @@ -33,8 +32,8 @@ struct config { char *name; void *p; - unsigned int type :4; - unsigned int flags:4; + unsigned int type; + unsigned int flags; float min,max; };