conf: added config_get_positive()
This convenience function parses a configuration value into a positive integer. It aborts if parsing fails.
This commit is contained in:
		
							
								
								
									
										20
									
								
								src/conf.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/conf.c
									
									
									
									
									
								
							| @@ -407,6 +407,26 @@ config_get_path(const char *name) | ||||
| 	return param->value = path; | ||||
| } | ||||
|  | ||||
| unsigned | ||||
| config_get_positive(const char *name, unsigned default_value) | ||||
| { | ||||
| 	struct config_param *param = config_get_param(name); | ||||
| 	long value; | ||||
| 	char *endptr; | ||||
|  | ||||
| 	if (param == NULL) | ||||
| 		return default_value; | ||||
|  | ||||
| 	value = strtol(param->value, &endptr, 0); | ||||
| 	if (*endptr != 0) | ||||
| 		g_error("Not a valid number in line %i", param->line); | ||||
|  | ||||
| 	if (value <= 0) | ||||
| 		g_error("Not a positive number in line %i", param->line); | ||||
|  | ||||
| 	return (unsigned)value; | ||||
| } | ||||
|  | ||||
| struct block_param * | ||||
| getBlockParam(struct config_param * param, const char *name) | ||||
| { | ||||
|   | ||||
| @@ -110,6 +110,9 @@ config_get_string(const char *name, const char *default_value); | ||||
| const char * | ||||
| config_get_path(const char *name); | ||||
|  | ||||
| unsigned | ||||
| config_get_positive(const char *name, unsigned default_value); | ||||
|  | ||||
| struct block_param * | ||||
| getBlockParam(struct config_param *param, const char *name); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann