char *make_string_var(const char *var_name) { int cnt, msv_index; char *ret = NULL; char *copy; copy = LOCAL_COPY(var_name); upper(copy); if ((find_fixed_array_item (irc_variable, sizeof(IrcVariable), NUMBER_OF_VARIABLES, copy, &cnt, &msv_index) == NULL)) return NULL; if (cnt >= 0) return NULL; switch (irc_variable[msv_index].type) { case STR_TYPE_VAR: ret = m_strdup(irc_variable[msv_index].string); break; case INT_TYPE_VAR: ret = m_strdup(ltoa(irc_variable[msv_index].integer)); break; case BOOL_TYPE_VAR: ret = m_strdup(var_settings[irc_variable[msv_index].integer]); break; case CHAR_TYPE_VAR: ret = m_dupchar(irc_variable[msv_index].integer); break; } return ret; }
char *make_fstring_var(const char *var_name) { IrcVariable *var = NULL; int cnt, msv_index; char *ret = NULL; char *tmp_var; tmp_var = LOCAL_COPY(var_name); upper(tmp_var); if ((var = find_ext_fset_var(tmp_var))) return m_strdup(var->string); if (!strncmp(tmp_var, "FORMAT_", 7)) tmp_var += 7; if ((find_fixed_array_item (fset_array, sizeof(IrcVariable), NUMBER_OF_FSET, tmp_var, &cnt, &msv_index) == NULL)) { if ((ret = find_numeric_fset(my_atol(tmp_var)))) return m_strdup(ret); return NULL; } if (cnt >= 0) return NULL; switch (fset_array[msv_index].type) { case STR_TYPE_VAR: ret = m_strdup(fset_array[msv_index].string); break; case INT_TYPE_VAR: ret = m_strdup(ltoa(fset_array[msv_index].integer)); break; case BOOL_TYPE_VAR: ret = m_strdup(var_settings[fset_array[msv_index].integer]); break; case CHAR_TYPE_VAR: ret = m_dupchar(fset_array[msv_index].integer); break; } return ret; }