Index: apps/filetree.c =================================================================== RCS file: /cvsroot/rockbox/apps/filetree.c,v retrieving revision 1.38 diff -u -r1.38 filetree.c --- apps/filetree.c 13 Nov 2006 00:45:19 -0000 1.38 +++ apps/filetree.c 25 Nov 2006 10:00:25 -0000 @@ -485,10 +485,12 @@ #endif case TREE_ATTR_CFG: - gui_syncsplash(0, true, str(LANG_WAIT)); - if (!settings_load_config(buf)) + if (settings_load_config(buf)==-1) break; - gui_syncsplash(HZ, true, str(LANG_SETTINGS_LOADED)); + else if (settings_load_config(buf)==-2) + gui_syncsplash(HZ, true, str(LANG_FONT_LOAD_ERROR)); + else + gui_syncsplash(HZ, true, str(LANG_SETTINGS_LOADED)); break; case TREE_ATTR_BMARK: Index: apps/settings.c =================================================================== RCS file: /cvsroot/rockbox/apps/settings.c,v retrieving revision 1.438 diff -u -r1.438 settings.c --- apps/settings.c 24 Nov 2006 19:49:02 -0000 1.438 +++ apps/settings.c 25 Nov 2006 10:00:25 -0000 @@ -1570,14 +1570,15 @@ } -bool settings_load_config(const char* file) +int settings_load_config(const char* file) { + int ret=0; /* 0 success, -1 failed to open .cfg, -2 failed to load font */ int fd; char line[128]; fd = open(file, O_RDONLY); if (fd < 0) - return false; + return -1; while (read_line(fd, line, sizeof line) > 0) { @@ -1631,6 +1632,8 @@ else if (!strcasecmp(name, "font")) { if (font_load(value)) set_file(value, (char *)global_settings.font_file, MAX_FILENAME); + else + ret=-2; /* font loading failed */ } #endif #if LCD_DEPTH > 1 @@ -1672,7 +1675,7 @@ close(fd); settings_apply(); settings_save(); - return true; + return ret; } Index: apps/settings.h =================================================================== RCS file: /cvsroot/rockbox/apps/settings.h,v retrieving revision 1.255 diff -u -r1.255 settings.h --- apps/settings.h 24 Nov 2006 19:49:02 -0000 1.255 +++ apps/settings.h 25 Nov 2006 10:00:25 -0000 @@ -554,7 +554,7 @@ void settings_apply_pm_range(void); void settings_display(void); -bool settings_load_config(const char* file); +int settings_load_config(const char* file); bool settings_save_config(void); bool set_bool_options(const char* string, bool* variable, const char* yes_str, int yes_voice, Index: apps/lang/english.lang =================================================================== RCS file: /cvsroot/rockbox/apps/lang/english.lang,v retrieving revision 1.301 diff -u -r1.301 english.lang --- apps/lang/english.lang 25 Nov 2006 09:42:05 -0000 1.301 +++ apps/lang/english.lang 25 Nov 2006 10:00:26 -0000 @@ -10280,4 +10280,17 @@ *: "AIFF" - + + id: LANG_FONT_LOAD_ERROR + desc: error when loading font + user: + + *: "Error loading font!" + + + *: "Error loading font!" + + + *: "" + +