option_get* handle empty cmdline_key
This commit is contained in:
		
							parent
							
								
									1b2b1d2f03
								
							
						
					
					
						commit
						568c15c73f
					
				
							
								
								
									
										35
									
								
								options.c
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								options.c
									
									
									
									
									
								
							| @ -269,6 +269,9 @@ void cmdline_load(int argc, char *argv[]) | ||||
| 
 | ||||
| int cmdline_find_option(char *key) | ||||
| { | ||||
|         if (!key) { | ||||
|                 return -1; | ||||
|         } | ||||
|         char *key1 = strdup(key); | ||||
|         char *key2 = strstr(key1, "/"); | ||||
| 
 | ||||
| @ -344,7 +347,12 @@ int cmdline_get_bool(char *key, int def) | ||||
| 
 | ||||
| char *option_get_string(char *ini_section, char *ini_key, char *cmdline_key, char *def) | ||||
| { | ||||
|         char *val = cmdline_get_string(cmdline_key, NULL); | ||||
|         char *val = NULL; | ||||
| 
 | ||||
|         if (cmdline_key) { | ||||
|                 val = cmdline_get_string(cmdline_key, NULL); | ||||
|         } | ||||
| 
 | ||||
|         if (val) { | ||||
|                 return val; | ||||
|         } else { | ||||
| @ -358,10 +366,13 @@ int option_get_int(char *ini_section, char *ini_key, char *cmdline_key, int def) | ||||
|         /* we have to get this twice in order to check wether the actual value
 | ||||
|          * is the same as the first default value | ||||
|          */ | ||||
|         int val = cmdline_get_int(cmdline_key, 1); | ||||
|         int val2 = cmdline_get_int(cmdline_key, 0); | ||||
|         int val, val2; | ||||
|         if (cmdline_key) { | ||||
|                 val = cmdline_get_int(cmdline_key, 1); | ||||
|                 val2 = cmdline_get_int(cmdline_key, 0); | ||||
|         } | ||||
| 
 | ||||
|         if (val == val2) { | ||||
|         if (cmdline_key && val == val2) { | ||||
|                 /* the cmdline option has been set */ | ||||
|                 return val; | ||||
|         } else { | ||||
| @ -372,10 +383,13 @@ int option_get_int(char *ini_section, char *ini_key, char *cmdline_key, int def) | ||||
| double option_get_double(char *ini_section, char *ini_key, char *cmdline_key, double def) | ||||
| { | ||||
|         /* see option_get_int */ | ||||
|         double val = cmdline_get_double(cmdline_key, 1); | ||||
|         double val2 = cmdline_get_double(cmdline_key, 0); | ||||
|         double val, val2; | ||||
|         if (cmdline_key) { | ||||
|                 val = cmdline_get_double(cmdline_key, 1); | ||||
|                 val2 = cmdline_get_double(cmdline_key, 0); | ||||
|         } | ||||
| 
 | ||||
|         if (val == val2) { | ||||
|         if (cmdline_key && val == val2) { | ||||
|                 return val; | ||||
|         } else { | ||||
|                 return ini_get_double(ini_section, ini_key, def); | ||||
| @ -385,9 +399,12 @@ double option_get_double(char *ini_section, char *ini_key, char *cmdline_key, do | ||||
| 
 | ||||
| int option_get_bool(char *ini_section, char *ini_key, char *cmdline_key, int def) | ||||
| { | ||||
|         int val = cmdline_get_bool(cmdline_key, false); | ||||
|         int val; | ||||
| 
 | ||||
|         if (val) { | ||||
|         if (cmdline_key) | ||||
|                 val = cmdline_get_bool(cmdline_key, false); | ||||
| 
 | ||||
|         if (cmdline_key && val) { | ||||
|                 /* this can only be true if the value has been set,
 | ||||
|                  * so we can return */ | ||||
|                 return true; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sascha Kruse
						Sascha Kruse