From 5cef881ae672a408b6d47665f52398b1bb9fa573 Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:03:00 +0100 Subject: [PATCH 01/12] Update rcore.c fix [rcore] GetFileNameWithoutExt --- src/rcore.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index f0af87f9d0b9..0c7a88ce6db3 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1946,26 +1946,17 @@ const char *GetFileName(const char *filePath) // Get filename string without extension (uses static string) const char *GetFileNameWithoutExt(const char *filePath) { - #define MAX_FILENAMEWITHOUTEXT_LENGTH 256 - - static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH] = { 0 }; - memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH); - - if (filePath != NULL) strcpy(fileName, GetFileName(filePath)); // Get filename with extension - - int size = (int)strlen(fileName); // Get size in bytes - - for (int i = 0; (i < size) && (i < MAX_FILENAMEWITHOUTEXT_LENGTH); i++) + const char *filename = GetFileName(filePath); + int pos = TextLength(filename); + for(int i = pos; i>0; i--) { - if (fileName[i] == '.') + if(filename[i] == '.') { - // NOTE: We break on first '.' found - fileName[i] = '\0'; + pos = i; break; } } - - return fileName; + return TextSubtext(filename,0,pos); } // Get directory for a given filePath From 53d34527ffae27b3f2bc02edfee1d8a04cea697c Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:17:19 +0100 Subject: [PATCH 02/12] Update rcore.c --- src/rcore.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 0c7a88ce6db3..9c1947b6213f 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1946,8 +1946,8 @@ const char *GetFileName(const char *filePath) // Get filename string without extension (uses static string) const char *GetFileNameWithoutExt(const char *filePath) { - const char *filename = GetFileName(filePath); - int pos = TextLength(filename); + const char *fileName = GetFileName(filePath); + int pos = (int)strlen(fileName); for(int i = pos; i>0; i--) { if(filename[i] == '.') @@ -1956,7 +1956,7 @@ const char *GetFileNameWithoutExt(const char *filePath) break; } } - return TextSubtext(filename,0,pos); + return TextSubtext(fileName,0,pos); } // Get directory for a given filePath From 3658e45a80b449d27d7846bdaafc811da1a7e948 Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:18:27 +0100 Subject: [PATCH 03/12] Update rcore.c --- src/rcore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index 9c1947b6213f..62f3938a08e0 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1950,7 +1950,7 @@ const char *GetFileNameWithoutExt(const char *filePath) int pos = (int)strlen(fileName); for(int i = pos; i>0; i--) { - if(filename[i] == '.') + if(fileName[i] == '.') { pos = i; break; From 02776d450e667e7397c15399320593ca53793afc Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:27:45 +0100 Subject: [PATCH 04/12] Update rcore.c --- src/rcore.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 62f3938a08e0..362cbab980c1 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1946,17 +1946,21 @@ const char *GetFileName(const char *filePath) // Get filename string without extension (uses static string) const char *GetFileNameWithoutExt(const char *filePath) { - const char *fileName = GetFileName(filePath); - int pos = (int)strlen(fileName); - for(int i = pos; i>0; i--) + if (filePath != NULL) { - if(fileName[i] == '.') + const char *fileName = GetFileName(filePath); + int pos = (int)strlen(fileName); + for(int i = pos; i>0; i--) { - pos = i; - break; + if(fileName[i] == '.') + { + pos = i; + break; + } } + return TextSubtext(fileName,0,pos); } - return TextSubtext(fileName,0,pos); + return ""; } // Get directory for a given filePath From 5681c3f856ab988523085ae247b8ceff5a99068d Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:36:50 +0100 Subject: [PATCH 05/12] Update rcore.c --- src/rcore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 362cbab980c1..0a9d57f928a6 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1950,9 +1950,9 @@ const char *GetFileNameWithoutExt(const char *filePath) { const char *fileName = GetFileName(filePath); int pos = (int)strlen(fileName); - for(int i = pos; i>0; i--) + for (int i = pos; i>0; i--) { - if(fileName[i] == '.') + if (fileName[i] == '.') { pos = i; break; From 61453b131e567ba305186a84c249f1add6c97e58 Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:58:49 +0100 Subject: [PATCH 06/12] Update rcore.c --- src/rcore.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 0a9d57f928a6..0f4bd119cdfb 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1948,8 +1948,8 @@ const char *GetFileNameWithoutExt(const char *filePath) { if (filePath != NULL) { - const char *fileName = GetFileName(filePath); - int pos = (int)strlen(fileName); + const char *fileName = GetFileName(filePath); // get filename without path + int pos = (int)strlen(fileName); // get filename lenght for (int i = pos; i>0; i--) { if (fileName[i] == '.') @@ -1960,7 +1960,7 @@ const char *GetFileNameWithoutExt(const char *filePath) } return TextSubtext(fileName,0,pos); } - return ""; + return "\0"; } // Get directory for a given filePath From 1c80aa32e258b643188dc63d1c012dd6eeb3374c Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:04:19 +0100 Subject: [PATCH 07/12] Update rcore.c --- src/rcore.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 0f4bd119cdfb..696a1a0580c6 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1948,17 +1948,14 @@ const char *GetFileNameWithoutExt(const char *filePath) { if (filePath != NULL) { - const char *fileName = GetFileName(filePath); // get filename without path - int pos = (int)strlen(fileName); // get filename lenght - for (int i = pos; i>0; i--) + const char *fileName = GetFileName(filePath); // Get filename without path + for (int i = (int)strlen(fileName); i>0; i--) // reverse search { if (fileName[i] == '.') { - pos = i; - break; + return TextSubtext(fileName,0,i); } } - return TextSubtext(fileName,0,pos); } return "\0"; } From 36977d9772059e4caf771846234052227dc08e0c Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:06:36 +0100 Subject: [PATCH 08/12] Update rcore.c --- src/rcore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index 696a1a0580c6..1d004372e9dd 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1949,7 +1949,7 @@ const char *GetFileNameWithoutExt(const char *filePath) if (filePath != NULL) { const char *fileName = GetFileName(filePath); // Get filename without path - for (int i = (int)strlen(fileName); i>0; i--) // reverse search + for (int i = (int)strlen(fileName); i>0; i--) // Reverse search { if (fileName[i] == '.') { From bcc26183fac43282104c6e22ba4480311ff5ed14 Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:11:47 +0100 Subject: [PATCH 09/12] Update rcore.c --- src/rcore.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index 1d004372e9dd..f21ec2f59790 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1948,14 +1948,15 @@ const char *GetFileNameWithoutExt(const char *filePath) { if (filePath != NULL) { - const char *fileName = GetFileName(filePath); // Get filename without path - for (int i = (int)strlen(fileName); i>0; i--) // Reverse search + const char *fileName = GetFileName(filePath); // Get filename.ext without path + for (int i = (int)strlen(fileName); i>0; i--) // Reverse search '.' { if (fileName[i] == '.') { return TextSubtext(fileName,0,i); } } + return fileName; // Extension not found } return "\0"; } From 780ed3450807aad9b25447577cea0acf07903630 Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:47:08 +0100 Subject: [PATCH 10/12] Update rcore.c --- src/rcore.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index f21ec2f59790..e21c3f254667 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1953,7 +1953,11 @@ const char *GetFileNameWithoutExt(const char *filePath) { if (fileName[i] == '.') { - return TextSubtext(fileName,0,i); + char rfileName[i]; + strncpy(rfileName, fileName,i); + rfileName[i] = '\0'; + const char* rrfileName = rfileName; + return rrfileName; } } return fileName; // Extension not found From a64b9f3be98b0763909ece3574c27787298a1c48 Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Sat, 3 Feb 2024 19:43:31 +0100 Subject: [PATCH 11/12] Update rcore.c --- src/rcore.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/rcore.c b/src/rcore.c index e21c3f254667..154df982aabf 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1946,23 +1946,25 @@ const char *GetFileName(const char *filePath) // Get filename string without extension (uses static string) const char *GetFileNameWithoutExt(const char *filePath) { + #define MAX_FILENAMEWITHOUTEXT_LENGTH 256 + + static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH] = { 0 }; + memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH); + if (filePath != NULL) { - const char *fileName = GetFileName(filePath); // Get filename.ext without path - for (int i = (int)strlen(fileName); i>0; i--) // Reverse search '.' + strcpy(fileName, GetFileName(filePath)); // Get filename.ext without path + int size = (int)strlen(fileName); // Get size in bytes + for (int i = size; i>0; i--) // Reverse search '.' { if (fileName[i] == '.') { - char rfileName[i]; - strncpy(rfileName, fileName,i); - rfileName[i] = '\0'; - const char* rrfileName = rfileName; - return rrfileName; + fileName[i] = '\0'; + break; } } - return fileName; // Extension not found } - return "\0"; + return fileName; } // Get directory for a given filePath From 343fa9db146f1337ed08402d49b8808e5cfde68c Mon Sep 17 00:00:00 2001 From: oblerion <82583559+oblerion@users.noreply.github.com> Date: Sat, 3 Feb 2024 19:50:13 +0100 Subject: [PATCH 12/12] Update rcore.c --- src/rcore.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rcore.c b/src/rcore.c index 154df982aabf..8dc14c3b9214 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -1959,6 +1959,7 @@ const char *GetFileNameWithoutExt(const char *filePath) { if (fileName[i] == '.') { + // NOTE: We break on first '.' found fileName[i] = '\0'; break; }