diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index 7c2e87c410..d756d98591 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c @@ -68,6 +68,7 @@ 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 d259cecd65..237ff1c567 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -262,7 +262,6 @@ 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) { @@ -274,8 +273,7 @@ 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)) @@ -452,7 +450,7 @@ static bool is_changed(int setting_id) return true; } -static bool settings_write_config(char* filename, int options) +bool settings_write_config(char* filename, int options) { int i; int fd; @@ -951,7 +949,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