gboolean mc_fhl_parse_ini_file (mc_fhl_t * fhl) { gchar **group_names, **orig_group_names; gboolean ok; mc_fhl_array_free (fhl); fhl->filters = g_ptr_array_new (); orig_group_names = mc_config_get_groups (fhl->config, NULL); ok = (*orig_group_names != NULL); for (group_names = orig_group_names; *group_names != NULL; group_names++) { if (mc_config_has_param (fhl->config, *group_names, "type")) { /* parse filetype filter */ mc_fhl_parse_get_file_type_id (fhl, *group_names); } if (mc_config_has_param (fhl->config, *group_names, "regexp")) { /* parse regexp filter */ mc_fhl_parse_get_regexp (fhl, *group_names); } if (mc_config_has_param (fhl->config, *group_names, "extensions")) { /* parse extensions filter */ mc_fhl_parse_get_extensions (fhl, *group_names); } } g_strfreev (orig_group_names); return ok; }
int mc_config_get_int (mc_config_t * mc_config, const gchar * group, const gchar * param, int def) { if (!mc_config || !group || !param) return def; if (!mc_config_has_param (mc_config, group, param)) { mc_config_set_int (mc_config, group, param, def); return def; } return g_key_file_get_integer (mc_config->handle, group, param, NULL); }
gboolean mc_config_get_bool (mc_config_t * mc_config, const gchar * group, const gchar * param, gboolean def) { if (!mc_config || !group || !param) return def; if (!mc_config_has_param (mc_config, group, param)) { mc_config_set_bool (mc_config, group, param, def); return def; } return g_key_file_get_boolean (mc_config->handle, group, param, NULL); }
gboolean mc_fhl_parse_ini_file (mc_fhl_t * fhl) { gchar **group_names, **orig_group_names; mc_fhl_array_free (fhl); fhl->filters = g_ptr_array_new (); orig_group_names = group_names = mc_config_get_groups (fhl->config, NULL); if (group_names == NULL) return FALSE; while (*group_names) { if (mc_config_has_param (fhl->config, *group_names, "type")) { /* parse filetype filter */ mc_fhl_parse_get_file_type_id (fhl, *group_names); } if (mc_config_has_param (fhl->config, *group_names, "regexp")) { /* parse regexp filter */ mc_fhl_parse_get_regexp (fhl, *group_names); } if (mc_config_has_param (fhl->config, *group_names, "extensions")) { /* parse extensions filter */ mc_fhl_parse_get_extensions (fhl, *group_names); } group_names++; } g_strfreev (orig_group_names); return TRUE; }
gchar * mc_config_get_string (mc_config_t * mc_config, const gchar * group, const gchar * param, const gchar * def) { GIConv conv; GString *buffer; gchar *ret; estr_t conv_res; if (!mc_config || !group || !param) return g_strdup (def); if (!mc_config_has_param (mc_config, group, param)) { if (def != NULL) mc_config_set_string (mc_config, group, param, def); return g_strdup (def); } ret = g_key_file_get_string (mc_config->handle, group, param, NULL); if (ret == NULL) ret = g_strdup (def); if (mc_global.utf8_display) return ret; conv = str_crt_conv_from ("UTF-8"); if (conv == INVALID_CONV) return ret; buffer = g_string_new (""); conv_res = str_convert (conv, ret, buffer); str_close_conv (conv); if (conv_res == ESTR_FAILURE) { g_string_free (buffer, TRUE); return ret; } g_free (ret); return g_string_free (buffer, FALSE); }
gchar * mc_config_get_string_raw (const mc_config_t * mc_config, const gchar * group, const gchar * param, const gchar * def) { gchar *ret; if (!mc_config || !group || !param) return g_strdup (def); if (!mc_config_has_param (mc_config, group, param)) { if (def != NULL) mc_config_set_string (mc_config, group, param, def); return g_strdup (def); } ret = g_key_file_get_string (mc_config->handle, group, param, NULL); return ret != NULL ? ret : g_strdup (def); }