summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/skel/crossplatform.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/skel/crossplatform.cpp b/src/skel/crossplatform.cpp
index 626403f8..65cfde45 100644
--- a/src/skel/crossplatform.cpp
+++ b/src/skel/crossplatform.cpp
@@ -27,23 +27,24 @@ void GetLocalTime_CP(SYSTEMTIME *out) {
#ifndef _WIN32
HANDLE FindFirstFile(const char* pathname, WIN32_FIND_DATA* firstfile) {
char pathCopy[32];
+ char constructedPath[32];
strncpy(pathCopy, pathname, 32);
char* folder = strtok(pathCopy, "*");
-
+
// Case-sensitivity and backslashes...
char *realFolder = casepath(folder);
char *extension = nil;
if (realFolder) {
- realFolder[strlen(realFolder)] = '*';
+ sprintf(constructedPath, "%s*", realFolder);
extension = strtok(NULL, "*");
if (extension) {
- strcat(realFolder, extension);
+ strcat(constructedPath, extension);
}
-
- strncpy(pathCopy, realFolder, 32);
+
free(realFolder);
- folder = strtok(pathCopy, "*");
+ folder = strtok(constructedPath, "*");
+ extension = strtok(NULL, "*");
} else {
// Wildcard (*)
if (strlen(folder) + 1 != strlen(pathname))