From 120cd2f212baff9f37d517a5e4ca4d4a2f34255f Mon Sep 17 00:00:00 2001 From: Martin Schaffner Date: Tue, 16 Nov 2004 20:04:11 +0000 Subject: [PATCH] fix Mac OS 9 bug with missions > 12 chars --- ChangeLog | 4 ++++ arch/carbon/findfile.c | 12 ++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 864c01a5..c572ac00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-11-16 Chris Taylor + + * arch/carbon/findfile.c: fix Mac OS 9 bug with missions > 12 chars + 2004-11-14 Chris Taylor * arch/ogl/ogl.c: make Mac OS 9 Voodoo display textures diff --git a/arch/carbon/findfile.c b/arch/carbon/findfile.c index 37c61f0c..34aeca7a 100644 --- a/arch/carbon/findfile.c +++ b/arch/carbon/findfile.c @@ -83,7 +83,6 @@ int FileFindFirst(char *search_str, FILEFINDSTRUCT *ffstruct) i = 0; do { char *p = path + path_len; - char *matchingType; if (i >= num_new_files) { if (!myErr) { @@ -94,11 +93,10 @@ int FileFindFirst(char *search_str, FILEFINDSTRUCT *ffstruct) } FSRefMakePath (refs + i, (unsigned char *) path, 255); - for (matchingType = p; *matchingType && strnicmp(matchingType, search_str, strlen(search_str)); matchingType++) {} i++; - if (*matchingType) { - strncpy(ffstruct->name, p, 12); + if (!stricmp(p + strlen(p) - strlen(search_str), search_str)) { + strncpy(ffstruct->name, p, 256); return 0; // Found one } } while (1); @@ -111,7 +109,6 @@ int FileFindNext(FILEFINDSTRUCT *ffstruct) do { char path[_MAX_PATH]; char *p = path + path_len; - char *matchingType; if (i >= num_new_files) { if (!myErr) { @@ -122,11 +119,10 @@ int FileFindNext(FILEFINDSTRUCT *ffstruct) } FSRefMakePath (refs + i, (unsigned char *) path, 255); - for (matchingType = p; *matchingType && strnicmp(matchingType, type, strlen(type)); matchingType++) {} i++; - if (*matchingType) { - strncpy(ffstruct->name, p, 12); + if (!stricmp(p + strlen(p) - strlen(type), type)) { + strncpy(ffstruct->name, p, 256); return 0; // Found one } } while (1); -- 2.39.2