1055 |
} |
} |
1056 |
|
|
1057 |
/* |
/* |
1058 |
|
* config_option_search_option_value: look for type and value of an option |
1059 |
|
* (including server options) |
1060 |
|
* if option is not found, NULL is returned |
1061 |
|
*/ |
1062 |
|
|
1063 |
|
void |
1064 |
|
config_option_search_option_value (char *option_name, t_config_option **option, |
1065 |
|
void **option_value) |
1066 |
|
{ |
1067 |
|
t_config_option *ptr_option; |
1068 |
|
t_irc_server *ptr_server; |
1069 |
|
int i; |
1070 |
|
void *ptr_value; |
1071 |
|
char *pos; |
1072 |
|
|
1073 |
|
ptr_option = NULL; |
1074 |
|
ptr_value = NULL; |
1075 |
|
|
1076 |
|
ptr_option = config_option_search (option_name); |
1077 |
|
if (!ptr_option) |
1078 |
|
{ |
1079 |
|
pos = strchr (option_name, '.'); |
1080 |
|
if (pos) |
1081 |
|
{ |
1082 |
|
pos[0] = '\0'; |
1083 |
|
ptr_server = server_search (option_name); |
1084 |
|
if (ptr_server) |
1085 |
|
{ |
1086 |
|
for (i = 0; weechat_options[CONFIG_SECTION_SERVER][i].option_name; i++) |
1087 |
|
{ |
1088 |
|
if (strcmp (weechat_options[CONFIG_SECTION_SERVER][i].option_name, |
1089 |
|
pos + 1) == 0) |
1090 |
|
{ |
1091 |
|
ptr_option = &weechat_options[CONFIG_SECTION_SERVER][i]; |
1092 |
|
ptr_value = config_get_server_option_ptr (ptr_server, pos + 1); |
1093 |
|
break; |
1094 |
|
} |
1095 |
|
} |
1096 |
|
} |
1097 |
|
pos[0] = '.'; |
1098 |
|
} |
1099 |
|
} |
1100 |
|
else |
1101 |
|
{ |
1102 |
|
switch (ptr_option->option_type) |
1103 |
|
{ |
1104 |
|
case OPTION_TYPE_BOOLEAN: |
1105 |
|
case OPTION_TYPE_INT: |
1106 |
|
case OPTION_TYPE_INT_WITH_STRING: |
1107 |
|
case OPTION_TYPE_COLOR: |
1108 |
|
ptr_value = (void *)(ptr_option->ptr_int); |
1109 |
|
break; |
1110 |
|
case OPTION_TYPE_STRING: |
1111 |
|
ptr_value = (void *)(ptr_option->ptr_string); |
1112 |
|
break; |
1113 |
|
} |
1114 |
|
} |
1115 |
|
|
1116 |
|
if (ptr_option) |
1117 |
|
{ |
1118 |
|
*option = ptr_option; |
1119 |
|
*option_value = ptr_value; |
1120 |
|
} |
1121 |
|
} |
1122 |
|
|
1123 |
|
/* |
1124 |
* config_set_value: set new value for an option (found by name) |
* config_set_value: set new value for an option (found by name) |
1125 |
* return: 0 if success |
* return: 0 if success |
1126 |
* -1 if bad value for option |
* -1 if bad value for option |