X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=filematch.c;h=9e0eceafdf3c2726d8e50bc1f9bc58d1f467b4f4;hb=f7412a0c49465d916da5920d1132eeda9c3a4a3d;hp=996753c1281240cf17e9bce3cf3cd494b65bf269;hpb=5d6fabe47d4cce45d956fdfa4d4dba30e2f6ea06;p=xonotic%2Fdarkplaces.git diff --git a/filematch.c b/filematch.c index 996753c1..9e0eceaf 100644 --- a/filematch.c +++ b/filematch.c @@ -113,7 +113,7 @@ stringlist_t *stringlistsort(stringlist_t *start) #include stringlist_t *listdirectory(char *path) { - char pattern[4096]; + char pattern[4096], *c; struct _finddata_t n_file; long hFile; stringlist_t *start, *current; @@ -129,8 +129,16 @@ stringlist_t *listdirectory(char *path) while (_findnext(hFile, &n_file) == 0) current = stringlistappend(current, n_file.name); _findclose(hFile); + + // convert names to lowercase because windows does not care, but pattern matching code often does + for (current = start;current;current = current->next) + for (c = current->text;*c;c++) + if (*c >= 'A' && *c <= 'Z') + *c += 'a' - 'A'; + // sort the list alphanumerically - return stringlistsort(start); + start = stringlistsort(start); + return start; } else return NULL; @@ -163,4 +171,5 @@ stringlist_t *listdirectory(char *path) void freedirectory(stringlist_t *list) { stringlistfree(list); -} \ No newline at end of file +} +