gboolean save_setup (gboolean save_options, gboolean save_panel_options) { gboolean ret = TRUE; saving_setup = 1; save_hotlist (); if (save_panel_options) save_panel_types (); if (save_options) { char *tmp_profile; save_config (); save_layout (); panels_save_options (); save_panelize (); /* directory_history_save (); */ #ifdef ENABLE_VFS_FTP mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "ftpfs_password", ftpfs_anonymous_passwd); if (ftpfs_proxy_host) mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "ftp_proxy_host", ftpfs_proxy_host); #endif /* ENABLE_VFS_FTP */ #ifdef HAVE_CHARSET mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "display_codepage", get_codepage_id (mc_global.display_codepage)); mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "source_codepage", get_codepage_id (default_source_codepage)); mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "autodetect_codeset", autodetect_codeset); #endif /* HAVE_CHARSET */ #ifdef HAVE_ASPELL mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "spell_language", spell_language); #endif /* HAVE_ASPELL */ mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "clipboard_store", clipboard_store_path); mc_config_set_string (mc_main_config, CONFIG_MISC_SECTION, "clipboard_paste", clipboard_paste_path); tmp_profile = mc_config_get_full_path (MC_CONFIG_FILE); ret = mc_config_save_to_file (mc_main_config, tmp_profile, NULL); g_free (tmp_profile); } saving_setup = 0; return ret; }
static void setup__move_panels_config_into_separate_file (const char *profile) { mc_config_t *tmp_cfg; char **groups, **curr_grp; if (!exist_file (profile)) return; tmp_cfg = mc_config_init (profile, FALSE); if (!tmp_cfg) return; curr_grp = groups = mc_config_get_groups (tmp_cfg, NULL); if (!groups) { mc_config_deinit (tmp_cfg); return; } while (*curr_grp) { if (setup__is_cfg_group_must_panel_config (*curr_grp) == NULL) mc_config_del_group (tmp_cfg, *curr_grp); curr_grp++; } mc_config_save_to_file (tmp_cfg, panels_profile_name, NULL); mc_config_deinit (tmp_cfg); tmp_cfg = mc_config_init (profile, FALSE); if (!tmp_cfg) { g_strfreev (groups); return; } curr_grp = groups; while (*curr_grp) { const char *need_grp; need_grp = setup__is_cfg_group_must_panel_config (*curr_grp); if (need_grp != NULL) { mc_config_del_group (tmp_cfg, need_grp); } curr_grp++; } g_strfreev (groups); mc_config_save_file (tmp_cfg, NULL); mc_config_deinit (tmp_cfg); }
void save_layout (void) { char *profile; size_t i; profile = g_build_filename (mc_config_get_path (), MC_CONFIG_FILE, NULL); /* Save integer options */ for (i = 0; layout[i].opt_name != NULL; i++) mc_config_set_int (mc_main_config, "Layout", layout[i].opt_name, *layout[i].opt_addr); mc_config_save_to_file (mc_main_config, profile, NULL); g_free (profile); }
void save_config (void) { char *profile; GError *error = NULL; size_t i; profile = g_build_filename (mc_config_get_path (), MC_CONFIG_FILE, NULL); /* Save integer options */ for (i = 0; int_options[i].opt_name != NULL; i++) mc_config_set_int (mc_main_config, CONFIG_APP_SECTION, int_options[i].opt_name, *int_options[i].opt_addr); /* Save string options */ for (i = 0; str_options[i].opt_name != NULL; i++) mc_config_set_string (mc_main_config, CONFIG_APP_SECTION, str_options[i].opt_name, *str_options[i].opt_addr); if (!mc_config_save_to_file (mc_main_config, profile, &error)) setup_save_config_show_error (profile, &error); g_free (profile); }