Make sorting case insensitive

This commit is contained in:
Thomas 2015-06-22 13:54:09 +02:00
parent ce26812caa
commit c7781e272c
1 changed files with 11 additions and 2 deletions

View File

@ -565,6 +565,15 @@ static void window_loadsave_scrollpaint()
}
}
static int strcicmp(char const *a, char const *b)
{
for (;; a++, b++) {
int d = tolower(*a) - tolower(*b);
if (d != 0 || !*a)
return d;
}
}
static int list_item_sort(const void *a, const void *b)
{
const loadsave_list_item *itemA = (loadsave_list_item*)a;
@ -575,9 +584,9 @@ static int list_item_sort(const void *a, const void *b)
switch (gConfigGeneral.load_save_sort){
case SORT_NAME_ASCENDING:
return strcmp(itemA->name, itemB->name);
return strcicmp(itemA->name, itemB->name);
case SORT_NAME_DESCENDING:
return -strcmp(itemA->name, itemB->name);
return -strcicmp(itemA->name, itemB->name);
case SORT_DATE_DESCENDING:
return (int) -difftime(itemA->date_modified, itemB->date_modified);
case SORT_DATE_ASCENDING: