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