diff options
Diffstat (limited to 'games/RetroArch/etc.patch')
-rw-r--r-- | games/RetroArch/etc.patch | 119 |
1 files changed, 21 insertions, 98 deletions
diff --git a/games/RetroArch/etc.patch b/games/RetroArch/etc.patch index f473103775..d2446e73b7 100644 --- a/games/RetroArch/etc.patch +++ b/games/RetroArch/etc.patch @@ -1,108 +1,31 @@ -Author: orbea <orbea@fredslev.dk> -Date: Fri Aug 31 08:25:16 2018 -0700 +From 9da261c6d9a3f276e44c7f1999aef4fc758cbafd Mon Sep 17 00:00:00 2001 +From: Rob Loach <robloach@gmail.com> +Date: Mon, 3 Sep 2018 13:31:46 -0400 +Subject: [PATCH] Update config entries pointer to the new beginning of the + list after sorting - Revert "sort config file variables" - - This reverts commit 62e89974afbb6628344fb084c50712bfab4419de. - - Conflicts: - libretro-common/file/config_file.c +--- + libretro-common/file/config_file.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libretro-common/file/config_file.c b/libretro-common/file/config_file.c -index 9c2b76b170..15ce4336d1 100644 +index 9c2b76b170..0a63e7781a 100644 --- a/libretro-common/file/config_file.c +++ b/libretro-common/file/config_file.c -@@ -68,84 +68,6 @@ struct config_include_list - static config_file_t *config_file_new_internal( - const char *path, unsigned depth); - --static int config_sort_compare_func(struct config_entry_list *a, -- struct config_entry_list *b) --{ -- const char *a_key = a ? a->key : NULL; -- const char *b_key = b ? b->key : NULL; -- -- if (!a_key || !b_key) -- return 0; -- -- return strcasecmp(a_key, b_key); --} -- --/* https://stackoverflow.com/questions/7685/merge-sort-a-linked-list */ --static struct config_entry_list* merge_sort_linked_list(struct config_entry_list *list, int (*compare)(struct config_entry_list *one,struct config_entry_list *two)) --{ -- struct config_entry_list -- *right = list, -- *temp = list, -- *last = list, -- *result = 0, -- *next = 0, -- *tail = 0; -- -- /* Trivial case. */ -- if (!list || !list->next) -- return list; -- -- /* Find halfway through the list (by running two pointers, one at twice the speed of the other). */ -- while (temp && temp->next) -- { -- last = right; -- right = right->next; -- temp = temp->next->next; -- } -- -- /* Break the list in two. (prev pointers are broken here, but we fix later) */ -- last->next = 0; -- -- /* Recurse on the two smaller lists: */ -- list = merge_sort_linked_list(list, compare); -- right = merge_sort_linked_list(right, compare); -- -- /* Merge: */ -- while (list || right) -- { -- /* Take from empty lists, or compare: */ -- if (!right) -- { -- next = list; -- list = list->next; -- } -- else if (!list) -- { -- next = right; -- right = right->next; -- } -- else if (compare(list, right) < 0) -- { -- next = list; -- list = list->next; -- } -- else -- { -- next = right; -- right = right->next; -- } -- -- if (!result) -- result = next; -- else -- tail->next = next; -- -- tail = next; -- } -- -- return result; --} -- - static char *strip_comment(char *str) - { - /* Remove everything after comment. -@@ -998,7 +920,7 @@ void config_file_dump(config_file_t *conf, FILE *file) - includes = includes->next; +@@ -999,6 +999,7 @@ void config_file_dump(config_file_t *conf, FILE *file) } -- list = merge_sort_linked_list((struct config_entry_list*)conf->entries, config_sort_compare_func); -+ list = (struct config_entry_list*)conf->entries; + list = merge_sort_linked_list((struct config_entry_list*)conf->entries, config_sort_compare_func); ++ conf->entries = list; while (list) { +@@ -1092,7 +1093,7 @@ static void test_config_file(void) + test_config_file_parse_contains("foo = \"bar\"", "foo", "bar"); + + #if 0 +- /* turns out it treats empty as nonexistent - ++ /* turns out it treats empty as nonexistent - + * should probably be fixed */ + test_config_file_parse_contains("foo = \"\"\n", "foo", ""); + test_config_file_parse_contains("foo = \"\"", "foo", ""); |