Case insensitive sort for player skins

Case insensitive compare in quicksort compare function for player names.

Closes #1082
This commit is contained in:
apartfromtime 2024-01-21 20:27:51 +11:00
parent ceee1c1d32
commit 8beb3d8a2e
3 changed files with 10 additions and 1 deletions

View File

@ -5650,7 +5650,7 @@ PlayerModelList(void)
}
// sort skin names alphabetically
qsort(s_skinnames[mdl].data, s_skinnames[mdl].num, sizeof(char**), Q_sort_strcomp);
qsort(s_skinnames[mdl].data, s_skinnames[mdl].num, sizeof(char**), Q_sort_stricmp);
// at this point we have a valid player model
s = (char*)malloc(MAX_DISPLAYNAME);

View File

@ -333,6 +333,9 @@ int Q_strlcat(char *dst, const char *src, int size);
/* Unicode wrappers that also make sure it's a regular file around fopen(). */
FILE *Q_fopen(const char *file, const char *mode);
/* Comparator function for qsort(), compares case-insensitive strings. */
int Q_sort_stricmp(const void *s1, const void *s2);
/* Comparator function for qsort(), compares strings. */
int Q_sort_strcomp(const void *s1, const void *s2);

View File

@ -1188,6 +1188,12 @@ FILE *Q_fopen(const char *file, const char *mode)
}
#endif
int
Q_sort_stricmp(const void *s1, const void *s2)
{
return Q_stricmp(*(char**)s1, *(char**)s2);
}
int
Q_sort_strcomp(const void *s1, const void *s2)
{