pak filename matching is now case insensitive
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@2388
d7cf8633-e32d-0410-b094-
e92efae38249
list = listdirectory(dir);
for (current = list;current;current = current->next)
{
- if (matchpattern(current->text, "*.pak"))
+ if (matchpattern(current->text, "*.pak", true))
{
sprintf (pakfile, "%s/%s", dir, current->text);
pak = COM_LoadPackFile (pakfile);
char *text;
} stringlist_t;
-int matchpattern(char *in, char *pattern);
+int matchpattern(char *in, char *pattern, int caseinsensitive);
stringlist_t *listdirectory(char *path);
void freedirectory(stringlist_t *list);
// LordHavoc: some portable directory listing code I wrote for lmp2pcx, now used in darkplaces to load id1/*.pak and such...
-int matchpattern(char *in, char *pattern)
+int matchpattern(char *in, char *pattern, int caseinsensitive)
{
+ int c1, c2;
while (*pattern)
{
switch (*pattern)
break;
default:
if (*in != *pattern)
- return 0; // no match
+ {
+ if (!caseinsensitive)
+ return 0; // no match
+ c1 = *in;
+ if (c1 >= 'A' && c1 <= 'Z')
+ c1 += 'a' - 'A';
+ c2 = *pattern;
+ if (c2 >= 'A' && c2 <= 'Z')
+ c2 += 'a' - 'A';
+ if (c1 != c2)
+ return 0; // no match
+ }
in++;
pattern++;
break;