cleaned up code with themeInfo config, now looks a lot better

This commit is contained in:
NightlyFox 2018-09-23 04:34:00 -05:00
parent 0f95009b51
commit d79d501bcb

View File

@ -295,30 +295,38 @@ bool menuEntryLoad(menuEntry_s* me, const char* name, bool shortcut) {
shortcutFree(&sc);*/ shortcutFree(&sc);*/
} }
if (me->type == ENTRY_TYPE_THEME) { if (me->type == ENTRY_TYPE_THEME) {
config_t cfg = {0}; config_t cfg = {0};
config_init(&cfg); config_init(&cfg);
config_setting_t *themeInfo; config_setting_t *themeInfo;
char author[ENTRY_AUTHORLENGTH]={0}, themeVersion[ENTRY_VERLENGTH]={0}, name[ENTRY_NAMELENGTH]={0}; const char *name, *author, *version;
bool noName = true, noAuthor = true, noVersion = true; bool noAuth = false, noVers = false;
if(config_read_file(&cfg, me->path)) { if(config_read_file(&cfg, me->path)) {
themeInfo = config_lookup(&cfg, "themeInfo"); themeInfo = config_lookup(&cfg, "themeInfo");
if (themeInfo != NULL) { if (themeInfo != NULL) {
strncpy(name, config_setting_get_string(config_setting_lookup(themeInfo, "name")), sizeof(name)-1); if(config_setting_lookup_string(themeInfo, "name", &name))
if(name[0]!='\0') noName = false; strncpy(me->name, name, sizeof(me->name)-1);
strncpy(author, config_setting_get_string(config_setting_lookup(themeInfo, "author")), sizeof(author)-1); if(!config_setting_lookup_string(themeInfo, "author", &author))
if(author[0]!='\0') noAuthor = false; noAuth = true;
/*strncpy(themeVersion, config_setting_get_string(config_setting_lookup(themeInfo, "version")), sizeof(themeVersion)-1); if(!config_setting_lookup_string(themeInfo, "version", &version))\
if(themeVersion[0]!='\0') noVersion = false;*/ noVers = true;
}
else {
noAuth = true;
noVers = true;
} }
} }
if(noAuthor) else {
strncpy(author,"unknown", sizeof(author)-1); noAuth = true;
if(noVersion) noVers = true;
strncpy(themeVersion,"1.0.0", sizeof(themeVersion)-1); }
strncpy(me->author, author, sizeof(me->author)-1); if(noAuth)
strncpy(me->version, themeVersion, sizeof(me->version)-1); strncpy(me->author, textGetString(StrId_DefaultPublisher), sizeof(me->author)-1);
if(!noName) else
strncpy(me->name, name, sizeof(me->name)-1); strncpy(me->author, author, sizeof(me->author)-1);
if(noVers)
strncpy(me->version, "1.0.0", sizeof(me->version)-1);
else
strncpy(me->version, version, sizeof(me->version)-1);
config_destroy(&cfg); config_destroy(&cfg);
} }