diff --git a/riscos/theme.c b/riscos/theme.c index 7b34641be..aab6785d5 100644 --- a/riscos/theme.c +++ b/riscos/theme.c @@ -146,6 +146,11 @@ struct theme_descriptor *ro_gui_theme_find(const char *leafname) { descriptor = descriptor->next) if (!strcmp(leafname, descriptor->leafname)) return descriptor; + /* fallback for 10 chars on old filesystems */ + for (descriptor = theme_descriptors; descriptor; + descriptor = descriptor->next) + if (!strncmp(leafname, descriptor->leafname, 10)) + return descriptor; return NULL; } diff --git a/riscos/theme_install.c b/riscos/theme_install.c index 583e67c30..93ef0a97d 100644 --- a/riscos/theme_install.c +++ b/riscos/theme_install.c @@ -257,11 +257,10 @@ void theme_install_install(bool apply) warn_user("ThemeApplyErr", 0); } else { free(option_theme); - option_theme = theme_file; + option_theme = strdup(theme_install->leafname); } - } else { - free(theme_file); } + free(theme_file); }