From f2f57632842a5978151c1dfb081872923d37389c Mon Sep 17 00:00:00 2001 From: havoc Date: Wed, 18 Sep 2002 03:50:21 +0000 Subject: [PATCH] matchpattern can now be case insensitive if desired pak filename matching is now case insensitive git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@2388 d7cf8633-e32d-0410-b094-e92efae38249 --- common.c | 2 +- common.h | 2 +- filematch.c | 16 ++++++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/common.c b/common.c index 7ce4b548..199a33c0 100644 --- a/common.c +++ b/common.c @@ -1386,7 +1386,7 @@ void COM_AddGameDirectory (char *dir) 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); diff --git a/common.h b/common.h index 84bfaaaa..78b23a6a 100644 --- a/common.h +++ b/common.h @@ -187,7 +187,7 @@ typedef struct stringlist_s 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); diff --git a/filematch.c b/filematch.c index 9e0eceaf..ff243476 100644 --- a/filematch.c +++ b/filematch.c @@ -3,8 +3,9 @@ // 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) @@ -39,7 +40,18 @@ int matchpattern(char *in, char *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; -- 2.39.2