/[weechat]/weechat/src/common/weeconfig.c
ViewVC logotype

Diff of /weechat/src/common/weeconfig.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.63 by flashcode, Mon Jun 27 16:27:31 2005 UTC revision 1.64 by flashcode, Thu Jun 30 12:55:37 2005 UTC
# Line 1055  config_option_search (char *option_name) Line 1055  config_option_search (char *option_name)
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

Legend:
Removed from v.1.63  
changed lines
  Added in v.1.64

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26