From f2dd126948cd5f903215f2cec3014c0a5b72ba2e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 14 Dec 2014 20:51:53 +0100 Subject: [PATCH] Add Categories and System info to 'Core Information' --- core_info.c | 8 ++++++++ core_info.h | 2 ++ menu/menu_entries_cbs.c | 17 +++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/core_info.c b/core_info.c index a7b636d1c5..e434358742 100644 --- a/core_info.c +++ b/core_info.c @@ -177,6 +177,12 @@ core_info_list_t *core_info_list_new(const char *modules_path) core_info[i].licenses_list = string_split(core_info[i].licenses, "|"); + if (config_get_string(core_info[i].data, "categories", + &core_info[i].categories) && + core_info[i].categories) + core_info[i].categories_list = + string_split(core_info[i].categories, "|"); + if (config_get_string(core_info[i].data, "notes", &core_info[i].notes) && core_info[i].notes) @@ -220,6 +226,7 @@ void core_info_list_free(core_info_list_t *core_info_list) free(info->authors); free(info->permissions); free(info->licenses); + free(info->categories); free(info->notes); if (info->supported_extensions_list) string_list_free(info->supported_extensions_list); @@ -227,6 +234,7 @@ void core_info_list_free(core_info_list_t *core_info_list) string_list_free(info->note_list); string_list_free(info->permissions_list); string_list_free(info->licenses_list); + string_list_free(info->categories_list); config_file_free(info->data); for (j = 0; j < info->firmware_count; j++) diff --git a/core_info.h b/core_info.h index d7b0c711e4..f82b0cb222 100644 --- a/core_info.h +++ b/core_info.h @@ -45,7 +45,9 @@ typedef struct char *authors; char *permissions; char *licenses; + char *categories; char *notes; + struct string_list *categories_list; struct string_list *note_list; struct string_list *supported_extensions_list; struct string_list *authors_list; diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c index ea91784a12..764dca59e9 100644 --- a/menu/menu_entries_cbs.c +++ b/menu/menu_entries_cbs.c @@ -1472,6 +1472,23 @@ static int deferred_push_core_information(void *data, void *userdata, menu_list_push(list, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0); + if (info->systemname) + { + snprintf(tmp, sizeof(tmp), "System name: %s", + info->systemname); + menu_list_push(list, tmp, "", + MENU_SETTINGS_CORE_INFO_NONE, 0); + } + + if (info->categories_list) + { + strlcpy(tmp, "Categories: ", sizeof(tmp)); + string_list_join_concat(tmp, sizeof(tmp), + info->categories_list, ", "); + menu_list_push(list, tmp, "", + MENU_SETTINGS_CORE_INFO_NONE, 0); + } + if (info->authors_list) { strlcpy(tmp, "Authors: ", sizeof(tmp));