static char *get_compiletime_features(void) { feature_list_t *list; char *str, *lstr; unsigned int len = 0; list = vice_get_feature_list(); while (list->symbol) { len += strlen(list->descr) + strlen(list->symbol) + (15); ++list; } str = lib_malloc(len); lstr = str; list = vice_get_feature_list(); while (list->symbol) { sprintf(lstr, "%s\n%s\n%s\n\n", list->isdefined ? "yes " : "no ", list->descr, list->symbol); lstr += strlen(lstr); ++list; } return str; }
static int cmdline_features(const char *param, void *extra_param) { feature_list_t *list = vice_get_feature_list(); printf("Compile time options:\n"); while (list->symbol) { printf("%-25s %4s %s\n", list->symbol, list->isdefined ? "yes " : "no ", list->descr); ++list; } #ifndef __LIBRETRO__ //retro fix atexit in other thread exit(0); #endif return 0; /* OSF1 cc complains */ }
/** \brief Create tree model with compile time features * * \return GtkTreeStore */ static GtkTreeStore *create_store(void) { GtkTreeStore *store; GtkTreeIter iter; feature_list_t *list; store = gtk_tree_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); list = vice_get_feature_list(); while (list->symbol != NULL) { gtk_tree_store_append(store, &iter, NULL); gtk_tree_store_set(store, &iter, 0, list->descr, 1, list->symbol, 2, list->isdefined ? "yes" : "no", -1); list++; } return store; }