diff options
Diffstat (limited to 'apps/main.c')
-rw-r--r-- | apps/main.c | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/apps/main.c b/apps/main.c index f9e6054973..0b35a61a75 100644 --- a/apps/main.c +++ b/apps/main.c | |||
@@ -128,25 +128,32 @@ static int init_dircache(bool preinit) | |||
128 | if (preinit) | 128 | if (preinit) |
129 | dircache_init(); | 129 | dircache_init(); |
130 | 130 | ||
131 | if (global_settings.dircache) | 131 | if (!global_settings.dircache) |
132 | { | 132 | return 0; |
133 | |||
133 | # ifdef HAVE_EEPROM_SETTINGS | 134 | # ifdef HAVE_EEPROM_SETTINGS |
134 | if (firmware_settings.initialized && firmware_settings.disk_clean | 135 | if (firmware_settings.initialized && firmware_settings.disk_clean |
135 | && preinit) | 136 | && preinit) |
137 | { | ||
138 | result = dircache_load(); | ||
139 | |||
140 | if (result < 0) | ||
136 | { | 141 | { |
137 | result = dircache_load(DIRCACHE_FILE); | 142 | firmware_settings.disk_clean = false; |
138 | remove(DIRCACHE_FILE); | 143 | if (global_settings.dircache_size <= 0) |
139 | if (result < 0) | ||
140 | { | 144 | { |
141 | firmware_settings.disk_clean = false; | 145 | /* This will be in default language, settings are not |
142 | if (global_settings.dircache_size >= 0) | 146 | applied yet. Not really any easy way to fix that. */ |
143 | dircache_build(global_settings.dircache_size); | 147 | gui_syncsplash(0, true, str(LANG_DIRCACHE_BUILDING)); |
148 | clear = true; | ||
144 | } | 149 | } |
145 | 150 | ||
146 | return result; | 151 | dircache_build(global_settings.dircache_size); |
147 | } | 152 | } |
153 | } | ||
154 | else | ||
148 | # endif | 155 | # endif |
149 | 156 | { | |
150 | if (preinit) | 157 | if (preinit) |
151 | return -1; | 158 | return -1; |
152 | 159 | ||
@@ -163,12 +170,12 @@ static int init_dircache(bool preinit) | |||
163 | 170 | ||
164 | if (result < 0) | 171 | if (result < 0) |
165 | gui_syncsplash(0, true, "Failed! Result: %d", result); | 172 | gui_syncsplash(0, true, "Failed! Result: %d", result); |
166 | 173 | } | |
167 | if (clear) | 174 | |
168 | { | 175 | if (clear) |
169 | backlight_on(); | 176 | { |
170 | show_logo(); | 177 | backlight_on(); |
171 | } | 178 | show_logo(); |
172 | global_settings.dircache_size = dircache_get_cache_size(); | 179 | global_settings.dircache_size = dircache_get_cache_size(); |
173 | settings_save(); | 180 | settings_save(); |
174 | } | 181 | } |