diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index d756d98591..7c2e87c410 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c @@ -68,7 +68,6 @@ static int reset_settings(void) switch(gui_syncyesno_run(&message, &yes_message, &no_message)) { case YESNO_YES: - settings_write_config(CONFIGFILE ".bak", SETTINGS_SAVE_CHANGED); settings_reset(); settings_apply(true); settings_save(); diff --git a/apps/settings.c b/apps/settings.c index 237ff1c567..d259cecd65 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -262,6 +262,7 @@ static bool cfg_string_to_int(int setting_id, int* out, char* str) } return false; } +static bool settings_write_config(char* filename, int options); bool settings_load_config(const char* file, bool apply) { @@ -273,7 +274,8 @@ bool settings_load_config(const char* file, bool apply) fd = open(file, O_RDONLY); if (fd < 0) return false; - + settings_write_config(ROCKBOX_DIR "oldcfg.cfg", SETTINGS_SAVE_CHANGED); + while (read_line(fd, line, sizeof line) > 0) { if (!settings_parseline(line, &name, &value)) @@ -450,7 +452,7 @@ static bool is_changed(int setting_id) return true; } -bool settings_write_config(char* filename, int options) +static bool settings_write_config(char* filename, int options) { int i; int fd; @@ -949,7 +951,7 @@ void settings_reset(void) { int i; DEBUGF( "settings_reset()\n" ); - + settings_write_config(ROCKBOX_DIR "oldcfg.cfg", SETTINGS_SAVE_CHANGED); for(i=0; i