diff cfgparser.c @ 151:9708d4b2765b

cfgparser fix
author szabii
date Mon, 19 Mar 2001 02:29:37 +0000
parents 2f3e01a1fd87
children 372a9a836e86
line wrap: on
line diff
--- a/cfgparser.c	Mon Mar 19 01:49:44 2001 +0000
+++ b/cfgparser.c	Mon Mar 19 02:29:37 2001 +0000
@@ -80,13 +80,15 @@
 				    !strcasecmp(param, "i") ||
 				    !strcmp(param, "1"))
 					*((int *) config[i].p) = config[i].max;
-				if (!strcasecmp(param, "no") ||
+				else if (!strcasecmp(param, "no") ||
 				    !strcasecmp(param, "nein") ||
 				    !strcasecmp(param, "nicht") ||
 				    !strcasecmp(param, "nem") ||
 				    !strcasecmp(param, "n") ||
 				    !strcmp(param, "0"))
 					*((int *) config[i].p) = config[i].min;
+				else
+					return ERR_OUT_OF_RANGE;
 				need_param = 1;
 			} else {	/* parser_mode == COMMAND_LINE */
 				*((int *) config[i].p) = config[i].max;
@@ -146,18 +148,17 @@
 			*((char **) config[i].p) = strdup(param);
 			need_param = 1;
 			break;
+		case CONF_TYPE_FUNC_PARAM:
+			if (param == NULL)
+				return ERR_MISSING_PARAM;
+			if ((((cfg_func_param_t) config[i].p)(config + i, param)) < 0)
+				return ERR_FUNC_ERR;
+			need_param = 1;
+			break;
 		case CONF_TYPE_FUNC:
-			if (config[i].flags & CONF_FUNC_PARAM) {
-				if (param == NULL)
-					return ERR_MISSING_PARAM;
-				if ((((cfg_func_param_t) config[i].p)(config + i, param)) < 0)
-					return ERR_FUNC_ERR;
-				need_param = 1;
-			} else {
-				if ((((cfg_func_t) config[i].p)(config + i)) < 0)
-					return ERR_FUNC_ERR;
-				need_param = 0;
-			}
+			if ((((cfg_func_t) config[i].p)(config + i)) < 0)
+				return ERR_FUNC_ERR;
+			need_param = 0;
 			break;
 		default:
 			printf("picsaba\n");